Ar nori išmokti programuoti? Juk tai viena perspektyviausių specialybių, geri atlyginimai, lankstus darbo grafikas ir galimybė dirbti iš kur nori… O išmokti galima nelankant mokyklos ar universiteto, ar netgi žaidžiant!
Ar tai paprasta? Ir taip, ir ne. Programa – tai veiksmų planas. „Taip“, nes 5 esminius programavimo principus taikome kasdieniame gyvenime: duomenys, veiksmų seka, sąlygos, veiksmų apibendrinimas bei kartojimas. Bet „ne“ – nelengva, nes programuojant reikia sužiūrėti daug detalių – užtenka praleisti vieną simbolį ir programa „grybaus“ (neveiks arba veiks klaidingai)… Todėl svarbu daug praktikuotis. Kaip programavimo mokytojas manau, kad reikia apie 80 % praktikos ir 20 % teorijos.
Prieš porą metų pradėtos iniciatyvos Code.org bei CodeWeek.eu pateikia daug gerų įvadinių programavimo priemonių.
Viena įdomiausių yra CodeCombat. Tai RPG žaidimo aplinka, kurioje reikia užprogramuoti herojaus veiksmus (sukurti jam „AI“). Ji tinka ir neturintiems programavimo patirties, pvz., jei esi 7–10 klasėje. Pradžioje užduotys lengvos, pateikiamas kodo pavyzdys bei komentarai, pagal kuriuos galima susiorientuoti, ko trūksta. Bet palaipsniui jos sunkėja, reikia didesnių programų, tenka apgalvoti daugiau priešų veiksmų ir pan. Dar jėgas galima išbandyti dvikovų arenose – ten tavo programa („AI“) kovos prieš kitų žaidėjų programas.
Programavimo principai pristatomi žaismingai – kaip herojaus „galios“, kurias jis įgija kartu su inventoriumi. Yra 4 pagrindiniai lygiai: „Požemyje“ susipažįstama su nuoseklia veiksmų seka ir kintamaisiais, „Miške“ – sąlygos sakiniais ir koordinačių sistema, „Dykumoje“ – veiksmų kartojimo niuansais, „Kalne“ – naujų komandų aprašymu.
Žvilgtelkim, kaip atrodo užduoties atlikimas: kairėje – veiksmo scena, o dešinėje – programavimo sritis.užduoties pvz.
Šiame pavyzdyje misija neįvykdyta: nukautas tik vienas priešas (iš dviejų) bei nepaimtas deimantas. Dešinėje matome programos kodą (veiksmų planą). Pradinis kodas atskirtas punktyru – jo keisti neleidžia, bet jūs turite jį pratęsti. Po programavimo langu yra pagalbos mygtukas (labai naudingas, kai „stringi“) ir išvardinti galimi herojaus veiksmai – jie priklauso nuo turimo inventoriaus (kardas ir batai).
Be to, programa parašyta su klaida – nurodytas neteisingas priešo vardas (iš mažosios raidės). Klaidos yra labai svarbi programavimo dalis. Pradedančiuosius jos gali nervinti – bet žiūrėkite į tai, kaip į kantrybės treniruotę ;). Kaip ir bet kuriame kūrybiniame inžineriniame darbe produktas sukuriamas ne iš karto, o palaipsniui tobulinant. Taip ir jūsų programose – dažnai kažkas neveiks ar iššoks klaidos pranešimas… Bet klaidų pranešimai kaip tik ir padeda klaidas suprasti ir ištaisyti ;).
Ar čia žaisdamas išmoksiu sukurti programėlę „išmaniajam“? Dar ne. Čia kaip žaidimas konstruktoriumi, palyginus su namo statymu :). Bet čia naudojamos profesionalios programavimo kalbos: galima pasirinkti Python (paprasčiausia), Javascript (skirta „web“, panaši į C++) ir dar kelias. Išmokti programavimo principai tiks ir kitose kalbose. Daugiausia čia išmoktų dalykų, savaime aišku, gali būti pritaikyta žaidimų programavime.
Vienas svarbiausių efektų įveikusiems daug užduočių yra programavimo įgūdžiai. Jūs išmoksite planuoti ir analizuoti programą, suprasti ir taisyti klaidas, patobulinsite loginį mąstymą ir dėmesio sutelkimą. Norėdami toliau mokytis programuoti, galite išbandyti CodinGame.com užduotis ar CodeCademy.com kursus.
CodeCombat platforma yra atviro kodo ir stengiasi įtraukti bendruomenę į kūrimą. Galima kurti objektus, lygius, būti užduočių testuotoju, žaidimo vertėju į savo kalbą ir pan. Žaidimas jau yra dalinai išverstas į lietuvių kalbą.