
Tai svečio įrašas, kurį parašė Edvinas iš www.webpadange.lt. Įrašas manyčiau labai naudingas ir tiks visiems pradedantiesiems programuotojams, Jai turite klausimų, manau Edvinas į juos atsakys komentaruose.
Norėčiau papasakoti apie savo patirtį besimokant programavimo. Šią vasarą nusprendžiau, skirti daugiau laiko programavimo mokymuisi ir išmokti kokią nors naują kalbą. Tokiu mano pasirinkimu tapo C.
Ką dariau pirmiausia? Turbūt nieko nenustebinsiu pasakydamas, kad susiradau nemokamų pamokų C programuotojams ir išmokau šios kalbos pagrindus. Nuo šio žingsnio turbūt pradeda kiekvienas programavimo naujokas. Tačiau tada man kilo klausimas: kas toliau? Neturėjau patirties nei rimtesnių projektų kūrime, nei algoritmų sudaryme. Internete bandžiau ieškoti informacijos apie tolimesnius programavimo žingsnius. Keliuose forumuose pavyko rasti atsitiktinių užduočių, kurios turėtų padėti man įvaldyti savo programavimo gebėjimus. Tačiau pajutau, kad šie uždaviniai yra gerokai mažiau nei aš norėčiau.
Nepraradau vilties ir skyriau dar vieną vakarą paieškoms, kur dėti tolimesnius savo žingsnius. Iš šis sprendimas atsipirko su kaupu. Pavyko rasti vadinamąsias interaktyvias programavimo mokymosi aplinkas.
Kas tai per velnias?
Tiesa sakant, nesu įsitikines ar šis mano vartojamas terminas yra visiškai teisingas. Tačiau manau, kad jis yra tikrai tinkamas šiems tinklapiams apibūdinti.
Interaktyviosios programavimo mokymosi aplinkos yra tinklapiai, kuriuose užsiregistravus galima rasti įvairiausių programavimo iššūkių. Tai gali būt tiek elementaresnių algoritmų reikalaujančios užduotys, tiek kompleksinių sprendimų reikalaujantys uždaviniai. Paprastai sakant, uždavinių ten yra šimtai ir kiekvienas galės pasirinkti sau labiausiai patinkančius.
Tačiau esminė jų savybė ir didžiausias gėris yra ne plati uždavinių biblioteka, tačiau sprendimų tikrinimas. Kai tik jūs sukursite programą sugebančia atlikti pateikto uždavinio sąlygą, galite ją iškarto į kelti į tinklapį ir jis ją patikrins. Bus tikrinamos tiek Jūsų naudojamos funkcijos, tiek vykdymo laikas, tiek įvairiausios pradinių duomenų variacijos.
Labai svarbu yra tai, kad po programos patikrinimo interaktyvioji aplinka parodys ar Jūs sugebėjote įgyvendinti sąlygos sprendimą savo programoje, o jei ne nurodys priežastį, kodėl vis tik Jūsų programa nėra tinkama. Priežasčių gali būti įvairiausių ir jos bus nurodytos pačioje aplinkoje.
Norėčiau pateikti Jums dvi, mano naudojamas tokias mokymosi aplinkas.
Programming-challenges.com yra šiuo metu mano džaniausiai naudojama aplinka. Joje galima rasti viso labo 112 uždavinių. Sistemai uždavinius galima pateikti ANSI C, C++, Java ir Pascal kalbomis parašytus uždavinių sprendimus. Tikrinimas vyksta realiu laiku ir rezultatus galite pamatyti iškart, vos tik serveris baigs programos vykdymą. Beje, kad ir kiek kartų bespręstumėte vieną ir tą patį uždavinį, galėsite pamatyti kiekvieno sprendinio nesekmės priežastį ir tai, kiek kartų Jums pavyko pasirinktąjį uždavinį išspręsti teisingai ir kiek kartų bendrai tai bandėte.
Pagrindiniame meniu problemos yra skirstomos taip: visos, išspręstos, neišspręstos ir niekad nespręstos. Tai padės susiorientuoti, jau ne vieną teisingą sprendimą pateikusiems sistemos naudotojams.
Dar vienas šios sistemos patogumas yra galimybė parsisiųti pavyzdžių failus. Tai yra, jūs galite parsisiųsti keletą pradinių duomenų, kurie Jums leistų lokaliai, dar prieš išsiunčiant sprendinius, ištestuoti ar Jūsų programa tinkamai apdoroja duomenis ir duoda teisingus atsakymus.
Dar viena puiki interaktyvi mokymosi aplinka yra www.spoj.pl. Ši sistema yra kiek geresnė egzotiškesnių programavimo kalbų mokymuisi. Šiai sistemai galima pateikti sprendinius šiomis kalbomis: C, C99, C++, Pascal, Java, Nice, JAR, C#, Nemerle, Smaltalk, Assembler, D, Fortran, ADA 95, Bash, Perl, Python, Ruby, Lua, Icon, Pike, PHP, Scheme, Common Lisp, haskel, Ocaml, Clips, Prolog, Whitespace, Brainf**k, Intercal, Text. Kaip matote programavimo kalbų sąrašas yra tikrai įspūdingas. Uždavinių skaičius taip pat, gerokai didesnis: 1104.
O kitomis, esminėmis sistemos savybėmis spoj.pl yra labai panašus į programming-challenges.com. Dar šiek tiek skiriasi programų skirstymas. Čia jos yra suskirstytos pagal kategorijas: klasikinės, iššūkiai, dalinės ir pamokos.
Iš esmės šias mokymosi aplinkas rekomenduoju visiems, kurie dar nesugalvoja, kokį programavimo projektą jie norėtų įgyvendinti, tačiau vis tik nori lavinti savo įgūdžius ir pramokti naujų algoritmų.