Mikor tágabb értelemben informatikáról beszélünk, akkor a hétköznapi ember általában rendszergazdákat lát a lelki szemei előtt, ezzel a szakmával találkoznak ugyanis legtöbbet munkavállalóként. Ők azonban programozási képességekkel kevésbé rendelkeznek. De nem kell tudnia programozniuk 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.
A Codecool szerint az alábbi pozíciókban van jelentősége a programozási tudásnak:
A klasszikus értelemben vett szoftver tesztelő 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 szoftver fejleszté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 precízitást, rendszer szemléletet, dokumentációs készséget.
Leggyakrabban webes alkalmazások felületeinek (UI) kialakítását és programozását végző szoftver fejlesztő. 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 desktop 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.
A két legnagyobb mobil platform 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 mobil alkalmazá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, platform verziókat, függőségeket, akár hardver függőségeket.
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 Adat szaké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.
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 szoftver fejlesztő. 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.
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 projekt menedzserek egy ú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.
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 szoftver mérnöki pozició, 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.
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 orvos technoló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.
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ör tervezés a munkájukhoz. Az alacsonyabb szintű programnyelvek (pl. C) mellett tervező szoftverek ismerete is elvárás (pl. CAD programok).
Azokat a szoftver fejlesztő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.
A legnagyobb kereslet a programozási készségeket igénylő munkavállalókra van, de a célzott, és jó minőségű oktatással ezen a területen fel lehet zárkózni megfelelő utánpótlással.
– mondta Boda József, a Codecool Programozóiskola társalapító-ügyvezetője. A 12 hónapos elméleti és 6 hónapos gyakorlati oktatás akár olyanokból is programozót képes faragni, akik korábban nem rendelkeztek tapasztalattal ezen a területen.