6 legnagyobb hiba, amit programozástanulás közben elkövethetsz
Manapság a csapból is az folyik, hogy kevés a programozó, hogy a programozók rengeteget keresnek, mégis alig találni embert. Valószínűleg a te fejedben is megfordult már, hogy programozást kéne tanulnod. Vagy azért, mert kecsegtető mindez, vagy mert unod a munkádat, keveset keresel, vagy éppen a kollégáidtól van tele a hócipőd.
A terület, amelyre be kívánsz lépni egy teljesen új világ, és mint ilyen, megvannak a maga játékszabályai. Tizenévnyi programozásoktatási tapasztalatomból álljon itt egy csokorra való azokból a leggyakrabban elkövetett baklövésekből, amelyek jobb esetben idő- és pénzveszteséggel, rosszabb esetben a programozástanulási vállalkozás kudarcával járnak.
- El sem kezdi. Érthető módon programozásoktatóként velük áttételesen találkozom csak, olyan ismerősök formájában, akik gondolkoznak rajta, kacérkodnak vele, aztán elnapolják évekre, évtizedekre vagy életük végéig. Ez nem csak a programozástanulásban van így – az ember alapvető tulajdonsága a halogatás. Ami nem közvetlen életveszély, de hosszú távon hasznos lenne, azt hajlamosak vagyunk a végtelenségig hanyagolni: leszokni a dohányzásról, lefogyni, elkezdeni sportolni, egészségesen étkezni, elkezdeni a nyugdíjcélú megtakarítást,… és tanulni, új karriert megalapozni.
Ahogy a testmozgást is csak elkezdeni nehéz, a programozástanulásban is csak a kezdeti ellenálláson kell átlendülni, aztán mikor már belekezdett az ember, könnyű és megszokott bennemaradni. Ha hajlamos vagy a halogatásra, van számodra egy üzenetem: Nincs tökéletes pillanat az elkezdésre. Vagy átfogalmazva: A legjobb pillanat az elkezdésre a MOST. - A nyelvválasztáson töpreng. A programozásban számos programozási nyelv létezik (Java, C, C++, C#, PHP, Javascript, Python,…). Így ha az ember is szánja magát, máris jöhet a következő döntési helyzet: Mit is tanuljak? És ahogy a tájékozatlan samponvásárló a drogéria hajápolási részlegén, programozást tanulni szándékozó emberünk szembesül a választás paradoxonával. Rengeteg lehetősége van, de nem ért hozzá, hiszen ha értene, nem kéne megtanulnia… Ráadásul számos programozó tolja a számára szimpatikus programozási nyelvet, ahogyan a különböző iskolák, tanfolyamok is hirdetik magukat. Ha csavaros eszű leendő programozóval van dolgunk, rákeres az interneten arra, hogy melyik a legnépszerűbb nyelv. Újabb arculcsapás következik: attól függ, milyen forrást néz. A programozási nyelvek népszerűségét számos mutató szerint lehet mérni, de mindegyik csak áttételes, ami egy másik cikk témája lenne, úgyhogy nem megyek bele. Szóval itt is: ahány forrás, annyi vélemény.
Nekem is megvan a sajátom: azért Java, mert kellően rigorózus ahhoz, hogy a programozótanoncba belenevelje a helyes elveket. Meg mert szeretem. És a nagyvállalati szférában a(z egyik?) legjobban lehet vele keresni.
Valójában annyira nem számít a nyelv. Fogd fel úgy, hogy a legtöbb programozási nyelv olyan, mintha egy emberi nyelv tájszólásai, de legalábbis egy nyelvcsalád közeli tagjai lennének. Bármelyik programozási nyelven meg lehet tanulni programozni. És ehhez sokan hozzáteszik: nem a nyelvet kell megtanulni, hanem programozni. Ez utóbbi 20 éve változatlan, amit a nyelvekről kevésbé lehet elmondani. - Végigolvas egy (vagy több könyvet), és ettől várja, hogy megtanulja a programozást. A kedvenc analógiámmal élve: Hány könyvet kell elolvasnod ahhoz, hogy megtanulj karatézni?. Ami egyértelmű egy sportnál, az nem tűnik egyértelműnek a programozástanulásnál. Pedig a sportnak és a programozásnak több köze van egymáshoz, mint hinnéd: rendszeresen, gyakorlatban kell alkalmazni, hogy a tudás leülepedjen, készséggé váljon és elmélyüljön. Szóval a programozás lényege: Gyakorolni, gyakorolni, gyakorolni!
- Nem megfelelő forrást választ. Pl. sokszor találkoztam azzal, hogy valaki talál egy régi könyvet a neten, letölti, elolvasgatja, kipróbálja (tehát az első két csapdába nem sétált bele), fejlődik, utána kér egy kis segítséget, hogy befejezzük az képzését. És közben rájövök, hogy egy tíz évvel ezelőtti verziót tanult meg nagyon jól, de ma annak mondjuk 20%-a már elavultnak számít. A számítástechnika egyik nagy fétise, a visszafele kompatibilitás (új programverziók értsék meg a régivel készített adatokat) miatt ez nem is tűnik fel sokszor. És akkor léphetünk vissza, és tanulhatja újra azokat a részeket, amik neki „retro” állapotban vannak meg. A sportban ez különösen megbosszulja magát, mert egy mozgást kijavítani mindig sokkal nehezebb, mint jól megtanulni. A programozás területe szerencsére nem büntet ennyire.
A másik, hogy ha valaki tanfolyamot akar választani, akkor az sem könnyű, hiszen nem ért hozzá, és akkor könnyen visszaléphet az első pontra (el sem kezdi). Ez még akkor is egy kicsit zsákbamacska, ha tisztában van a tanár személyével, mert a klasszikus felállás az, hogy befizet egy szimpatikus cég tanfolyamára, akinek elhiszi, hogy jó lesz a tanára, AZUTÁN lép érintkezésbe az oktatóval, majd mire eltelik egy-két hét megtudja, jó volt-e. A gond az, hogy egyes cégeknél ez tényleg lutri, mert cégen belül sem egy oktató van.
Manapság már egy csomó szolgáltatásnál van ingyenes próba, miért nem jellemző ez a programozásoktatásra? (mi kivételek vagyunk). - Elmegy valaki a tanfolyamra, és nem mer kérdezni. És még csak meg sem tudom ezért ítélni. A magyar oktatási rendszer 6 éves korunktól kezdve neveli belénk azt, hogy aki valamit nem tud, az hülye, és hogy aki hülye, az rossz. És ezek után tedd fel a kezed 12 másik ember előtt, hogy megkérdezd azt, amit nem értesz, vállalva annak a kockázatát, hogy esetleg „hülye” legyél? Sokan inkább azt választják, hogy nem kérdeznek, eldöntik, hogy majd utánanéznek otthon, ami sokszor nem valósul meg, majd egyre jobban lemaradnak, végül teljesen elveszítik a fonalat. És tényleg sokkal könnyebb egy-az-egyben a tanártól megkérdezni. Őtőle tudja az ember, mire számíthat, ami biztonságot ad. (Ezért van nálunk privát konzultációs lehetőség is).
- Önállóság hiánya. Egyik aspektus, hogy elmegy valaki egy gyakorlati tanfolyamra, és azt várja, hogy az oktató megoldja helyette a feladatokat. Bármennyire is folyik a csapból az, hogy a csapatmunka így meg úgy, a programozás az esetek legnagyobb részében magányos műfaj. Ketten a monitorral, szemtől szembe. Ilyen esetben nincs ott a tanár, hogy helyetted dolgozzon (ha ott lenne, akkor a fizetést ő is kaphatná), szóval mindenképp érdemes megtanulni egyedül programozni.
Másik aspektus az önálló utánanézés képességének hiánya. Ki merem jelenteni, hogy nem létezik olyan aktívan dolgozó programozó, aki az elmúlt egy hétben nem kellett, hogy utánajárjon valami szakmai kérdésnek az interneten. Annyira széles az ismeretek tárháza, hogy nem lehet az ismeretek memorizálása a cél. A cél csak az lehet, hogy egyrészt legyen meg a programozási alapkészség, másrészt legyen jó az ember a megfelelő források megtalálásában. Ahogyan az sem lehet cél, hogy az ember memorizálja az Országos Széchényi Könyvtár összes kötetét, elég ha tud olvasni, és tudja használni a katalógust.
Köszönöm, hogy végigolvastad, és nagyon remélem, hogy sikerült némi támpontot nyújtanom arra, hogy te ne ess bele ezekbe a hibákba, és olyan utat, tanfolyamot válassz magadnak, ami eljuttat a programozás tudásához.