Nem arról fogok most beszélni, hogy melyik a legjobb nyelv, mert ez amolyan vallási kérdés. Tény, hogy nagy különbségek vannak még a színtaktialag hasonló nyelvek között is, de nem igazán hiszek abban, hogy létezik tökéletes. Többnyire egy probléma határozza meg, melyik nyelv a legalkalmasabb a megoldására, és jelen esetben ez a probléma, hogy nem tudunk programozni.
Mindig úgy éreztem kevesen ássák magukat bele ebbe a témába. A legtöbb helyen azt látom, hogy nyelvválasztásnál egyetlen szempont merül fel: melyik nyelv a legkeresetebb az üzleti életben. Viszont, ha egy olyan diákot veszünk, aki életében nem programozott, ez a megközelítés szerintem abszolút hibás. A helyes cél az lenne: hogy melyik nyelven a leghatékonyabb a tanítás?
Mitől lesz egy nyelv alkalmas a tanításra?
Sokat tanultam gitározni. Azért is érdekes ez, mert gitározni a többség magán tanárnál kezd el. Kevés az egyetemes szabvány, tananyag vagy könyv, így a tanárok többsége ezeket is maguknak dolgozzák ki, a technikájuk, tanítási módszereik is roppant különbözőek. Egy tanárom folyton azt mondta, ,,akkor haladunk jól, ha csak egy ismeretlen van az egyenletben”. Bevallom ez akkor még inkább frusztrált, mint segített, de mióta én is tanítok nagyon is értem mire gondolt.
Fontos, hogy olyan lépésekben tudjunk haladni, ami nem hatalmas. Az ideális pedig az, mikor a lépés minden részét értjük kivéve egyet, amit ha megértünk és begyakorlunk, mehetünk tovább. A matek is ilyen. Sokan azért nem szeretik, mert elvesztették a fonalat, és úgy érzik ez már nem nekik való. Ha nem tudjuk a számokat, nincs értelme a műveleteknek, ha egy szorzást nem értünk meg jól, a hatványozásra nem lesz esélyünk.
Tehát egy programnyelvnél is az lesz számunkra az elsődleges szempont, hogy mennyi háttértudás kell az adott részek megértéséhez. Vagyis az, hogy mennyire vannak szépen szét választva az egyes ágak. Vagy a nyelvhez próbáljuk alakítani a tananyagot, vagy a tananyaghoz keresünk nyelvet.
Leggyakoribb programozási nyelvek az oktatásban
Nyilván nem szeretném a világ összes nyelvét összehasonlítani, mert hatalmas feladat és teljesen értelmetlen volna. Így megpróbálkozom azokra a nyelvekre szorítkozni, amiket itthon egyaltalán használnak oktatásra.
Pascal
Régen kétség nélkül ez volt a divat. Mikor középiskolába jártam mindenki, akit csak ismertem Turbo Pascal-on kezdett. Aztán valahogy mindenki azzal jött, hogy “a Pascal-t már senki nem használja”, és az iskolák folyton lecserélték. Az igazság az, hogy a Pascal-t Niklaus Wirth tervezte oktatási célra. Tehát az, hogy valaha bárki üzleti programot fejlesztett benne már önmagában meglepő, de bizonyára akadt ilyen. Minden esetre a Pascal mai napig kíváló nyelv, ha meg szeretnénk tanulni programozni. Egyszerű színtakszisú, kifejezetten oktatásra lett kitalálva.
C és C++
Kétségkívül a C/C++ a másik legrégebb óta oktatásra használt nyelv itthon. Szintén nem szeretnék beszélni a két nyelvtípus közti hatalmas különbségekről. Vitán felül áll, hogy mindkét nyelv nagyon hasznos, üzleti alkalmazása is van és elsajátításával rengeteg C típusú nyelvet könnyen megtanulhatunk majd (mint Java, C#, Pearl, PHP, Swift, TypeScript stb.). A legnagyobb problémám a C-vel, hogy alacsonyabb szintű az általában használatos nyelveknél, így sok olyan ismeretet kell közölni (pointer, memória kezelés), ami nem feltétlen lenne a tananyag elengedhetetlen része.
C# és Java
Bizonyára sokan felszisszentek, hogy ezt a két nyelvet egy lapon említem, azonban nem látok hatalmas lényegi különbséget a két nyelv közt oktatási szempontból. Mindkét nyelv üzleti értéke nagyon magas, feltételezhetően ezért egyre népszerűbbek az iskolákban is. A probléma mindkét nyelvvel az, hogy az objektum orientáltság átfogó ismerete nélkül nem lehet 100%-ban megérteni, se elmagyarázni az egyébként nem objektum orientált kódokat sem. Így egy hatalmas lexikális tudás szükséges már a tanulás kezdeti szakaszán.
Python
Talán a cikk lecsengése az lesz, hogy ő az abszolút győztes. A Python egy szintén hatalmas üzleti értékkel bíró, keresett nyelv. Viszont kezdőknek is jó szívvel ajánlom, mert egyszerű színtakszisa van, és nem kell hozzá semmilyen extra előismeret. Szerencsére egyre több iskolából hallom, hogy Python-ra kezdtek el átállni, ami nagyon pozitív. Többek közt az MIT-n használt egyik legnépszerűbb tananyag (SICP) is Python-ra tért át.
Végszó
Mint írtam ez a lista nem teljes. Van jónéhány olyan nyelv, amit nemzetköti szinten gyakran választanak programozás oktatásra (pl.: Pearl, Ruby, Javascript), azonban ezekkel itthon olyan ritkán találkozni, mint első nyelv, hogy csak megemlítem, mint lehetséges opciókat.
Véleményem szerint az első nyelv választásának célja nem az kell legyen, hogy egy a piacon sokak által keresett nyelvet sajátítsunk el, hanem az, hogy egy olyan tudást tudjunk elsajátítani relatív gyorsan, ami sokat ér, a nemzetközi piacon is. A programozás sokkal inkább egy gondolkodásról szól, mint konkrét nyelvekről, és mikor már ez megtörtént, tudunk felelősségteljesen olyan nyelvet választani, ami nekünk megfelelő.
Fordulj hozzám bizalommal!
Magán tanárt keresel, hogy jó úton haladj? Szívesen segítek, hogy jobb programozó lehess! Hogyan kezdjünk neki? Első körben érdemes egyeztetni, hogy pontosan milyen céljaid vannak a programozással. Mire szeretnél felkészülni, mikorra, és milyen szinten jársz most. Ezt követően kitaláljuk milyen módszerrel és sebességgel tudunk haladni. Várom emailedet!