Miért van programozó hiány? Miért rossz sok szempontból a mai fejlesztői társadalom?
Sok ember szeretne programozóvá válni, de mégsem megy neki egykönnyen. Mire vezethető részben vissza ez a gyakori jelenség?
Felmerülhet bennünk a kérdés: miért van akkora programozó hiány manapság? Mást se hallunk a mindenhonnan, a csapból is ez folyik, hogy mindenhova programozó kellene. Nem csak Magyarországon, egész Európában nincs elég programozó, sőt, mondhatni az egész világon. A különféle hírportálok rendszeresen hoznak le cikkeket azzal kapcsolatban, hogy mennyire jól keresnek a programozók, és hogy mennyire sok jó dolog jellemzi ezt a szakmát: a kötetlen munkaidő, az otthoni munka (Home Office), és a többi.
Miért nem megy el programozónak mindenki? Hiszen többször annyit kereshetne a munkájával, mint a jelenleg kereső társadalom 85%-a. És ráadásul nem kellene napi 10 órákat dolgozni sem, pláne nem három műszakban, esetleg veszélyes, egészségtelen körülmények között.
Annak a kérdésnek-véleményem szerint-hogy miért van akkora hiány programozóból manapság, az az oka, hogy a programozói társadalom egy „rossz társadalom”. Ha picit összehasonlítjuk más munkatársadalmakkal, és rálátunk bizonyos mértékig a szakmára, akkor joggal fogalmazódhat meg némelyekben ez az álláspont. Szeretném kifejteni, hogy miért is van ez így.
Mik az okok?
Mire vezethetőek vissza a fenti ellentmondások? És miért tekinthető „rossznak” a programozói társadalom?
Nehéz elkezdeni
Sajnos, az az igazság, hogy Magyarországon nehéz elkezdeni manapság programozóként dolgozni. Mikor én annak idején elkezdtem dolgozni, mint fejlesztő, nem programozói egyetemi szakra jártam, hanem (gépész)mérnökire Pesten, és spontán, önállóan képeztem át magam webfejlesztővé. Maga a szakma nagyon megtetszett, viszont mikor elkezdtem munkát keresni, akkor abba a problémába ütköztem bele-és nagyon sokan mondják, hogy ez így van-hogy nehéz elindulni vele.
Nem arról van szó, vagy nem feltétlenül, hogy nehéz lenne, vagy komplex a programozás. A webfejlesztés, amivel én magam foglalkozom, igazából nem igényel hatalmas logikai komplexitást: ügyelni kell a mobil optimalizáltságra, tudni kell adatbázis lekérdezéseket végezni, ismerni kell az objektumorientált programozás alapjait, érteni kell frontend-és backend keretrendszerekhez is, tudni kell mi az a Restful Api, valamint alapvető elvárás, hogy valaki otthon legyen a verziókövetésben. És persze, az áttekinthető, és tiszta munkáról se feledkezzünk meg.
Mindezen nem nehéz technológiák/elvárások, inkább munkára való igényességre, és sok gyakorlásra van szükség. Viszont olyan mennyiségű lexikális anyag, és gyakorlást, utána olvasást igényelnek, ami nekem, viszonylag „szabad” egyetemistaként is egy évet vett igénybe. Ahhoz, hogy egy munkahelyen valakit alkalmazni akarjanak, a két dolog valamelyikére van szükség:
- Nagyon jónak kell lenni az általános fejlesztői készségekben (igényesség, OOP szemlélet, stb…) VAGY
- Pontosan ismerni kell az elvárt technológiákat
Az elsőt nagyon nehéz teljesíteni, legfeljebb akkor lehet, ha már régóta foglalkozik ezzel valaki. A másodikat már viszonylag könnyebb lehet, ugyanis vannak munkahelyek, amik nagyon hasonló technológiákkal, illetve azok párosításaival dolgoznak, például Laravel és Vue.js. Viszont abban az esetben, ha a sok technológia közül egy vagy kettő hiányzik, és nincs rendben az általános programozói tudásunk (amire nem igen lehet tapasztalat nélkül szert tenni), nem fognak felvenni minket.
Ez talán „furcsának” tűnik? Hisz mindenhol vannak elvárások, és felelősség. Gépészmérnökként például, ha valaki tud 3D-ben profin modellezni, azzal már sok helyre el lehet menni egyetemistaként dolgozni, mint gyakornok. Jóval kisebb mértékű lexikális tudás kell. De van még egy dolog, ami miatt más például mérnökként diákként dolgozni, mint programozóként.
Mindenki Home Officeban van
Na igen. A Home Office, amit mindenki szeret. Valóban nem rossz: nem kell bejárni, és rengeteg időt elpazarolni azzal, hogy felkelvén megborotválkozzunk, felöltözzünk, és bemenjünk az irodába. Otthon pedig visszaöltözzünk otthoni ruhába, mikor hazaértünk. Ezek a tevékenységek napi szinten +1 órát vehetnek el az életünkből, még akkor is, ha közel van a munkahelyünk.
Az otthoni munkavégzés óriási hátránya viszont, hogy a pályakezdők számára nem biztosít elegendő segítséget. Míg mérnökként 10 ember ül egy irodában, és együtt terveznek, bőven van lehetőségünk arra, hogy segítséget kérjünk másoktól. Természetesen elvárják az önállóságot, viszont ha elakadunk, akkor nem fél napra fogunk, mert éppen nem tudunk segítséget kérni senkitől, mert aki válaszolna nem érhető el, vagy más bioritmusából adódóan mást csinál, mint mi.
A fizetés-tényleg annyi?
Hallani hírportálokat azzal kapcsolatban nyilatkozni rendszeresen, hogy mennyire jól keresnek a programozók. 5 év után majdnem minden fejlesztő bére átlépi a havi egymilliós küszöböt. Igaz ez? A témával kapcsolatban, hogy mennyit keresnek a programozók valójában, írtunk egy cikket.
A helyzet az, hogy tényleg jobban keresnek az átlagnál, viszont sokszor nagyon túlzásokba esnek, mikor a bérekről van szó. Jól keresnek, úgy mint mondjuk egy mérnök a gyárban, aki attól függően, hogy milyen beosztásban van, kereshet többet és kevesebbet is. Viszont nem igaz az az állítás például, hogy a junior fejlesztők bruttó 400 ezer forinttól indulnak, és ez pláne nem igaz vidéken.
Mindez igazából nem „teszi rosszá” a programozói társadalmat, és nem is a fejlesztők hibája ez. Viszont kedvét szegheti valakinek, mikor egy állásinterjún bruttó 400 ezer forintot szeretne kérni, és mondjuk fele akkora összeget ajánlanak neki.
Összeségében véve, ha valaki szeret programozni, akkor eljut egy olyan szintre egy idő után, pláne vállalkozóként, hogy tényleg nagyon jól keressen, viszont az elején sokszor ez nem igaz.
A mentorálás-sok jut belőle?
A kérdés felmerülhet bennünk, hogy vajon mennyi mentorálást kap egy kezdő programozó mielőtt elkezd dolgozni, vagy miután már elkezdett, akár az első munkahelyén. Természetesen nehéz lenne általánosítani, mindenhol picit más a helyzet, viszont összeségében véve-véleményem szerint-elmondható az, hogy a programozói szakma az egyik szakma, ahol a legkevesebb mentorálásban részesülhet valaki.
Ez részben a korábban már tárgyalt Home Office berendezkedésnek az eredménye. Másrészt, rengeteg online kurzus, tananyag, fórum van az interneten, amiknek a segítségével az ember lényegében bármilyen szintre felképezheti magát, egészen egy erős junior szintig. Más szakmákban ez kissé kevésbé van így, véleményem szerint: kevesebb a Home Office, és nem található meg minden az interneten. Nekünk, mikor mérnökök voltunk, kifejezetten mondták, hogy soha ne tanuljunk az internetről, mert minden megbízhatatlan, ami onnét származik.
És mivel más szakmákra nem igaz az, hogy minden megtalálható lenne online, ezért nem is igazán várják el, hogy valaki teljesen önállóan megtanuljon mindent. Minden egyes gyár-ha a mérnökös példáknál maradunk-más, és más: más szabványokat, gyártóberendezéseket használnak, és ezek is eltérhetnek korszerűségükben. Még a legjobb mérnököktől sem várják el, hogy már az előtt tudjanak mindent, hogy odamennek dolgozni. Ez sajnos, sokkal inkább igaz a fejlesztői világra.
Mindez kissé általánosít, és nem mindenhol igaz. Az EPAM-nál például nagyon részletes, és kiterjedt mentor-programok vannak, melyek több hónapig tartanak, lényegében képzik a felvett dolgozót, hogy pár hónap alatt eljussanak arra a szintre, amire szükség lenne. Ez alatt pedig rendes fizetést kapnak. Sok helyen van mentorálás, viszont annak az esélye, hogy egy olyan helyre kerülünk, ahol nincs, összeségében véve magasabb mint a legtöbb szakma esetén.
Ha mentorálást szeretnénk profibbak részéről, akkor programozói jellegű Facebook-csoportokban lehet érdemes segítséget kérni. Általában vannak ilyen téren nagyon segítőkész emberek.
Nem tudom-tényleg az én hibám?
Mikor interjúkon vettem részt annak idején, akkor sokszor tapasztaltam azt, hogy valami miatt elutasítottak. „Nem elég átlátható a munkád”. Ekkor felmerült bennem a kérdés-ez valóban csak és kizárólag az én hibám?
Soha életemben nem dolgoztam előtte sehol, és azok a kódokat, amiket egyébként működtek is, a lehető legnagyobb igényességgel próbáltam elkészíteni. Mi volt a hiba?
Míg mérnökként vannak kötelező szabályok, melyekhez tartania kell magát mindenkinek (például műszaki ábrázolás), addig a programozásban nincs ilyen. A kód le fog futni még akkor is, ha nem a lehető legnagyobb igényességgel készült el. Manapság nagyon sok helyen az úgynevezett „Clean Code” alapelveihez való tartást követelik meg. Ez annak érdekében született, hogy a programozói munka egységessé válhasson: mindenki ugyanúgy, és tisztán kódoljon, és nem úgy, ahogy neki tetszik.
Ez nagyon logikusnak hangzik, de gondoljunk bele: egy kezdőtől valóban el lehet várni, hogy ezekkel tisztában legyen? Bizonyos dolgokat csak akkor tud, és képes az ember igazán megérteni, ha valaki picit leül mellé, és kijavítja. Még akár egy pár órányi mentorálás is hatalmasat dobhat a referenciáink kinézetén.
Biztos, hogy egy helyen fogunk dolgozni?
Ha elkezdünk diákként dolgozni, akkor tapasztalhatjuk majd, hogy lesznek olyan helyek, ahol alkalmazni szeretnének minket, viszont nincs annyi munka számunkra, amiből heti 20 órát tudnánk dolgozni. A kezdők számára, és könnyebb munkákból, weboldalakból, megrendelésekből valamiért kevesebb jut majd. A cég a jó fejlesztők idejét-ha úgy tetszik-sajnálni fogja, és ebből adódóan a könnyebb munkával inkább egy diákot szeretnének megbízni, hogy olcsóbb legyen számukra. Ebből viszont sokszor kevesebb van.
Éppen ezért, csalódás lehet számunkra az elején, hogy nem juthatunk kellő tapasztalathoz, ha találunk egy munkát. Illetve, több helyre kellhet bedolgoznunk hasonlóan, ami frusztráló. És ez hatványozottan igaz azokra, akik nem diákként szeretnék elkezdeni. Nekem volt ilyen tapasztalatom, igaz, hogy csak rövidebb ideig.
Programozó hiány van-miért nem kellhet valaki?
Felmerülhet bennünk a kérdés: hogy ha akkora hiány van fejlesztőből, akkor miért nem vesznek fel könnyebben olyan embereket, akik már a közelében vannak annak a szintnek, hogy ténylegesen programozóként dolgozhassanak. Mondjuk, mindent tudnak, csak az átlátható kódolás alapelveit nem. Amikor azt mondjuk, hogy "programozó hiány van", akkor nem helyesen fogalmazunk: minőségi munkaerőből van hiány. Olyan emberekből, akik mondjuk már minimum 3 éves szakmai tapasztalattal rendelkeznek. Az pedig, hogy sokszor valakit nem akarnak alkalmazni, ha már közel van egy jó pályakezdő szintjéhez: a programozói társadalom butasága. Sokszor nem lenne több idő pótolni a hiányosságokat, mint a legtöbb helyen a betanítási idő lenne.
Mindenhol így van ez?
A válasz az, hogy nem mindenhol. Sok országban sokkal nyitottabbak kezdőbb fejlesztők felé, és könnyebben veszik fel őket, akár teljes állású munkaidőre is. Valahol könnyebb, valahol nehezebb elkezdeni, viszont nem lehetetlen: sőt, aki beleteszi a munkát, és energiát, az egy idő után garantált, hogy fejlesztőként fog dolgozni.
Tényleg annyira vészes a helyzet?
Mindez, ami itt fel lett sorolva, talán nagyon elrettentő. Ennek ellenére, ha valaki tényleg odateszi magát, és a szabadidejét erre áldozza rá, akkor nagyjából fél-másfél év alatt eljuthat egy olyan szintre, hogy felvegyék valahová alkalmazottként junior programozónak. Írtunk arról egy cikket, hogy hogyan lehet a legjobban programozni tanulni, illetve arról is, hogy milyen nyelveket tanuljunk meg. Érdemes lehet elolvasni.
Bónusz tipp: ha nem vagyunk egészen biztosak a dolgunkban, akkor látogassunk el Tomori Nóra honlapjára, aki segíteni fog nekünk abban, hogy el tudjuk dönteni: vajon a programozás nekünk való feladat lenne-e?