( horvatha | 2013. 04. 18., cs – 08:42 )

Egy fontos dolog szerintem: a nyelv választásban ma 2013-ban igen fontos, hogy képes legyen a *motivációt ébren tartani*.

45 évemmel itt azok közé tartozom, akiknek gyerekkorában a számítógép még nem tolt annyi mindent készen a fenekünk alá és ha valami érdekeset akartunk vele kezdeni, akkor óhatatlanul a programozás felé sodródtunk. Ma ez nincs így. Azt látom sok középiskoláson, hogy egyszerűen elmegy a figyelme, ha olyan programokkal tanítják őket, melyek számolgatnak valamit aztán kiírják az eredményt, bekérnek két számot és csinálnak vele valamit stb.

Persze, ma is vannak elméletibb beállítottságú fiatalok, akiknek nem megy el a kedve, ha algoritmuselmélettel kezdik a tanulást meg mátrixszorzás-programozással, de ez igen kevés. Szerintem a többség oktatásához valami olyan nyelvet kell választani, ami az ő érdeklődésének megfelelő területen hamar értékelhető eredményt hoz, hogy így fennmaradjon a motivációja addig, amíg a kezdeti lépéseken átesik. Ilyen kezdő nyelv ma sokaknak a PHP, mert hamar lehet vele webes dolgokat csinálni és látja az értelmét. Kicsiknek ilyen a Logo, mert tud vele házikót rajzolni. A Pythont azért tartom jónak általános esetben, mert nem kell túl sokat szőrözni (pl. változó deklaráció, memóriafoglalás), és intuitíven lehet pl. listákat használni, van hozzá akár teknősgrafika modul is, de akit az érdekel, pixelgrafikai manipulációt is könnyű vele csinálni, ha behoz az ember egy modult.

Tehát szerintem a "Mi a jó első programnyelvnek?" kérdésre az a válasz, hogy amiben az adott gyerek *érdeklődése fenntartható* addig a szintig, hogy önállóan tudjon egyszerű ciklusokat, feltételes szerkezeteket, függvényeket írni és egyszerű problémákat megoldani. Itt a gyerektől függően a Logo, PHP, Python ... is szóba jöhet, de a lényeg, hogy az oktató ezekben hamar az elején "izgalmas" dolgokat vessen fel.

Az elméletibb részek (amiket én még az elején tanultam) csak utána jöhetnek, tehát pl. az, hogy hogyan is ábrázolja az adatokat az agyában a gép, hogyan kell algoritmikusan gondolkozni, strukturáltan programozni, stb. Ennek támogatására már tényleg egy kicsit "merevebb" nyelv a jó, pl. C vagy Pascal. (Inkább C, mert annak jobban hasznát veszi később.)