Tizen-, huszon- és ötvenezres munkaerő-hiányt emlegetnek az IT-iparban a szakemberek, de ez összetett probléma, nem mindegy, pontosan milyen tudásra van szükség, nagyon különböző területeket szoktunk informatikus vagy programozó néven emlegetni.
Mikor tágabb értelemben informatikáról beszélünk, akkor a hétköznapi ember nagy valószínűséggel rendszergazdákat lát a lelki szemei előtt, ezzel a szakmával találkoznak ugyanis legtöbbet munkavállalóként. Az üzemeltetési területen dolgozók azonban csak kis szeletét jelentik az informatikusoknak, és munkájuk sokrétű felkészültséget kíván, de programozási képességet kevésbé – írja a Codecool közleményében.
Ahogy nem kell tudnia programozni az informatikai tanácsadóknak és az informatikai szolgáltatások értékesítőinek sem, ahogy a hardvereket fejlesztő és tesztelő mérnökök esetében sem elvárás a programozói szaktudás. Akkor melyek informatikai szakmák, ahol a programozói szaktudás érvényesülhet? A Codecool programozóiskola összeszedte a pozíciókat a junior készségekkel is betölthető feladatkörtől a sokéves tapasztalatot igénylő, legjobban fizető állásokig haladva.
Szoftvertesztelő
A klasszikus értelemben vett szoftvertesztelő olyan teszt-forgatókönyveket és terveket készít, amik tartalmazhatnak manuális (kézi) és automatikus (gépi) teszt lépéseket is. Ezeket a teszt-forgatókönyveket végrehajtja, méri és elemzi, vagyis a szoftverfejlesztési folyamat minőségbiztosítási oldalán áll. Jellemzően még nem igényel komoly programozói tudást, sokkal inkább precizitást, rendszer-szemléletet, dokumentációs készséget.
Front-end fejlesztő
Leggyakrabban webes alkalmazások felületeinek (UI) kialakítását és programozását végző szoftverfejlesztő. A front-end utalhat bármilyen rendszer (nem csak webes) azon részére, amivel a felhasználók találkoznak, így ritkább esetben lehet asztali fejlesztés (pl. WinForms, WPF, esetleg Java Desktop) is. Webes környezetben Javascript programozást, Javascript keretrendszerekkel (pl. Angular JS, React JS, Ember.js, Meteor.js) való munkát és HTML/CSS szerkesztést is tartalmaz a munkakör.
Mobil szoftver fejlesztő
A két legnagyobb mobilplatform az Android és az iOS. Az előbbire Java nyelven, a másikra már jellemzően Swift nyelven írnak mobil alkalmazásokat az erre specializálódott fejlesztők. Azért specializálódnak, mert a mobilalkalmazásoknak van egy egyedi logikája és megjelenítő rétege. Például nagyon más az alkalmazások életciklusa (mint egy webes alkalmazásé) és tudni kell kezelni a különböző képernyő-felbontásokat, platformverziókat, függőségeket, akár hardverfüggőségeket.
Adatszakértő
Mióta rengeteg digitális adat keletkezik és egyre hatalmasabb adatbázisok és adattárházak épülnek, létrejött egy új munkakör, a Data Scientist vagyis magyarul adatszakértő. Programozói tudást leginkább Python, R vagy SQL nyelveken használnak, de mellette szükség van statisztikai és mélyebb matematikai ismeretekre, akár gépi-tanulási alapokra (machine learning) vagy adat-vizualizációs és kommunikációs skillekre is.
Full-stack szoftverfejlesztő
Jellemzően Java vagy C# nyelven, webes keretrendszerek használatával együtt akár a backend, akár a frontend területen dolgozni képes szoftverfejlesztő. A tervezéstől az implementáción át a tesztelésig és akár üzemeltetésig minden feladat a munkakörébe tartozhat, ettől lesz változatos és kihívásokkal teli ez a munka.
Technikai projektmenedzser
A szoftver projekteket és folyamatokat nem könnyű úgy átlátni, hogy az illető nem ért a mögöttes technológiákhoz és például sosem látott programokat vagy adatbázist közelről. Éppen ezért a projektmenedzserek új generációjára lett szükség, akiknek van technológiai háttere is. Gyakran programozókból lesznek ilyen menedzserek, akiknek jók a szervezési és kommunikációs készségeik, de azért fordítva is előfordul, hogy egy projekt menedzser képzi magát tovább szoftver fejlesztői témákban.
Tesztautomatizáló mérnök
Mivel a tesztek manuális futtatása meglehetősen időigényes feladat és a szoftverek száma egyre nő, ezért automatizálás nélkül elképesztően sok szoftver tesztelőre lenne szükség. Ennek megoldására jött létre egy olyan szoftvermérnöki pozíció, aminek a célja olyan szoftverek írása, amik teszt esetek automatikus futtatását és elemzését teszik lehetővé. Bármely nyelven – Java, C#, Python, Javascript, stb. – szükség van rá attól függően, hogy az adott cég miben írja a szoftvereit.
Szoftvermérnök
Itt a mérnök megnevezés általában arra utal, hogy több az elvárás a programozói tudásnál. Mérnök végzettségre (villamosmérnök vagy mérnök informatikus, stb.) azért lehet szükség, mert például orvostechnológiai szoftvereket vagy más, erősen matematikára vagy fizikára épülő szoftvereket azok tudnak készíteni, akik ezt évekig tanulták. Az se ritka, hogy a hardveres részeket is át kell látni, mint például egy képfeldolgozó eszköznél.
Beágyazottrendszer-fejlesztő
A beágyazott rendszer célfeladatot lát el, nem olyan, mint egy általános számítógép. Feladat-specifikus mechanikus és elektronikus alkatrészeket és ezeken futó szoftvereket értünk alatta, mint például egy szervókormány vagy egy digitális kamera. Azok a fejlesztők vagy mérnökök, akik ilyen rendszereket programoznak, jellemzően villamosmérnöki végzettségűek, mert gyakran kapcsolódik digitális vagy analóg áramkörtervezés a munkájukhoz. Az alacsonyabb szintű programnyelvek (pl. C) mellett tervező szoftverek ismerete is elvárás (pl. CAD programok).
Szoftvertervező (Architect)
Azokat a szoftverfejlesztőket, akik már sok rendszert építettek fel az alapoktól, és képesek átlátni komplex struktúrákat, több száz modulból vagy szolgáltatásból álló hatalmas rendszereket, azokat egy idő után rendre szoftver tervezési feladatokkal látják el. Ebből következik, hogy junior (belépő szintű) szoftver tervező nem létezik, hiszen rengeteg tapasztalat és komoly rendszer szemlélet kell hozzá. Képesnek kell lenni megtervezni a szoftver működését a legapróbb részletekig és érthetően átadni a terveket az implementációt végző fejlesztőknek.