Melyik programozási nyelvet válasszam?
Ha most kezdesz programozást tanulni, akkor nagy fejtörést okozhat az a kérdés, hogy melyik programozási nyelvet is válaszd a tanuláshoz. Van ugyanis sokféle: Java, C++, Python, Javascript, C#, PHP – hogy csak néhányat említsek a rendelkezésre 100-nál is több nyelvből. Ha már tanulsz valamit, akkor olyat szeretnél tanulni, ami megéri.
Előfordulhat, hogy igyekszel egy programozótól segítséget kérni, és válaszol is, legjobb tudása szerint, amiből lehet, hogy csak annyit értesz, hogy melyik nyelvet ajánlja, de azt, hogy miért, az nem biztos, hogy 100%-ig átjön.
Mondok egy analógiát, ami elég jól hasonlít ehhez a helyzethez:
tegyük fel, hogy most akarsz megtanulni autót vezetni (ez lesz a programozástanulás), és az a kérdés, hogy milyen autón tanulj (ez lesz a programozási nyelv). Hiszen annyiféle van, melyikkel jársz legjobban? (Hátsókerékhajtás, elsőkerékhajtás, automata váltó, kézi váltó, Fiat, Suzuki, Opel, Skoda, Mercedes,…)
Ha nem tudsz dűlőre jutni, lehet, hogy megkérdezed az autóversenyző haverodat (ő a programozó), hogy szerinte melyik a legjobb autó vezetni. Amire ő lehet, hogy visszakérdez, hogy milyen úton szeretnél versenyezni: milyen bajnokságban, milyen talajon, stb. (a programozási nyelvek is különböző feladatra jók). Amire nem is tudsz válaszolni, hiszen nem is tudtad eddig, hogy vannak különféle bajnokságok. Aztán mond valamit, hogy szerinte melyik a legjobb autó (az alapján, hogy ő melyik bajnokságban versenyez), és megindokolja egy csomó olyan technikai adattal, amiből egy szót sem értesz. Aztán mondjuk azt mondja, hogy a legjobb autó a Ford Focus WRC, mert a WRC-ben (akármi is az) ezzel az autóval nyerték a legtöbb VB-futamot. És ha megkérdezel egy másik versenyzőt (aki mondjuk szintén WRC-versenyző), akkor ő meg vitába száll az előzővel, hogy de nem is a Ford Focus WRC a legjobb, mert … (nem érted, miért), hanem a Citroen C4 WRC, mert … (ezt sem érted).
És akkor ők még csak WRC-sek (World Rally Championship) voltak: ha a Forma-1-ben szeretnél indulni, akkor máris egy másik márka lesz a befutó, ráadásul más paraméterek szerint és másról fog szólni a hozzáértők vitája.
De térjünk vissza az eredeti kérdéshez:
milyen autón tanulj meg vezetni?
Ebből is biztosan sokaknak van favoritjuk, de egy dolgot szeretnék leszögezni: az, hogy milyen autón tanulsz meg vezetni, vajmi keveset számít abban, hogy utána milyen autót leszel képes elvezetni a közúton. Ha Opel Corsa F-en tanultál meg vezetni (mint én), az nem jelenti azt, hogy ha beülsz egy 2016-os Skoda Octaviába, akkor mindent újra kell tanulni, és onnan kezded az ismerkedést, hogy akkor most hogyan is kell az autót a gázzal és a kuplunggal mozgásba hozni és hogy tekeredik a kormány (vagyis persze igen, de ez kb. 30 másodperc, nem pedig órák, mint elsőre). Ez a programozásban is pontosan így van. (Java-tudással a Python kiismerése annyira, hogy el tudd „vezetni” – néhány nap).
És addig, amíg egyáltalán nem tudsz vezetni, addig neked édesmindegy, hogy első- vagy hátsókerék-hajtású az autó. Annak már több jelentősége van, hogy automata vagy kézi váltós, hiszen ha nem tanulsz meg kézi váltós autóval közlekedni, azt később megtanulni már nehéz. Ha egész életedben automatás autód lesz, akkor válassz automatás tanulóautót, különben jobban jársz a kézi váltóssal. (A programozási nyelveknél is vannak ilyen szempontok azért).
Az is igaz, hogy ha versenyző (senior programozó) akarsz lenni, akkor sokat kell még tanulni azután is, hogy mondjuk kiengednek a forgalomba (elvégzel egy iskolát), és folyamatosan fejlesztened kell magad. Az is igaz, hogy a különböző kategóriában versenyzők valamilyen szinten más és más képzettséget kell szerezzenek (ahogy a programozók is: nem mindegy, hogy mit programozol, mire specializálódsz). Az is igaz, hogy ahogy az autóversenyzők is kipróbálhatják magukat más kategóriákban (és sokszor sikeresen), úgy a programozók számára sem átjárhatatlan az egyes specializációk határvonala.
Mit ajánlok akkor autóvezetésprogramozásoktatóként?
A programozási nyelveket már más is hasonlította járművekhez: If programming languages were vehicles.
A link alapján a legjobb választás programozni tanulni: a Java, a C# és a Python. Ezek közül az első kettőt azért ajánlom, mert … (techie blabla) … – a lényeg az, hogy a kötöttebb nyelvi struktúrák miatt jobban megtanulod az alapokat, mint egy szabadabb nyelven, ahol könnyű elveszni és trehánynak lenni – autós példában: A Java és a C# kézi váltós, a Python meg automatás. A Java vagy C# esetében meg azért ajánlom a Javát, mert abban tudunk neked legtöbbet segíteni.
De akárhogy is: ahogy az autóvezetés előtt is kell egy (orvosi) alkalmassági vizsga, úgy programozástanulás előtt sem árt egy programozási alkalmassági teszt, hogy vajon érdemes-e bele időt, energiát fektetni, pénzt szánni rá vagy sem.
Pasztuhov Dániel