Hogyan legyél programozóként is profi?

Rendszeresen hangoztatom különböző oldalaimon, hogy elég, ha csak addig eljutsz, hogy felvegyenek programozónak, és a cégnél értékes munkát tudj végezni, utána már megy minden, mint a karikacsapás.

De tulajdonképpen hogy is van ez miután felvettek?

Nagyobb vagy tőkeerősebb cégek esetében a felvett junior programozó először a cég belső tanfolyamán találja magát, ahol egyrészt egy közös szintre hozzák az újakat, illetve meg is ismertetik őket a vállalat sajátosságaival (pl. konkrét eset, hogy ha egy csomagküldő szolgáltató informatikai részlegére mész dolgozni, akkor a csomag kézbesítésekor használatos kis terminálról is oktatnak), a cégen belüli folyamatokkal. Felkészülhetsz arra, hogy ilyen esetben 1-2 hónapig, vagy akár 3-4-ig is a cég azért fizet, hogy tanuljál. Nem meglepő ebben az esetben – végtére is az oktatás egy elég drága és értékes mulatság – tanulmányi szerződést kötnek veled. Az oktatásodért cserébe elvárnak 1-2 év szerződést, amikor te nem mehetsz el, csak ők tehetnek ki. Ez teljesen normális. Ha már kiképeznek, legyen meg a hasznuk.

Kisebb cégek a felvétel utáni képzést általában nem engedhetik meg maguknak, már csak azért sem, mert egyszerre nem vesznek fel annyi embert, hogy a külön oktató megfizetése megérné. Ilyen esetben általában egy rövidebb és kevésbé formális betanulás után jöhet az éles munka – és az aközbeni tanulás. (Attól még, hogy nincs formális oktatás, nem kell leírni egy céget: sokszor érdekesebb munkák vannak, a fejlesztési ciklus hamarabbi szakaszába kapcsolódhatsz bele, így igazán sajátodnak érezheted azt a projektet, amin dolgozni fogsz. Ráadásul könnyebben meg lehet beszélni és oldani helyzeteket, ha a “nagyfőnök” szinte folyamatosan az üzletmenet része).

Ha olyan cégnél találod magad, ahol nincs formális képzés (amire várhatóan on-the-job betanulásként hivatkoznak), akkor kapsz egy feladatot, és oldd meg, és közben rájössz a mikéntjére.

Hogy mindezt hogyan?

  • Ha a mi tanítványunk voltál, akkor átnézel egy-két kapcsolódó anyagrészt, hátha találkozol legalább koncepcionálisan hasonló részekkel, amit át tudsz vinni az új feladatra
  • Elkezdesz neten utánanézni a dolognak, ami persze azért több idő, mert kezdőként nem biztos, hogy el tudod dönteni, mi való neked, és mi lesz mélyvíz.
  • Tutorialokat nézegetsz (ez szintén időigényes)
  • Befizetsz egy tanfolyamra te magad (ha kellően proaktív vagy, ki tudod járni a cégnél, hogy részben vagy egészben ki is fizesse. Nekik ez költségként elszámolható)
  • Elolvasol egy-két könyvet (valószínűleg a veled foglalkozó senior fog egyet-kettőt javasolni)
  • … és csinálod!

Mire profi programozó leszel, addig ennek a mikéntjét is kitanulod. Kezdőként viszont az a nehéz, hogy a struktúráját, lényegét, belső összefüggéseit megértsd egy eszköznek (mi erre helyezzük a hangsúlyt).

Ami még fontos, hogy a programozást azért nehéz megtanulni, mert egy csomó új gondolati struktúrával találkozik az ember. A jó hír az, hogy ezek a struktúrák ismétlődnek: ha egy elvet megértesz, akkor a következő hasonló megértése nem lesz nehéz. Mondok egy példát, amit feltételezésem szerint te is ismersz: a névtér fogalmát (na biztos nem így! :-)). Gondolj a könyvtárrendszerre: Van a C: meghajtó, azon belül könyvtárak (mappák), a könyvtárakon belül más könyvtárak és fájlok. Létezhet ugyanolyan nevű fájl két különböző könyvtárban (pl. C:\TEMP és C:\WINDOWS). De ugyanígy vagyunk a webcímeket alkotó somain nevekkel is: van a .hu, mint legmagasabb szint, alatta a programozas-oktatas vagy a studicore, és mindkettő alatt lehet mondjuk www vagy online. Olyan, mintha egy fájlrendszert látnánk, csak fordítva írjuk és másra használjuk. De az elv ugyanaz! És az informatika tele van ismétlődő elvekkel… de ezeket egyszer azért meg kell tanulnunk!

A lényeg, hogy minél tovább vagy informatikus/programozó, annál kevesebb új van a nap alatt számodra a szakmádban.

És akkor álljon itt a csinálás mellett még három eszköz, ami hosszú távon is használható egy programozó önfejlesztése esetében:

  • könyvolvasás: lehet, hogy elektronikusan, vagy ebookolvasóról, de érdemes könyveket is olvasni a programozás egyes, saját szak- vagy érdeklődési területedbe vágó témában, viszonylag rendszeresen
  • cikkek olvasása, szakértők nyomon követése: olyan szakmában dolgozunk, amiben a nagy klasszikusok, szakmánk “alapító” atyjai még velünk élnek: Bill Gates, Linus Torvalds, Tim Berners-Lee vagy éppen James Gosling. Már egyre kevesebben vannak aktív korban, de aki igen, azokat érdemes követni
  • kódolvasás, azaz más programjai forrákódjának olvasása: ez lehet, hogy meglepő, de nagyon sokat lehet tanulni abból, hogy ha egy jól összerakott, kellően komplex program részeit próbálod meg megérteni és adott esetben akár kiegészíteni. Még abból is tanul az ember, ha nem a legjobban van összerakva, vagy az idők során összekutyulódott (szokása a programoknak), hiszen akkor friss és külső szemmel ránézve a hibáit, gyengeségeit is meg tudod találni

De ezek már a haladó eszközök, kezdőnek semmiképpen nem ajánlom, mert inkább pótcselekvés és időhúzás, mint hatékony célelérés, szóval először inkább tanulj meg programozni, és ha az alapok megvannak, és bekerültél egy céghez, akkor utána még mindig ráérsz ezeket elkezdeni. (Ha sosem bringáztál még, akkor nem azzal fogod elkezdeni az edzést, hogy leborotválod a szőrt a lábadról, hogy kisebb legyen a légellenállás… Pedig egy bizonyos ponton annak is megvan a létjogosultsága)