Szükség van-e mentorra a Java SE tanfolyam elvégzéséhez?

Ha megnézzük a StudiCore honlapján a Java SE képzést, ott kétféle csomag található:

  • StudiCore Online Java SE Basic 39000 Ft/hó
  • StudiCore Online Java SE Pro 75000 Ft/hó

A kettő között az a különbség, hogy a Pro verzióban kapunk egy mentort, és ő kísér minket végig a tananyagon. A két csomag közötti 36000 Ft-os különbség felveti, hogy kell-e egyáltalán mentor, és megéri -e több pénzt kifizetni a Pro csomagért?

Tapasztalatok a mentorral

Én a Pro csomaggal végeztem el a Java tanfolyam egészét, és komolyan hiszek abban, hogy a mentor megléte alapvető befolyással lehet a képzés elvégzésére. Informatikusként végeztem a főiskolán, így az első lépéseknél még ismerős volt a tananyag, de fogalmam sincs, hogy egy teljesen kezdő számára nincs-e szükség már ott is támogatásra. Itt most a Java SE bevezető részre gondolok, ami 11 fejezetből áll, és gyakorlatilag az alap építőelemeket vettük át, mint az elágazások, ciklusok, tömbök:

  1. Telepítés és alapfogalmak, egyszerű programok írása
  2. Java program felépítése, változók, típusok, kifejezések
  3. Bevitel, kiírás
  4. Számítások, számábrázolás
  5. Elágazások (if, switch utasítások)
  6. while és do-while ciklus
  7. for ciklus
  8. alapalgoritmusok elemsorozatok kezelésére (programozási tételek: keresés, kiválogatás, maximumkiválasztás…)
  9. tömbök
  10. függvények
  11. programépítés függvényekkel (struktúrált programozás)

Már a következő fejezet nehézségeket okozott, a Java SE objektum-orientált programozás teljesen új infókat tartalmazott, 1 félév főiskolai programozási alapok, és 1 félév Java tanulás után ezek kínaiul hangzottak nekem. És itt még csak az osztályokról, automatikus tesztelésről, az öröklésről, a különféle dátumformátumokról volt szó, ahol kezdőként már elveszhet az ember. Ezután következett a Java SE eszközök, majd az Adatbázisok + Java SE haladó eszközök részek, itt pedig már nagyon kellett a mentor.

Az első segítségek a programozás során történő elakadás során jöttek jól, amikor ott a megoldás valahol, de nem látjuk. Kell egy kis irányba állítás, segítség, és magyarázat, hogy mi miért van úgy. Ezekre interneten kutatva is rá lehet találni, de kezdőként az is nagy probléma, hogy nem tudunk kérdezni, és nem találjuk meg a válaszokat. A Java haladó eszközök azonban már sokkal nehezebb volt, elég ránézni a tematikára:

  1. Adatbázis alapok (egy tábla kezelése)
  2. Adatbázisok haladó (több tábla, tranzakciók)
  3. JDBC (Java és az adatbáziskezelés) I. – alapok
  4. JDBC II. – A DAO minta használata az adatbáziskezelésben
  5. Swing
  6. Generics alaposan
  7. Reguláris kifejezések általánosságban (nem csak Javában használható)
  8. Reguláris kifejezések alkalmazása Javában
  9. Apache Commons: gyakran használt “third-party library” hasznos dolgokkal, amit nem kell megírnunk magunknak
  10. Google Guava: egy másik gyakran használd ilyen könyvtár
  11. Rekurzió: a programozás magasiskolája
  12. Nagy program írása: programfejlesztés elmélete és gyakorlata: Te is fejlesztesz egy nagy programot!

Főiskolán tanultam adatbáziskezelést, így az elmélettel tisztában voltam. De tisztán emlékszem, hogy ott is a 3. pótvizsgán mentem át, mert nagyon-nagyon sok gyakorlás szükséges az összetettebb lekérdezések megalkotásához. Ehhez nagyon kell a mentor, mert az összetett lekérdezések egyediek, és nehéz rájuk megoldást találni az interneten. A mentorom itt mindig el is magyarázta a megoldást, nem csak megadta, szétbontotta részekre, így meg is értettem. Ennek előnye akkor jött ki, amikor a zárófeladatként adott nagy programot írtam, és adatbázist használtam. Egyszerűen nem megy az adatbáziskezelés, ha nincs előttünk az egész adatbázis modell, a mezők és a közöttük lévő kapcsolatok.

A Generics és a rekurzió volt számomra a legnehezebb a Java SE képzés során, itt tényleg a mentorra támaszkodtam a legtöbb dologban. Rettenetesen sok gyakorlással lehet ezeket napi szinten használni, amit egy Java alapképzésnek nem lehet ilyen mélységben része. Generikus osztályt használtam a nagy programomban is, így már egyre többet értek belőle, de ezek a témák szerintem majd évek alatt tisztázódnak le teljesen, sok önálló kutatással és tanulással.

Megéri-e a pénzt?

Nehéz túllépni azon a felfogáson, hogy az “interneten minden ingyen van”, miközben simán elfogadott, hogy egy tanteremben ülve, fizetni kell az előadásért. A programozásban nagyon sok dologért kell nagy pénzeket fizetni, mert a programozók fizetését ki kell termelni a “termék” árából, ez látszik mindenhol. Legyen szó egy külsős könyvtárról, vagy egy API-ról, a legtöbb helyen mélyen bele kell nyúlni a pénztárcába.

Próbálgattam a nagy SEO cégek adatbázisait használni, ezektől lehet például lekérdezni, hogy egy weboldalra milyen linkek mutatnak, milyen keresőszavakra ér el jó helyezést, stb. Na ők sok-sok robottal fésülik át az internetet, az adatok feldolgozásáért jól fizetett programozók felelősek, a Moz például 40 billió linket tart nyilván az adatbázisában. Ehhez néztem hozzáférést, 120000 sornyi adat havonta kb. 78000 Ft, és ez nagyon kezdő szint. A nagy vetélytárs Ahrefs-nél 500000 sor a minimum, havi kb. 160000 Ft-ért.

Ezzel csak azt próbálom megmutatni, hogy a tudást nem csak megfizetik, hanem nekünk is fizetni kell azért, hogy tudást kapjunk. Ez lehet egy tanfolyam, mentori segítség, vagy mások által korábban megírt kódrészletek. A StudiCore esetében lehetőség van előre egyeztetett időpontban konzultációt kérni, ahol a kijelölt mentor válaszolja meg a kérdéseinket. Ha ezt nézzük, akkor jobban megéri a mentor, aki heti kétszer átnézi a kódjainkat, és megválaszolja a kérdéseinket.

Felvetődhet a kérdés, nem végezhető el a Java SE képzés mentor nélkül? A weboldal azt írja, hogy a képzést záró nagy program ellenőrzését csak a Pro csomagban végzi el a mentor. Ha erre nincs szükségünk, akkor önállóan is megtanulhatjuk az anyagot, legfeljebb a végén nem ellenőrzi le senki. Én mondjuk mindjárt a tervezésnél elmentem volna rossz irányba, a tervek leadásakor ugyanis a mentorom javasolta az MVC modellt, és végül ez alapján lett kész a szoftverem. Ő mondta el, hogyan történik a szoftverfejlesztés a valóságban, és én ennek megfelelően programoztam le a kódot. Nagy valószínűséggel értékelni fogják ezt, amikor munkahelyen vagy máshol példakódot kérnek tőlem, és nem egy egyetlen fájlba bezsúfolt, átláthatatlan forráskódot kapnak.

Végül pedig, a mentorom szoktatott rá a Stackoverflow használatára, mert sokszor a kérdéseimre elmondta a választ, és küldötte egy Stackoverflow linket, ahol utána is olvashattam. Ezzel megmutatta, hogyan is kérdezzek, és végül most sokkal könnyebben találok segítséget. Én azt ajánlom, hogy ha megoldható, mindenképpen a Pro csomagot válasszátok a Java SE képzés során, így nem megy el a kedvetek a nehézségek miatt, és lesz, aki végig visz a teljes kurzuson.