A kedvenc viszontkérdésem erre az, hogy "Meg lehet-e tanulni könyvből karatézni?" vagy "Hány könyvet kell elolvasnod ahhoz, hogy fekete öves karate mester legyél?"
Hadd fejtsem ki egy kicsit jobban.
Az elméletet el lehet olvasni. Meglátásom szerint, amíg az ember birtokolja az olvasás "szuperképességét", addig ez a leghatékonyabb információszerzési forma. Más üzemmódba állítja az agyat, mint a videónézés. Ráadásul míg egy írott szöveg gyorsan átfutható, ha az ember keres valamit, a videó esetében ez jelenleg nem megoldott még. (Velem pl. sokszor fordult elő, hogy míg egy videóban az indiai bemutatkozott, annyi idő alatt egy írott forrásban már meg is találtam, amire kíváncsi voltam). Ezért a mi oktatási rendszerünk is az olvasásra épül. (És tegyük hozzá, hogy egy cégnél sem fognak a feladatból videót forgatni, az bizony - jobb esetben - írva lesz. Szóval nem árt, ha az ember hozzászokik ahhoz, hogy írott szöveggel dolgozzon).
Amiben a könyvek szintén jók, hogy egy adott területet átfogóan képesek bemutatni. Bennünk van, hogy egy könyvet végig kell olvasni. Ha már végigolvassuk, akkor minden fontos dologról tudomást szerzünk.
Az elmélet nem elég. Ahogy a karate esetében is, úgy a programozásnál is fontos a gyakorlás. A gyakorlást nem helyettesíti semmilyen könyv és semmilyen videó. Százezerszer találkoztam eddigi pályafutásom során azzal a helyzettel, amikor a tanuló annyit mondott, hogy "aha, értem.", viszont látszott rajta, hogy még csak neki sem tud állni egy program megírásának az új eszközzel (amikor alkalmam volt rá, hogy megbizonyosodjak erről, igazam is volt). Az "aha, értem" és a "meg tudom csinálni" között egy Mariana-árok helyezkedik el. Gyakorlásra azért van szükség, hogy az elméleti ismeretek gyakorlatban használható készségekké formálódjanak.
Persze nem mindegy, hogy mit és mennyit gyakorlunk. Ha valaki programozástudás hiányában első projektnek azt tűzi ki célul, hogy márpedig ő mesterséges intelligenciát fog fejleszteni, akkor abba lehet, hogy beletörik a bicskája. (A túl magasra tett léc veszélye az, hogy abból a pontból túl nehéz átugrani, ekkor jön az önleértékelés, az "én hülye vagyok a programozáshoz"... Pedig csak a falat volt túl nagy és megakadt a torkán). A megfelelő méretű feladatok választása esszenciális abban, hogy az ember megtanuljon rendesen programozni. Persze honnan is tudná, aki nem programozott még életében, hogy a mesterséges intelligencia fejlesztése nem éppen gyerekjáték, ha még nincs semmilyen ismerete a területen?
Ha a tanuló megcsinálja a könyv fejezetei végén a feladatokat, akkor már eggyel közelebb jár a programozási tudás megszerzéséhez.
Amit viszont nem várhatunk el egy könyvtől:
- Nem fogja felhívni a figyelmet arra, hogy már elavult, és van újabb kiadása
- Nem fogja felhívni a figyelmet arra, hogy azt a feladatot oldotta-e meg az ember, ami szövegszerűen benne volt
- Nem fogja felhívni a figyelmet arra, hogy a program valójában hibás, de arra az egy tesztesetre, amire valaki kipróbálja, pont működik
- Nem fogja felhívni a figyelmet arra, hogy a megoldást elegánsabban is el lehet készíteni
- Nem fogja az ember lelkét ápolni és támogatni, motiválni, ha egy hibába beleakad, továbbsegítve a megoldás felé
- És főleg nem lehet tőle kérdezni (de legalább nem is szégyeníti meg az embert, ha nem helyénvalót kérdez, mint ami kis hazánkban fórumokban és a Facebookon nagyon bevett viselkedés)
- És nem nézi át a programot, hogy megkeresse benne az esetleges hibákat
Összességében azt gondolom, hogy meg lehet tanulni könyvből is jól programozni, ha valaki nagyon fegyelmezett, rengeteg ideje van, óriási szerencsével vagy intelligenciával folyamatosan a jó megoldásokat választja és/vagy mindeközben jól bírja a kritikát és a kudarcokat.
Ha kényelmesebb, biztonságosabb útra vágysz, válassz inkább egy tanfolyamot vagy magántanárt.