40-es programozo

Programozás tanulás a negyedik X-hez közeledve

Az önképzés, az élethosszig tartó tanulás ma már a legtöbb munkában fontos, hiszen a gyorsan változó világ folyamatosan új és új kihívásokat hoz. Ezeknek pedig meg kell felelni, az újdonságokat viszont csak az ismereteink felfrissítésével tehetjük magunkévá.

A programozás olyan szakma, mely biztos jövőt adhat, és nagyban épít az önképzésre. De mennyire nehéz ma átképezni magunkat programozónak? Érdemes nekiállni? Mit lehet elérni vele? Ezekre a kérdésekre ad választ a ViktorJava.com bloggere, aki 2019. nyarán állt neki, hogy Java programozást tanuljon. A haladásáról és a felmerülő nehézségekről blogot is vezet, ami már önmagában különlegesség, magyar nyelven ritkán találhatók hasonló webnaplók. A dolgot még egyedibbé teszi, hogy a váltásnak 37 évesen állt neki, ezért az ő esete jó útmutatás lehet azoknak, akik a harmincas éveikben, esetleg már a negyedik X-hez közel kezdenének egy új szakmába.

Felkerestük Viktort, és kérdéseket tettünk fel neki a karrierváltásról, a tanulásról, és az egész folyamatról.

Miért döntöttél a programozás tanulás mellett?

Tíz éve online vállalkozó vagyok, és két okból döntöttem a programozás tanulás mellett. Az első, hogy mérnök informatikus végzettségem van, de a főiskolán elkanyarodtam erről a pályáról, nem programozói szakirányt választottam. Utólag már látom, hogy hiba volt, és ki szerettem volna próbálni, hogy képes vagyok-e az önálló tanulásra, megvan-e bennem az a plusz, ami a programozóvá váláshoz szükséges.

A másik ok anyagi volt. Tavaly tavasszal két nagy megrendelőmnél is problémák voltak, így az addigi biztos bevétel rövid idő alatt komoly megélhetési válsággá alakult. Bár a nehézségeket megoldottam, a Java programozást biztonsági megoldásnak választottam, ahol esetlegesen el tudok helyezkedni. Akkor még nem tudhattam, hogy 2020-ban a koronavírus miatt globális válság indul el, amit a cégem is megszenved, és a tanulás során felépített második pillér adja majd meg az önbizalmat a sikeres kilábaláshoz.

Ezek a dolgok már jó ideje érlelődtek bennem, de végül egy pénzügyi blog bejegyzésének elolvasása után vágtam bele az önképzésbe. Ott arról volt szó, hogy elhelyezkedünk egy munkahelyen, kényelmesen elvagyunk, közben pedig telnek az évek. Aztán történik valami, jön egy képzettebb munkatárs, egy válság, egy csőd, és az utcán találjuk magunkat az elavult tudásunkkal. Magamra ismertem a történetben, így nekiálltam, hogy felfrissítsem a tudásom, és piacképes programozói készségekkel rendelkezzek.

Programozas tanulas csapatban

Mennyit jelentett a főiskolai előélet a programozás során?

Ez jó kérdés, mert még a főiskola elvégzése után úgy gondoltam, hogy akár Java programozónak is jelentkezhetnék, hiszen 2 féléven át volt ilyen tantárgyunk. Aztán a képzésnél rájöttem, hogy kb. a tanfolyam 2. hónapjában már olyan dolgokról volt szó, amiről fogalmam sem volt korábban.

A főiskolán egy félévig ráadásul csak programozás elméletet tanultunk, a második félév volt az alap Java. Tehát a tanfolyam elején voltak ismerős dolgok, ennyit segített a főiskola. Az SQL adatbáziskezelést szintén hallgattam korábban fél évig, így a programozás tanfolyam során ott is voltak ismerős részek. De inkább az elvet értettem, a parancsokat és használatukat nulláról kellett újra tanulnom.

Talán még kiemelném a főiskolai matematika kurzusokat, ezek indirekt módon segíthetik a logikus gondolkodásmód kialakulását, így szerintem még mindig jó ötlet lehet elvégezni egy informatikai szakot. Voltak programozó ismerőseim más egyetemekről, ők azonnal fejlesztőként kezdték a pályafutásukat, cserébe viszont sokkal nehezebben kaptak diplomát. Nekem csak 3 félév matematikám volt, nekik 6, és sokkal jobban rágyúrtak a programozásra, mint az én általános informatikai szakomon.

Aki felnőttként kezdené el a programozást, neki mindenképp jó ötlet egy online tanfolyam. Otthon végezhető, akár hétvégén vagy ünnepnapokon is, és nem kell bejárni egy fizikailag is létező iskolába. Később pedig, az elhelyezkedés után, fel lehet venni egy főiskolai képzést, amire csak havonta néhány alkalommal kell eljárni, így a végzettség is meglehet. Nekem már van főiskolai diplomám, de ha nem lenne, akkor ilyen sorrendben csinálnám: tanfolyam, munka, mellette suli.

Miben más egy online képzés, mint a főiskola?

Az online Java képzés sokkal hatékonyabb, és célzottabb. A főiskolán tanultam mikroökonómiát, makroökonómiát, meg csomó más tölteléktárgyat is. Az előadások megadott időben voltak, ahol egy tanteremben egy jó vagy rossz oktató ledarálta a mondanivalót.
Az online oktatás gyakorlati szemléletű, nem több száz oldal elméletet ad fel, hanem kis részekre van osztva. Egy elméleti részt több programozásos gyakorlat követ, ahol a kód elkészítése közben valóban megértjük a tananyagot. A feladatok ráadásul egymásra épülnek, míg az első mindig egy nagyon könnyű, a második már nehezebb, a többivel meg komolyan meg kell küzdeni. De hatásos, erre akkor jöttem rá, amikor internetes forrásokban kutattam. Az ott leírt kódokat rövid tanulmányozás után megértettem, és fel tudtam használni saját céljaimra. A főiskolán ilyet nem éreztem, ott a lényeg az volt, hogy átmenjek a vizsgán, az online tanfolyamon ezzel szemben a gyakorlati tudást helyezték előtérbe.

Mit tudsz most elvégezni a Java segítségével?

Most magabiztosan használom az adatbázisokat, tudok grafikus felületű programokat írni, és az ezekhez kapcsolódó háttérfolyamatokat elkészteni. Az online Java tanfolyam záró része egy saját program megírása volt, én olyan rendeléskezelő szoftvert írtam, amellyel a saját cégem, megrendelőim és a nekem bedolgozók adatait tudom kezelni.

Bár ez a szoftveren nem látszik, a háttérben 26 fájl dolgozik együtt, elterjedt programtervezési megoldásokat használva, ez viszont akkor jön jól, amikor referenciaként meg kell mutatni egy hozzáértőnek.

Mostanában saját céljaimra használom a Java-t, például, az internetes szoftverek nagy része CSV formátumban adja át a riportokat, adatokat. Ezeket szoktam Java segítségével feldolgozni, és a saját céljaimnak megfelelően kinyerni az adatokat. Gyakran kell nagyméretű adatbázisokat átalakítanom, illetve ezeket megtisztítani a különféle beleírt adatszeméttől, ezekhez is kiváló a Java.

Példát is tudok mondani, korábban Notepad++ segítségével rákerestem egy dologra, majd manuálisan eltávolítottam az adatok közül. Aztán mentem a következőre. Ez pár száz sornál működött, de órákba tellett. Most a Java több százezer soron hajtja végre az utasításom, 2-3 másodperc alatt. Persze, ehhez kell a tudás, amivel megmondom, mit csináljon, de ezt nagyon jól megtanultam a tanfolyam során.

Junior Java programozó állást egyelőre még nem keresek, mert költözést tervezünk, és addig is, további technológiákat tanulok meg.

Mi volt a legnehezebb az önálló tanulás során?

Ha nem számoljuk azokat a szokásos programozási buktatókat, amelynek során azt az egyetlen kis hibát keressük órákon át, a legnehezebb az volt, hogy elakadás esetén 2-3 napot kellett várnom a mentorom válaszára. Hetente kétszer nézte át a haladásom, és ilyenkor válaszolta meg a kérdéseket is. Nehéz volt leküzdeni azt a késztetést, hogy minden azonnal kellett. Egyébként az első néhány alkalmat követően már rájöttem, hogy a kérdéseket mindig a megadott határidő előtt küldjem el, ugyanis nagyon sokszor megtaláltam a választ az internetes kutatásaim során is.

programozoi nehezsegek

Az önálló tanulás legnehezebb része, hogy megtanuljunk kérdezni és keresni, mindkettő nélkülözhetetlen, ha programozók akarunk lenni. Nem egyszer, nem kétszer zavartak el az internetes fórumokról, mert azt írtam, hogy nem működik a programom. Ez nem kérdés, pontosan meg kellett fogalmaznom, mit csináltam, mit történt, és mire számítottam volna. Így már mindenki segítőkész volt.

A tanfolyamon volt néhány extra nehéz rész, a Java Generics, a regex, a lambda kifejezések, a rekurzió, mind olyan, ami a legmodernebb dolgok közé tartoznak, és kezdőként könnyű megakadni velük. Szerencsére a mentor ezeknél is segített, így túljutottam rajtuk, persze az ilyen témaköröknél még jó sok idő kell, mire az ember profivá válik a munka során.

Milyen sikerélmények értek a tanfolyam alatt?

Az általam használt oktatószoftverbe fel kellett tölteni a programkódokat, ahol az automata feladatértékelő mindjárt ellenőrizte is a megoldást. Így lépésről-lépésre lehetett javítani, és nem kellett a mentorra várni. Sikerélmény volt, amikor egy nehéz szakasz után az értékelő végre gratulált, és megadta a 100%-ot.

programozoi siker

A legnagyobb sikerélmény pedig az volt, amikor megterveztem a záró nagy feladatomat, és minden gond nélkül a szemem előtt láttam az egész működését. Szinte csont nélkül írtam meg a kódot, és csak olyan speciális dolgokhoz kellett kutatnom, melyek egyedi megoldást jelentettek. Ilyen volt például, hogy egy-egy űrlap mezőbe írva az értékeket, valós időben módosuljanak az ablak más részein lévő értékek. Vagy amikor feldobtam egy táblázatot, és a választott elemtől függően dinamikusan változtattam rajta az oszlopok számát, nevét és értékét. Nagyon sokat tanultam a gyakorlati megvalósítás során is, és az interneten tényleg mindenre volt válasz.

Persze az is döbbenetes volt, amikor beolvastam egy több százezer sort tartalmazó adatfájlt az első privát projektemben, és ott akartam hagyni a gépet dolgozni. Aztán 2 másodperc után ott volt az eredmény, külön fájlba generálva. Akkor jöttem rá, hogy mennyit fog segíteni a Java nekem a saját projektjeimben is. Amúgy ezekről is blogolok, azt is megmutatom a ViktoJava.com oldalon, hogyan lehet ingyenesen letölthető adatokból működő projekteket csinálni.

Mennyire szükséges a mentor a tanuláshoz?

Én a StudiCore tanfolyamát használtam, ott a Java SE modulhoz nem kötelező a mentor, van automata feladat kiértékelő. De a kurzus folyamán voltak olyan nehezebb, a fentebb is említett részek, amikor nagyon el voltam veszve. Ezek olyan elvont programozási eszközök, melyeket nehéz megérteni, de amint ez megvolt, már én is használtam őket. De ehhez az kellett, hogy a mentorom akár több ezer szóban magyarázza el őket, lépésről-lépésre.

Szintén nagyon jól jött a segítség, amikor összetett SQL lekérdezéseket kellett írni, vagy amikor trükkös Regex-eket kellett megalkotni. A programozást tanulók tudják, hogy ezekkel ítéletnapig el lehet szórakozni, ha nincs hozzájuk segítség.

Mennyire szükséges az angol nyelv a tanuláshoz?

Én 10 éve angolul dolgozom, így nekem nem jelentett gondot az angol nyelv. Mivel a StudiCore 100%-ban magyar felületű és a mentorok is magyarok, akár angol tudás nélkül is el lehet boldogulni. Amikor azonban az internet kell egy kérdés megválaszolására, ott gyakorlatilag csak angolul lesz segítség. A Google Translator segíthet, de előbb-utóbb meg kell majd tanulni angolul. Nem csak a programozáshoz.

programozoi tanfolyam ara

Mennyibe kerül egy programozói tanfolyam?

Az általam használt tanfolyam díja mentor nélkül havi 39000 Ft, mentorral havi 75000 Ft. Én azt vallom, ha valamire megéri költeni, akkor az egy programozó tanfolyam, még ha komoly megterhelést is jelent. Én 2019. augusztusától 2020. májusáig végeztem az alap Java tanfolyamot, de érzésem szerint jóval gyorsabban is meglehetett volna.

2020. tavaszáig havi 250 órákat dolgoztam a vállalkozásomban, így sokszor nem jutott elég idő a programozásra. A nagy feladatom pedig olyan nagyívű lett, hogy 2 hónapig tartott, míg befejeztem. Én reálisnak tartom, hogy valaki gyorsabban is elvégezze, főleg azon múlik a dolog, hogy mennyi időt találunk a tanulásra.

Gyakran éjfélig programoztam, hétvégén kimentünk a gyerekkel valahova, de előtte és utána tanultam, a feleségem sokat támogatott. Konkrétem emlékszem, hogy a karácsonyt is végig programoztam, és akkor értek az első legnagyobb sikerek, nagyon lelkes voltam. Délben felálltam, megkajáltunk, a gyerek tévézett, én nyomattam a Java-t, majd másnap végig látogattuk a családot.

Voltak vicces pillanatok is, amikor először mutattam meg a feleségemnek, hogy csillag (*) karakterekből ki tudok rajzolni a képernyőre egy karácsonyfát, aztán hónapokkal később azzal dicsekedtem neki, hogy az első grafikus szoftverem menüpontjára kattintva felbukkan egy ablak. Ma meg már az általam megírt rendelésrögzítő szoftverben viszi fel az ügyfeleket és a rendeléseket, és nyitja meg a nyereségkimutatást. Jó visszagondolni, hogy mennyi mindent elértem a tanulás során, nagyon látványos a fejlődés.

Milyen további céljaid vannak a programozás területén?

A Java mellé szeretnék még megismerni pár alap dolgot, ezek lesznek az esetleges költözésem mellett az elkövetkező hónapok feladatai. Most tanulom a Git-et, utána megnézem a Maven-t. Ezt követi majd egy igen alapos JavaScript alapok tanfolyam, végül pedig szeretném a mostani PHP tudásom olyan szintre fejleszteni, mint a Java esetében.

A végső célom, hogy a most esetenként megbízott programozókat le tudjam váltani, akik hónapos késésekkel, gyakran összecsapva adják át a weboldalaim. Érdekel a Java weblapoknál történő felhasználása is, így mindenképpen rámennék a webes vonalra is. Ezekről a tervek szerint a ViktorJava.com weboldalon, és a Facebook oldalamon is folyamatosan posztolok majd.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.