Milyen IT szakmák vannak?

Milyen programozói állások vannak? Ezek mit csinálnak? Mennyit keres egy programozó? Melyik nyelv a legkeresettebb? Miből áll egy programozó munkanapja? Mennyi idő megtanulni programozni? Milyen képességek kellenek hozzá? Hogyan válasszak? Gyakran kérdezitek, hogy a BeCube kezdő és haladó tanfolyama után merre lehet továbbindulni, milyen IT szakmák vannak. Megpróbáljuk ezeket tisztába tenni.

A koronavírus helyzet hatását mi is érezzük, de nálunk nem annyira a kereslet mennyisége, inkább a jellege változott. Azelőtt többnyire megfontoltan, a programozás iránt valamennyire eleve érdeklődően kerestetek minket, de úgy látjuk, a vírus alatt jóval többen kényszerültök rá, hogy a szakma keresettsége miatt vágjatok bele. Tudjuk, hogy emiatt jóval többen tapogatóztok a teljes sötétségben, mint korábban. Ha pedig megkérdezel valakit, aki ért hozzá, hogy “mit csinál egy informatikus”, akkor sem kapsz egyenes választ, csak “attól függ”, meg “miért, téged mi érdekel?” jellegűeket. Megpróbálunk most ebben az útvesztőben segíteni a szokásosnál hosszabb poszttal.

Szóval mit csinál egy IT-s?

Először is szögezzük le: az IT-s (“ájtís”) és a programozó (vagy szoftverfejlesztő) nem ugyanaz. Habát IT-nak (információ technológia) hívják a területet, amibe a programozókat is szokás sorolni, “IT-s”-nak azt szokták hívni, aki egy cég alkalmazásában a céges számítógépeket gondozza, vagy egyéb rendszer felügyeletét végzi. Ők inkább rendszergazdák, feladatuk egy működő rendszer működésének biztosítása. Az ő feladatuk, hogy ha elromlik egy számítógép, megjavítsák, ha egy dolgozó elfelejtette a jelszavát és kizárta magát, segítsenek, ők készítenek biztonsági mentéseket, frissítik az operációs rendszert, a vírusvédelmet, stb. Csúnyán hangzó kifejezéssel ők az informatika világának gondnokai, szerelői. Hosszabb blogposztot találsz a munkájukról a HR Portálon itt.

Amikor informatikushiányról beszélnek, általában nem rájuk gondolnak, hanem a fejlesztőkre, vagy más néven programozókra. Félreértés ne essék, a rendszergazdákra is nagy szükség van, és egy jól képzett szakember biztosan fog munkát kapni. A lényeg az, hogy felismerd a különbséget, és ne kérd meg a programozó barátodat egy Windows újratelepítésre, mondván “te úgyis az IT-ban dolgozol, pont ehhez értesz”.

Rendben, de akkor mit csinál egy programozó?

Ha az autóiparhoz hasonlítjuk a számítógépek világát, akkor a rendszergazdák az autószerelők, a szoftverfejlesztők pedig azok, akik megtervezik az új modelleket. Milyen újítások legyenek a következő modell motorjában, amivel olcsó marad, de kisebb a fogyasztása is? Hogy nézzen ki, hogy áramvonalas és tetszetős is legyen? Hol lehet még egy kicsit lefaragni a súlyából?

Nem meglepő módon a szoftverfejlesztő az, aki a szoftvereket fejleszti. Ezt a blogposztot például egy böngészőben olvasod, például Google Chrome-ban. A böngésződet programozók alkották. Programozók készítették a Microsoft Word-öt, amiben szöveget szerkesztesz. Programozók alkották a levelezőrendszert, amivel e-maileket küldesz. A játékokat, amivel játszol, a weblapokat, amiket megnézel. A YouTube-ot, Netflixet, facebookot, Spotify-t mind fejlesztők tervezik, készítik, tesztelik. De ők készítik a kevésbé látható rendszereket: önvezető autók szoftvereit, vállalatirányítási, számlázási rendszereket, a webshopok automatizációit, ahonnan legutóbb rendeltél valamit, de még a mosógépek programjait is. Ők javítják ki a talált hibákat, ők alkotják meg az új funkciókat, ők javítanak a gyorsaságukon.

Ez technikailag azt jelenti, hogy egy, vagy több programnyelven programkódokat írnak, illetve létező kódokat módosítanak. Egymás kódjait ellenőrzik, a sajátjukat és egymáséit tesztelik. A programozóknak általában foglalkozniuk kell a dokumentációval, tesztekkel, illetve egy sor más technológiát is használnak, mint verziókezelő rendszerek, hibakereső programok, egyebek. Régebben összeállítottunk egy hangsúlyozottan nagyon szubjektív listát, hogy nagyságrendileg mikhez kell értenie egy prorgamozónak egy programnyelv megtanulásán kívül. Ezt az összeállítást itt megtalálod.

Na de mit kell megtanulni, hogy programozó legyek?

Az erre a kérdésre adott gyakori hebegés-habogásnak az az oka, hogy egyszerűen nincs ilyen szakma, vagy munka, hogy “programozó”. Ez inkább egy terület, amibe rengeteg különféle szakma tartozik, és gyakran alig van köztük átfedés. Éppen ezért nehéz eldönteni, hogy melyik irányba indulj, melyik szakmát válaszd, hiszen ha csak most akarsz elindulni ezen az úton, még nem tudhatod, ki mit csinál. Ebben próbálunk most segítséget nyújtani. Ez a poszt hosszabb lesz a szokásosnál, és sok hivatkozást fog tartalmazni más írásokra is, de reméljük, tudunk segíteni a döntésben.

A poszt második felében felsorolunk néhány konkrét szakmát, ismertetve, hogy mit csinálnak, de előtte általánosságban írunk picit arról, hogy miként érdemes dönteni.

Melyik programnyelv a legkeresettebb?

Az egyik leggyakoribb kérdés, hogy melyik nyelvet tanuld meg, amivel legnagyobb esélyed lesz állást kapni. Melyik a legkeresettebb, melyikkel lehet elérni a legnagyobb fizetést?

Akárhogy is kerüljük a mellébeszélést, az őszinte válasz akkor is az, hogy ez egyszerűen nem így működik. Minden progamozó többféle nyelvet is használ, és egy adott munkahelyen is megváltozhat a követelmény egyik pillanatról a másikra. Nem ritka, hogy egy konkrét szoftvert újraírnak egy új nyelvben, így hiába kezdtél dolgozni egy adott nyelv használatával, lehet, hogy pár hónap múlva már újat kell használnod.

Léteznek népszerűségi mutatók a programnyelvekről, az egyik legismertebb ilyen a Tiobe Programming Index. Eszerint általában a Java, C és a Python a három legnépszerűbb nyelv (erről relatíve friss cikket itt ovlashatsz), de mindenkinek mást jelent a népszerűség, és ez nem feltétlen vág egybe azzal, hogy egy programnyelv ismeretével mennyire könnyű munkát találni, mennyire könnyű megtanulni, vagy hogy mennyire fizetik meg jól, szóval ez önmagában ne legyen döntési szempont, bár jó ötlet, ha nem a lista végén álló nyelvben kezdesz elmerülni. (Bár ha konkrét célod van, akkor ez éppen a legjobb választás is lehet.)

Gyors Guglizás eredménye például ez a cikk is: A legkeresettebb IT szakmák Magyarországon

A dolgot az is megbonyolítja, hogy nincs egyértelmű megfeleltetés programnyelv és állás között. Például találkozhatsz C++ fejlesztőkkel, de nem nagyon van olyan álláshirdetés, hogy “Python fejlesztő”. A Pythont inkább más dolgokkal együtt kérik, például egy összetettebb állás egyik követelményeként. A webfejlesztés világában pedig aztán igazán nagy kavalkád van, egy-egy jelentkezőtől technológiák egész hosszú sorát várhatják el annyi kombinációban, ahány álláshirdetés van.

Talán lehetne statisztikát csinálni arról, hogy melyik programnyelv szerepel a legtöbb álláshirdetésben (és biztosan van is ilyen), de szerintünk nem sok értelme lenne. Ez alapján választani rossz döntés lenne.

Akkor hogyan válasszak programnyelvet?

Egyik tanárunk fogalmazta meg a legvelősebben a lényeget: ne eszközt válassz, hanem problémát. Tudd, hogy mit akarsz csinálni. Az, hogy hogyan csinálod, már adódni fog.

Fontos, hogy ne úgy tekints a programozásra, mint egy programnyelv használatának betanulása, aztán a tanultak alkalmazása. Sokkal inkább a programozást magát, mint képességet kell megértened, elsajátítanod. Meglátod, utána majdnem mindegy lesz, milyen nyelvet használsz, váltogatni is tudni fogod őket.

Kezdetben inkább az a fontos, hogy egy nyelven megtanulj programozni, szinte mindegy is, hogy melyiken. Ne izgulj a konkrét területek miatt. Amikor szerzel egy alap jártasságot a programozás világában, már jobban el tudod majd dönteni, hogy milyen területen merülj el jobban. Erről részletesebben írtunk a Sosem programoztam, hogy kezdjek hozzá? című blogposztunkban, ajánljuk olvasásra.

Egy másik programozóiskola, a StudiCore alapítója, Pasztuhov Dániel zseniális hasonlatot talált a kezdeti programnyelved kiválasztására: a kérdés arra hasonlít, hogy “milyen autón tanuljak meg vezetni?”. Én személy szerint egy Suzuki Swiften tanultam, de később Toyota Corollám volt. Kicsit más volt vezetni, de a lényeg, hogy nem kellett izgulnom: tudtam, hogy attól, hogy Suzukin tanulok, nem kell életem végéig ehhez a típushoz ragaszkodnom. Mindegy, hogy milyen típusú autója volt épp az oktatómnak, én autót vezetni tanultam meg. Ugyanígy ne Pythont, Javat vagy C#-ot tanulj, hanem tanulj meg programozni. A posztot, amiben ezt részletesebben kifejti, megtalálod itt: MELYIK PROGRAMOZÁSI NYELVET VÁLASSZAM?

Első tanácsunk tehát, hogy ne izgulj, akármivel is kezdesz, az első lépés, hogy megtanulj programozni, utána még mindig tudsz specializálódni. Tudjuk, hogy nehéz döntés, hogy melyik többszázezres tanfolyamra jelentkezz, éppen ezért alkottuk meg a BeCube tanfolyamait, ahol komolyabb elköteleződés nélkül tanulhatod meg a programozás alapjait, miközben olyan alaptémákra koncentrálunk, amik minden területen kelleni fognak.

Na és mivel lehet a legtöbbet keresni?

Erre elsőre meglepően egyértelműnek tűnő válasz van: a Hays fejvadászcég minden évben kiad egy kifejezetten Magyarországra jellemző, aktuális fizetési körképet, ahol területekre lebontva egy minimum, maximum és tipikus bruttó fizetést adnak meg. A blogposzt írásakor legfrissebbet itt tudod letölteni. Ha a link nem lenne aktuális, csak keress rá, hogy “Hays Salary Guide Hungary“. Nem is írjuk itt le a konkrét számokat, inkább nézd meg magad az összeállításukat.

Korábban mi is írtunk erről blogposztot, itt megtalálod, illetve – mivel e érdekli az embereket – sokan szoktak erről cikkezni, itt is van egy példa: Melyik programnyelv mennyit ér? Programozói fizetések Magyarországon

Talán meg fogsz lepődni, de megint azt javaslom, ne ez alapján dönts. Miért? Ennek rengeteg oka van. Például az útmutató nem írja, hogy egy-egy állást mennyire könnyű, vagy nehéz megkapni. Lehet, hogy egy tipikusan magasabb fizetéssel járó területen sokkal nagyobb a verseny, vagy sokkal több tanulást igényel. Vagy lehet, hogy utálnád. Illetve a tipikustól való eltérést okozhatja bármi: lehet, hogy épp egy rosszabb céget fogsz ki, vagy nem sikerül úgy kialkudni a fizetésedet az állásinterjún. Lehet, hogy a Hays kategorizálása durva egyszerűsítéseken alapszik, vagy mire munkába állnál, megfordul a mérleg. Sőt, ha megnézed, nagyon kiugró különbségek nincsenek is például egy szoftverfejlesztő, tesztelő, vagy frontend fejlesztő között.

Az a tapasztalatunk, hogy mindenki abban a legjobb, ami érdekli és szereti csinálni, így érdemes kiválasztani azt, amihez a legtöbb tehetséged van, aminek önszorgalomból is utánanézel, mert abban jó leszel, és valószínűleg több fizetést is tudsz elérni, mint valamiben, amivel mások talán többet keresnek, de te muszájból, középszerűen csinálnád.

Nem betanított munka

Ahogy egyre többen érdeklődtök, egyre több területről, egyre fontosabb leszögezni, hogy a programozás nagyon távol áll a betanított, gépiesen végezhető szakmáktól. Ez magától értetődőnek tűnhet, mégis jó, ha leírjuk.

Biztos vagyok benne, hogy sok munka úgy működik, hogy elmész egy tanfolyamra, szorgalmas vagy, odafigyelsz és tanulsz, elvégzed a tanfolyamot, és kapsz egy képesítést. Ez bizonyítja, hogy a munkakört “képes” vagy betölteni, annak követelményei vannak, és te teljesíted ezeket. A munkára jelentkezhetsz, és képes leszel elvégezni.

A programozás esetében ezt inkább ilyesmi szituációként képzeld el: megírja a sajtó, hogy Spanyolországban hiány van költőkből, és sokat lehet ezzel keresni. A földből nőnek ki tanfolyamok, amik megtanítanak spanyolul, illetve megmutatnak néhány költői eszközt. Azonban hiába van papírod arról, hogy a spanyol nyelvtan szabályait megtanultad (ami ebben az esetben egy programnyelvnek felel meg), még nem biztos, hogy jó költő lettél, és hiába van hiány, ha nem írsz jó verseket, nem fognak alkalmazni.

A programozás kreatív szakma. Mivel mindenki mást ért kreativitás alatt, leírom, számomra ez mit jelent: folyamatosan olyan problémákat kell megoldanod, amiről nem tudod, hogyan kell megoldani. Nem lehet megtanulni előre, nem lehet felkészülni rá. Ez azt jelenti, hogy – habár egy tanfolyamon tudunk, tudnak eszközöket adni a kezedbe – folyamatosan ötletelned kell, fel kell találnod magad, frappáns megoldásokkal kell előrukkolnod, akár kezdő vagy, akár 10 év tapasztalatod van. Nem lehet betanulni a módszereket, technológiákat, amiket utána csak alkalmazol. Sokkal fontosabb, hogy a gondolkodásmódot, a képességeket elsajátítsd, illetve jó esetben ezek már eleve meg is vannak benned.

Ezen kívül természetesen a területtel, vagy ahogy inkább emlegetni szokták, a domain-nel is foglalkozni kell. Én például évekig telekommunikációs rendszereket programoztam. Hiába tudod ilyenkor például a C++ programnyelvet, azt is meg kell tanulnod, hogyan működik egy mobilhálózat, vagyis nem csak a “hogyan“-hoz kell értened, de azt is tudnod kell, hogy “mit” építetek. Ezt nem lehet előre megtanulni, mert lehet, hogy csak nagyon kevés, vagy akár csak egyetlen cég csinálja pontosan azt, amivel foglalkoznod kell. Ezért általában ha új munkahelyre kerülsz, az első hetek, hónapok tanulásról szólnak akkor is, ha már tapasztalt senior vagy.

Ha munkahelyet váltasz, és új területre kerülsz, a tudásod ugyanezen része akár haszontalanná is válhat egyik napról a másikra. Például hiába foglalkoztam éveket mobilhálózatokkal, és gyűjtöttem össze egy csomó tudást, egy munkahelyváltás után ez teljesen felesleges lett, és az építőipari adminisztrációval kellett elkezdenem foglalkozni. Ezért fontos, hogy rugalmas legyél, és meg tudj tanulni új dolgokat.

Fontos, hogy vedd észre: nem véletlen, hogy ilyen sokat keresnek a programozók, és mégis hiány van belőlük. Ez egy nehéz szakma. De nem akarlak eltántorítani: biztos vagyok benne, hogy meg tudod tanulni. A lényeg csak annyi, hogy jó végén fogd meg. A BeCube programozóiskolával, és ezzel az írással is ebben igyekszünk segíteni.

Milyen képességek kellenek, hogy meg tudjak tanulni programozni?

Akkor ez azt jelenti, hogy valaki vagy programozónak születik, vagy nem? Nem, ez egyáltalán nem ezt jelenti! Hisszük, tudjuk, hogy a programozáshoz szükséges képességek fejleszthetők. Ha nem így lenne, nem léteznének programozóiskolák. De mégis mi kell ahhoz, hogy jó programozó legyek?

Régebben a matematikai ismereteket emlegették, de ma már (sokunk megkönnyebbülésére) többnyire egyetértés van abban, hogy nem a matematika a legfontosabb, sőt nem is kiemelkedően fontos.

Több kutatás (itt és itt olvashatsz róluk) is azt találta, hogy a programozásban a logikai és matematikai gondolkodásért felelős agyterületek helyett (vagy mellett) inkább a nyelvi területek játszanak fontos szerepet.

Szóval akkor az lesz jó programozó, aki nyelvzseni? Nem tudom, de valószínűleg jobb esélyekkel indul. Az én tapasztalatom az, hogy a programozásban kulcsfontosságú, hogy egy problémát jól tudj megfogalmazni. Ha helyesen, és precízen, pontosan el tudod mondani, le tudod írni, hogy mit kell csinálni egy adott helyzetben, a programod szinte már meg is van írva, csak le kell gépelned.

Ezt szokták algoritmikus gondolkodásnak is nevezni. Ismét egy másik programozóiskola weblapjára terellek, de jól méri ezt a fajta gondolkodásmódot a StudiCore ingyenes felmérőtesztje.

Nagyon konkrét tanácsot itt most nem tudok adni. Összegezve: nincs konszenzus arról, hogy mitől lesz valaki jó programozó, de ha tudnám sem lehetne rövide összefoglalni, hogy hogyan fejleszd ezeket a képességeidet. Inkább azt szoktam tanácsolni (és ez a BeCube mottója is lehetne): ha el akarsz kezdeni programozni, kezdd el. Ha csinálod, hamar rájössz, hogy milyen jellegű gondolkodásmódot igényel. És mint minden más esetében is, ha sokat, nagyon sokat gyakorlod, fejlődni fogsz benne, akármilyen képesség is kell hozzá.

Nem hagyhatjuk szó nélkül, de ennek már természetesnek kell lennie: nem szabaad zavarba jönnöd az angoltól. A gyakorlatban nem kell nyelvtanilag és kiejtésileg tökéletes business english, elég ha érted az írott és hallott szöveget, és meg tudod értetni magad.

Hogy néz ki egy programozó egy napja?

Valószínűleg nem lepődsz meg, ha azt mondom, ez attól függ. Általában ha megkérdezel egy programozót, hogy hogyan néz ki egy hétköznapja, azt válaszolja, hogy mindegyik máshogy. De természetesen azért vannak jellemző vonások.

5 essential Scrum meetings - Concise Software

Először is nem mindegy, hogy egy cég alkalmazásában álló, klasszikus irodai programozóról van szó, vagy egy szabadószóról.

Egy szabadúszó dolgozhat úgy, hogy állandóan otthon van, és távmunkás projekteket vállal, amit aztán olyan időbeosztással készít el, ahogy szeretne. Nyilván ő úgy osztja be a munkáját, ahogy szeretné, dolgozhat akár hajnalban is, és eljárhat futni délelőtt.

Aztán léteznek kisebb, strukturálatlan cégek, amire szintén az igaz, hogy ahány ház, annyi szokás.

A nagy, vagy legalábbis összeszedett cégeknél általában valamilyen módszertant használnak, ami valami keretet ad a munkamódszereknek. Szinte mindig csapatokban dolgoznak a programozók, amik 3-4 főtől kb. 8-9 főig terjednek. Ezen módszerek közül a legelterjedtebb a Scrum, amiről itt írtunk régebben. Ezt nem fogjuk itt részletezni, de bele tartozik például, hogy naponta, általában reggel az egész csapat összegyűlik 10-15 percre, és elmondják egymásnak, mit csináltak tegnap, és mivel haladnak ma. Nincsenek kiemelt szerepek a csapatban, és mindenki maga választhat a csapat feladatai közül. Sokszor vannak periodikusan ismétlődő, vagy egyénileg felmerülő megbeszélések, ezek között ül a programozó az asztalánál, és dolgozik valamin. Sokan egyedül szeretnek dolgozni, de nem ritka a párban programozás, azaz hogy valaki odaül a másik asztalához, és együtt próbálnak megoldani egy problémát.

Az, hogy éppen min dolgozik egy programozó, attól függ, hogy éppen mi merül fel, de ilyesmik tartoznak bele:

  • Egy új funkció lefejlesztése, vagyis új programrészletek írása
  • Egy ügyfél, vagy egy tesztelő talált egy hibát, amit ki kell javítani, azaz a meglévő programrészletekben gyakran bravúros nyomozással hibakeresés, javítás, tesztelés
  • A nemrég lefejlesztett funkciókhoz automatizált tesztek írása (ami szintén programkód írását jelenti)
  • A megírt kódok rendezése, észszerűsítése
  • Egymás kódjainak átnézése, kommentelése
  • Dokumentáció írása
  • Automatitält tesztek írása
  • Új követelmények értelmezése, jövőben megírandó részek tervezése
  • Néha nem működik valami a programozási környezettel (vagyis azon programokkal, amikre a programozáshoz szükség van), ennek kinyomozása és javítása
  • Diskurzusok, tréningek a csapattagokkal, vagy másokkal a program felépítéséről, programozási gyakorlatokról, technológiákról, stb.

Ezek a dolgok (és persze akármi más) gyakran ad hoc módon, strukturálatlanul váltják egymást, néha egy heted minden napja dokumentációról szól, néha egy új, izgalmas dolgon dolgozol, de hirtelen bejön egy sürgős hibajavítás, néha egy nagy funkció leprogramozásán dolgozol hetekig, hónapokig.

Nincs olyan, hogy “egy programozó egy napja”, gyakran mész úgy dolgozni, hogy nem tudod, miből fog állni a napod, de végül valami mégis kitölti. Minden cég más, minden ember más, így tőled, és a helyzettől is függ, hogyan fog kinézni egy napod, amikor programozó leszel, de egy biztos: nem lesz két ugyanolyan napod.

Mennyi idő megtanulni programozni?

Sajnos erre sincs egyenes válasz. Attól függ. Attól függ, pontosan mit szeretnél megtanulni. Attól függ, melyik ponton mondod azt, hogy “megtanultam programozni”. Attól függ, hetente mennyi időt tudsz tanulni, gyakorolni. Attól függ, mennyire vagy fogékony. (Nekem fontos elvem: ha lassabban haladsz vele, mint mások, a végén attól még lehetsz legalább olyan jó programozó, mint ők!)

Visszatérve a spanyol hasonlatra: mikor tanultál meg spanyolul? Amikor tudsz tejet és kenyeret kérni? Amikor elolvasol egy könyvet és megérted? De melyik könyvet? Amikor el tudsz helyezkedni egy spanyol munkahelyen? De melyiken? Hasonlóan van a programozással is. Még ha az álláskeresés is a cél, mindenhol mások a követelmények.

Tudnék olyan intenzív tanfolyamot összeállítani, aminek a reklámanyagába be merném írni, hogy egy hét alatt megtanítalak programozni. Ezzel biztosan nem kapnál állást, de tudnál programozni. Valamilyen szinten. De tudnék szintén intenzív tananyagot összeállítani, amiban hónapokig, vagy akár egy évig mindig újdonságokat tanulsz. Az is biztos, hogy a haladó tanfolyamunkat valaki még kezdő szintnek venné, valaki pedig a kezdő egyes részeivel még nem találkozott. Erről is írt Pasztuhov Dániel, az ő vélemét itt találod meg. Írt erről a HWSW és a CodeBerry is.

Néhány fogódzkodó:

  • Egyetemen diplomát szerezni 3 év (ha azt mondjuk, hogy az alapképzés elegendő). Ha heti 30 órával számolunk, és félévenként 10 héttel, ez nagyjából összesen 1800 órára jön ki, plusz othoni tanulás. Más kérdés, hogy aki aktív, az diploma előtt kaphat állást, vagy már gimnáziumban megtanul programozni. Én személy szerint végeztem egyetemet, de nem mint programozó, hanem mint fizikus. Vajon mennyit töltöttem programozás tanulással? Nem tudom, de megszakításokkal már kisiskolás korom óta foglalkoztam vele ébe-hóba. Az egyetemhez képest a programozóiskolák intenzívebbek, és egy-egy konkrétabb területre koncentrálnak, így rövidebb idő alatt elvégezhetők.
  • A blogposzt írásának pillanatában a Green Fox Academynél egy állásra felkészítő intenzív kurzus 18 hét plusz szünet, tehát kb. 5 hónap. Ez heti 50-60 óra elfoglaltság (tehát több, mint egy teljes állás, ami 40 óra). Ez 900-1000 óra elfoglaltságot jelent. Ha nem tudod a tanfolyamot munka helyett csinálni, a munka mellett végehető tanfolyamuk kb. 11 hónap.
  • A Codecoolnál jelenleg 32 hétvégén keresztül tartó (összesen 12 hónapos) képzések vannak, óraszámra összeadva ez 576-ra jön ki. Az otthoni tanulással együtt ez 800-900 órányi tanulásra jön ki.
  • Mi a BeCube-nál 15 órás tanfolyamokat indítunk. Ebből is láthatod, hogy nálunk nem az állás megszerzése a végcél: mi a legelső lépés specialistái vagyunk. A kezdő és a haladó tanfolyamok együtt, otthoni tanulással kb. 50-60 órát tesznek ki. Összehasonlításképpen: mindkét tanfolyam egy-egy egy féléves tantárgy lehetne az egyetemen. Mindkét tanfolyamunk nagyjából 3 hónapot ölel fel.
  • Ha a témának utánanézel az interneten, újra Pasztuhov Dánielbe fogsz futni, az ő gondolatait itt ovlashatod.

Tartsd észben, hogy minden szakterület mást igényel. Egész mást csinál egy frontend fejlesztő és egy adatbázisszakértő. Sőt, mások a munkáltatók igényei. Sokan meglepődnek, hogy hiába szajkózza mindenki, hogy hiány van programozókból, a munkakör olyan kreatív képességeket igényel, hogy a munkáltatók így sem tehetik meg, hogy mindenkit felvegyenek, hiába bizonyította, hogy megtanulta ennek-annak a használatát. Több éves tapasztalattal sem magától értetődő munkált találni.

Ha belegondolsz, az, hogy sok állásra mondjuk 5 év tapasztalattal rendelkező programozókat keresnek, azt jelenti, hogy szerintük ennyi év megtanulni azon a szinten programozni, amire nekik szükségük van. De tanulmányaid alatt például már találhatsz maszek megrendelőket, akiknek jóval kisebb tapasztalattal is összerakhatsz valamilyen programot.

Szóval tanuljam, ami érdekel. De honnan tudjam, mi az?

Gyorsan megemlítenénk a tanulás T modelljét, aztán tovább is evezünk a konkrét szakmák leírására.

A munkahelyeimen mindig azt tanácsolták, hogy a képzettségeimet a “T modell” szerint fejlesszem. Képzeletben sorakoztass fel egymás mellé különféle területeket (mint például programnyelvek, különböző rendszerek, szoftverek használata, kommunikációs készség, stb.), és mindegyik alá húzz lefelé egy függőleges vonalat aszerint, hogy milyen mélyen értesz hozzá. Amihez jobban értesz, lejjebb “lóg”, mint amihez csak felületesen.

A T modell azt tanácsolja, hogy ennek az ábrának egy T betű alakot kell követnie. Azaz legyen sokminden, amihez értesz egy picit, és egy valami, aminek te vagy a mestere. Ebben az (is) a jó, hogy nem kell félned sokmindent kipróbálni, mielőtt rájönnél, mi a neked való. Hagyhatod, hogy automatikusan abban a témában kezdj elmerülni, ami jobban fekszik neked. Az pedig, hogy pontosan milyen témánál van a T szára, megkülönböztethet a többi programozótól.

Szóval akkor milyen munkakörök vannak?

Kezdeném is a mellébeszélésnek tűnő, de valójában nagyon őszinte hebegéssel-habogással. Habár vannak szokványos feladatkörök, minden munkáltató maga dönti el, hogy hogyan nevez el egy pozíciót, és hogy utána mit fog kérni. A legegyszerűbb, ha úgy tekintesz a dologra, hogy minden állás egyedi.

Csak a saját példámat elmesélve: első munkahelyemen “R&D System Verification Engineer”, azaz “Kutatás+fejlesztés rendszertesztelő mérnök” volt a titulusom. A másik munkahelyemen egy konzultációs cégen keresztül dolgoztam, mint C++ fejlesztő, és attól függően, hogy hol nézted meg a titulusomat, lehettem fejlesztő, konzulens, vagy C++ fejlesztő. De mivel mobilhálózatokat fejlesztettünk, hívhatták volna telekommunikációs mérnöknek, vagy rendszerfejlesztőnek is. Ugyanezen a helyen a csapatunkban volt konzulens, fejlesztő, rendszerfejlesztő és tesztelő is. Talán mondanom sem kell, hogy mindannyian pontosan ugyanazt csináltuk. Csakúgy, mint rendszertesztelő mérnök koromban. Ez pedig programozás, és tesztelés valamilyen egyvelege. Legfrissabb munkahelyemen rendszerfejlesztőként alkalmaznak, de ugyanezt a munkakört akár jogosan hívhatnák backend fejlesztőnek is.

Azért kicsit körbejárjuk a különböző területeket.

Webfejlesztés

A webfejlesztés még mindig egy nagyobb terület, amin belül különböző feladatkörök vannak. De ez egy jól körülhatárolható terület.

Régebben a webfejlesztők weblapokat készítettek. Ezek gyakorlatilag statikus, összetettebb dokumentumoknak számítottak, például egy bolt nyitvatartása, kínálata, címe, telefonszáma, pár képpel szinesítve. Ezzel szemben a programokat a számítógépre kellett telepíteni. Ezek voltak, amik csináltak valamit. Viszont a lehetőségek bővülésével a weblapok egyre interaktívabbá váltak, és ma már a weblap és a szoftver fogalma összemosódik. Nincs éles határ a honlap és a weben keresztül használható programok között. Gondolj csak arra, hogy a Gmail technikailag egy weblap, de ugyanazt csinálja, mint egy letölthető levelezőrendszer (pl. Outlook), de a teljes Microsoft Office szoftvercsomag elérhető böngészőből futó, online verzióként. Sok más programnak is lehet választani a letölthető, telepíthető, valamint webes változatából, de egy csomónak kifejezetten csak webes variánsa létezik.

Bárki, aki ilyen weblapok, és/vagy webalapú szoftverek készítésében szerepet kap, webfejlesztéssel foglalkozik. Ebben több szerepkör is van, de ezek összefolyhatnak. Egy nagy cégnél például biztosan külön személyek töltik be a nemsokára felsorolt munkaköröket, de kisebb vállalkozásoknál egy-egy ember ezek közül többet is vállalhat, vagy az is lehet, hogy egy kisvállalkozásnál, alapítványnál egy ember felel a teljes honlapért.

A webfejlesztés olyan terület, amire szinte minden vállalkozásnak, és sok magánembernek is szüksége van, tehát nagyon nagy rá a kereslet, szemben mondjuk a C++ programozással (amire szintén nagy kereslet van, de bőven nem minden kis- közép- és nagyvállalatnak). És bár ezt nem tudom számokkal alátámasztani, benyomásom szerint éppen emiatt a webfejlesztők vannak a legtöbben is.

Továbbá olyasmit csinálnak, amit mindannyian ismerünk, használunk és látunk, munkájuk nem olyan absztrakt, mint amikor én például mobil bázisállomások részmoduljainak egyes funkciójinak fejlesztésében vettem részt.

Még egy jellegzetessége a webfejlesztésnek, hogy (főleg a frontend fejlesztők, mindjárt meglátod) sok technológiát használnak. Míg egy C++ programozó a C++-hoz ért, de nagyon, egy frontend fejlesztő egy csomó technológiához ért, nyilván arányosan elményedve. Ha egy C++ fejlesztő a programozóvilág hosszútávfutója, a webfejlesztők a triatlonisták, öttusázók, tízpróbások.

Azt, hogy mi érdekel, mindenképpen neked kell eldöntened, de ha tanácstalan vagy, a webfejlesztés sokaknak jól működött, mint belépő a programozás világába. A következő néhány alfejezet a webfejlesztésen belüli munkákat taglalja, utána más munkákat is leírunk.

Frontend fejlesztő

Amikor megnézel egy weblapot, a te számítógéped (a kliens) kommunikál a weblap tulajdonosának számítógépével (szerver). A szoftvernek azt a részét, ami a kliens oldalon történik, és általában a kinézetért, és a felhasználói felületért felel (pl. gombok, űrlapok, menük, illetve képek, szövegek, videók) a frontend fejlesztő készíti. Általában webes környezetben szokták emlegetni, de simán a számítógépeden használt programok felületének összerakását is lehet frontend fejlesztésnek nevezni.

Igényel némi szépérzéket, de ne hidd, hogy csak a kinézet összerajzolása a feladata, sőt általában azt egy designer már megcsinálta. Komoly programozói munkát igényel. Mindenképpen értenie kell a HTML-hez, CSS-hez (ezek nem programnyelvek) és a JavaScripthez (ez programnyelv). Ezen kívül van egy csomó technológia, ami ezekre épül, de ezek közül nem kell mindegyikhez érteni. Különböző cégek létrehoztak úgynevezett keretrendszereket, amik megkönnyítik a munkát, ezek például a React, Vue, Angular. Sok helyen várják el például a React tudást egy frontent álláshoz, de nem mindenhol. Illetve ha valaki eléggé specializálódik egy-egy területre, lehet, hogy már arról nevezik el a munkakörét, például így lehetsz “Angular fejlesztő”. Ezeket sem kell azonban előre eldönteni, ha elindulsz egy úton, mint “frontend fejlesztő”, később már jobban fogod érteni ezeket az utakat, vagy az is lehet, hogy már az adott munkahelyen tanítják meg neked, amit használni fogsz.

Stand Out Above the Competition with Conventional Web Design ...

Ha fontos neked, hogy a munkádnak kézzel fogható, szemmel látható ereménye legyen, ha rá akarsz tudni mutatni egy színes gombra, hogy ez a kódrészlet ezt a részt eredményezi a képernyőn, a frontend fejlesztés neked való.

A frontend fejlesztőkről külön blogposztot is írtunk régebben.

Backend fejlesztő

Szintén weblapok, vagy webes szoftverek (azaz webapplikációk) fejlesztésében vesz részt, de a felhasználó számára láthatatlan, szerver oldali részt készíti, ha úgy tetszik, “ami a motorháztető alatt van”. Absztraktabb munka, mint a frontend fejlesztés. Azoknak való, akiket a kinézet hidegen hagy, és inkább a működés érdekel.

Gyakran használnak PHP programnyelvet, de igazából szinte bármilyen nyelven előfordul backend programozás. Általában adatbázisokkal is dolgozni kell. Hasonlóan a frontend területhez, itt is előfordulnak keretrendszerek, például ha PHP-ban kell dolgoznod, jó eséllyel találkozni fogsz a Laravel rendszerrel, vagy ha Pythont használ a céged, akkor például a Django-val. Az adatbázisok miatt pedig nem árt, ha konyítasz az SQL lekérdezőnyelvhez, illetve magukhoz a relációs adatbázisokhoz. Ezek részletes ismertetése természetesen nem fér be a poszt keretei közé, korábban itt írtunk a backend fejlesztőkről, a már jól ismert Pasztuhov Dániel pedig itt foglalta össze a frontend és backend közti különbséget.

Fullstack fejlesztő

A fullstack fejlesztő összefoglalja a frontend és backend munkaköröket is, itt írtunk róla, illetve Dániel előbb linkelt cikkjében is emlegeti őket, így itt nem is részleteznénk.

Meglepőnek tűnhet a bonyolultabb területtel indítani, de ha nem tudod eldönteni, hogy a frontend, vagy a backend érdekel jobban, kezdhetsz egy fullstack tanfolyamot, és amikor nagyobb rálátásod van, eldöntheted, merre specializálódj tovább.

UI/UX designer

A UI és UX designer (ami lehet egy feladatkör, vagy két külön szakma) nem is programozói terület, de a gyakorlatban gyakran átfednek.

A UI a User Iterface-t, azaz felhasználói felületet jelenti. A UI designer tehát, aki megtervezi, hogy milyenek legyenek a weblap színei, betűtípusai, elrendezése, mekkora, milyen alakú legyen egy gomb, tehát ez inkább művészi, szépérzéki munka, ami természetesen technikai tudással párosul. A UI designer nem készíti a weblapot, ő tervezőprogramokat használ, mint Adobe Photoshop, vagy Adobe Illustrator, és a munkája eredménye egy látványterv, amit aztán megkap a frontend fejlesztő, akinek a feladata, hogy leprogramozza azt. A kisebb helyeken a munkája gyakran összeolvad a frontend fejlesztővel.

A UX User Experience-t jelent, azaz felhasználói élményt. A UX designer tervezi meg a weblap (vagy egyéb szoftver) felépítését, menürendszerét, kattintási folyamatokat. Gyakran keverik, vagy összemossák a UI-t és a UX-et, de könnyű megérteni a különbséget. Ha egy weblapon jó a UI designer és rossz a UX designer, akkor a weblap gyönyörűen néz ki, de használhatatlan. De ha logikus használatú, intuitív, de ízléstelen, vagy az őskorból jött a kinézete, akkor jó a UX designer, de rossz a UI designer.

Egyéb webes munkák

A weblapkészítésnek rengeteg módja van. Biztosan van olyan ismerősöd, aki a koronavírus alatt a legnagyobb meglepetésedre azzal kezdte hirdetni magát, hogy weblapokat készít néhány tízezer, vagy egy-két százezer forintért. Ő valószínűleg megtanulta használni az egyik könnyen kezelhető weblapépítő szolgáltatást. Fontos kiemelni, hogy ezek az emberek nem szoftverfejlesztők (tehát nem új szoftvereket készítenek), inkább egy kész szoftver használatát tanulták meg. A programozók körében gyakran lenézés övezi őket, azonban teljesen megvan a létjogosultságuk: bizonyos esetekben tényleg felesleges nulláról felépíteni egy új honlapot, és túl sok pénzt elkölteni.

A webfejlesztés világában léteznek még úgynevezett CMS-ek, azaz tartalomkezelő rendszerek. A legismertebb ilyen a WordPress, utána jön a Joomla. Ezek lényegében kész szoftverek, amik megkönnyítik a weblapok készítését, és a legkülönfélébb módokon lehet használni őket.

A WordPress például blogmotorként indult: blogposztokat tudsz anélkül létrehozni, hogy minden új posztot neked kelljen lekódolni. De mára webshopokat, illetve rengeteg másféle dolgot is lehet benne készíteni. Vannak olyan bővítményei, amivel pár kattintással össze tudsz rakni egy honlapot, de az is lehet, hogy te magad írsz meg egy teljesen új bővítményt. Ehhez nem csak az adatbázisokhoz és a PHP programozáshoz kell érteni, de magához a WordPresshez is értened kell, ami önmagában egy önálló terület. Például webshopokkal rendelkező vállalkozásoknak lehetnek önálló igényeik. Nagy valószínűséggel a webshopjuk WordPressben épül, de valakinek le kell kódolnia a saját, egyedi folyamataikat is, ez esetben a WordPress keretein belül. Így lehet a titulusod például “WordPress fejlesztő” is.

Adatbázis szakértő

Róluk itt írtunk bővebben, nem is részleteznénk tovább.

Mobilalkalmazás fejlesztő

Itt hagyjuk el a webfejlesztés vizeit. Habár van átfedés, a mobil alkalmazások fejlesztése külön világ. Ahogy a webfejlesztésen belül is, itt is vannak alkategóriák, főleg aszerint, hogy iOS-re (iPhone, iPad) vagy Androidra (ami szintén lehet telefon vagy tablet) fejlesztesz alkalmazásokat. Előbbiek a Swift nyelvet használják, utóbbiak sokminden közül választhatnak, például Java, Kotlin, C++, C# (ejtsd: “szísárp”).

A frontendhez hasonlóan a mobilapp fejlesztésnek is látványos eredménye van. Sőt, sokszor egy mobil applikáció valójában csak egy felhasználói felület egy webapplikációhoz, például amikor egy chatprogramnak van számítógépes, neten elérhető verziója, és mobilapplikációja. Valójában a kettő ugyanazt a rendszert használja a háttérben, csak két külön felhasználói felülettel. (Mint például a facebook.) De vannak önálló, teljes értékű mobilos programok is, pédául sok mobilos játék.

Adatbányász / gépi tanulás szakértő

Az utóbbi években nagyon menő lett gépi tanulással (machine learning), adatbányászattal (data mining), neurális hálózatokkal foglalkozni. És valóban, ezek tényleg nagyon menő dolgok. Én, Ádám eredetileg fizikusként végeztem, nem programozóként, és foglalkoztam is ilyesmivel az egyetemen. Az én személyes tapasztalatom, véleményem inkább az, hogy ezek a szakmák, habár sokat programoznak, a programnyelveket még a többi szakmához képest is sokkal inkább csak eszközként használják, és elsősorban inkább a statisztikához, egyetemi szintű matematikához kell érteni.

Habár egyre jobb programkönyvtárak léteznek, amivel iszonyú bonyolult számításokat lehet pár sorban elvégezni, tudnod kell, hogy mikor melyiket és miért használd. Szóval az adatbányász inkább egy számítógépet használó fizikus, matematikus, statisztikus. Csak bátorítani tudlak, hogy ezeket kitanuld, de ha egy gyorstalpalót szeretnél elvégezni, hogy beugorj az informatika világába egy jobban fizető állás reményében, szerintem nem ezzel érdemes kezdened.

Beágyazott fejlesztő

A beágyazott fejlesztő az, aki beágyazott szoftvereket fejleszt. Beágyazott szoftvernek pedig azt hívják, ami olyan gépen fut, amit nem szokás hagyományos értelemben számítógépnek tekinteni. A legtipikusabb példa a beágyazott szoftverre a mosógép programja, vagy a TV-d menüje. (Bár egy okostévé és egy számítógép között egyre kisebb a különbség.) De bármi lehet beágyazott szoftver egy kenyérpirító vezérlésétől egy önműködő katonai repülőgép szoftveréig. Sok beágyazott fejlesztőt használ az autóipar is.

Ebből talán láthatod, hogy a beágyazott fejlesztő sem olyan szakma, amit megtanulsz, és utána jelentkezhetsz bármilyen “beágyazott fejlesztő” állásra. A programnyelvek, a terület (domain) és a fejlesztett termékek nagyon sokban különböznek.

Míg a legtöbb programozónak nem nagyon kell foglalkoznia azzal, hogy a programja pontosan milyen gépen fog futni, a beágyazott fejlesztő nem hagyhatja ezt figyelmen kívül. Közös azonban ezek között, hogy a beágyazott fejlesztés közel áll a hardverhez. Ha szereted a “vasat”, ha a forrasztópáka szaga mellett nőttél fel, a beágyazott fejlesztés is tetszhet neked.

Szoftvertesztelés

A szoftvertesztelés is egy terület inkább, mint egy szakma. A tesztelők munkája állhat mások által definiált teszt esetek gépies végrehajtásából (ez a manuális tesztelő), de lehet automatikus tesztek írása is a feladatod, ami technikailag szintén programozás, tehát ehhez is komoly programozói tudás kell. Akik ezt csinálják, szokták tesztautomatizáló mérnöknek nevezni, de gyakran csak a tesztelő szót használják mindegyikre.

Vannak olyan tesztek, amik ugyanazon nyelven vannak megírva, mint a tesztelt program, de olyan is van, hogy egy teljesen különálló szoftverrel végeznek teszteket. Utóbbi esetben a tesztelő és a programozó munkája szétválik (bár külső szemlélő számára mindkettő egy programozó, csak máson dolgoznak), de egyébként a leggyakoribb, hogy maguk a fejlesztők is írnak automatizált teszteket, sőt nem ritka, hogy nincsenek is külön tesztelők.

Ott vannak azok is, akik nem magukkal a tesztek megírásával foglalkoznak, hanem azzal a rendszerrel, ami automatikusan lefuttatja és kiértékeli a teszteket (ezt CI-nak hívják, ami a Continuous Integration rövidítése). Ezt általában a már tapasztalatbb programozók csinálják.

Olyanok is vannak, akik a tesztelés kevésbé technikai részével foglalkoznak, nagyobb rendszereknél ugyanis előfordul, hogy valaki külön a teszt esetek megfogalmazásával és szervezésével, valamint a jelentésekkel foglalkozik, ez a munkakör inkáb közel áll egy managerhez. Valószínűleg nem ezzel fogsz kezdeni, ha most ismerkedsz a programozással.

Egy szoftvertesztelő beszámolóját a saját munkájáról itt olvashatod: Mit csinál egy szoftvertesztelő?

Itt is igaz, hogy ahány cég, annyi szokás, illetve hogy minél nagyobb egy cég, annál jobban szétválnak a szerepkörök. Kisebb csapatokban a tesztek írásával, futtatásával, tervezésével és kiértékelésével maguk a programozók foglalkoznak, nagyob cégeknek külön teszt részlege is lehet.

Viszont minden programozónak értenie kell a teszteléshez valamennyire. Léteznek vizsgák is szoftvertesztelésből, ha nem is karriered elején, de mindenképpen ajánlom az ISTQB vizsgáit, én magam sokat tanultam belőle, ami nagyban kiegészítette a programozói tudásomat.

Habár van olyan leírás, ami szoftvertesztelőnek a gépies, manuális tesztelőt nevezi, és az automatizált tesztek szakértőit tesztautomatizációs mérnöknek, az én tapasztalatom, hogy a gyakorlatban mindegyiküket “tesztelő”-nek hívják., illetve hogy a prgoramozó és a tesztelő között nagy az átjárás, ahogy már említettem, dolgoztam olyan csapatban, ahol volt programozó és tesztelő is, és pontosan ugyanazt csináltuk, illetve a saját titulusom is változott programozó és rendszertesztelő mérnök között, pedig mindkét munkakör programozás és tesztelés egyfajta egyvelege volt.

Rendszerfejlesztő / programozó / fejlesztő / szoftvermérnök

Azért gyűjtöttem egybe ezeket az elnevezéseket, mert nincs egy enciklopédia, ami definiálná, hogy melyik mit csinál. (Ez lehet, hogy nem igaz, de a tanulságon ez nem változtat.) Lehet, hogy amit az egyik cég “Rendszerfejlesztő”-ként hirdet meg, a másik “Java fejlesztő”-nek hívná, a harmadik pedig “Backend-fejlesztő”-nek.

Habár azt mondtam korábban, hogy nincs olyan, hogy simán “programozó”, vannak olyan állások, amit nem lehet sokkal jobban bekategorizálni. Én például korábban mobiltelefonos bázisállomások szoftvereit fejlesztettem (azaz a házak tetején, meg tornyokon látható antennák alatti dobozban zúgó, telefonhívásokat és mobil internetet kiszolgáló programokat). Ezt C++ nyelven tettük. A szerződésemben “Fejlesztő” szerepelt, de egy munkatársam már “Rendszerfejlesztő” volt.

Biztosan találsz leírásokat, amik definiálják, hogy mitől mérnök egy olyan munkakör, aminek mérnök van a nevében, illetve miért van valakinek a szakmájában a “rendszer” szó, és miért nincs másnak, de az én tapasztalatom, hogy ezek lazán kezelt definíciók, és minden cég máshogy használja őket. Úgy tűnhet, hogy ebben a világban nehéz eligazodni, de ez inkább jó hír: ha “Rendszertesztelő mérnök” vagy, simán jelentkezhetsz egy “Backend-fejlesztő” állásra, és ha “Java fejlesztő” vagy, felvesznek egy “Szoftverfejlesztő” állásra is. De gondolj csak a számítógépes játékok, vagy az általad használt, számítógépedre telepített bármelyik programra. A lényeg, hogy jó programozó legyél, és akkor az ilyen, nehezen bekategorizálható állások között bizony nagy átjárás van.

(Ez persze nem feltétlen igaz a korábban felsorolt, jobban technolgiára épülő munkákra, ha például a React nevű frontend technológia a specialitásod, nem biztos, hogy könnyen ugrasz egy tesztautomatizációs mérnök pozícióba, bár ha elég rugalmas vagy, nem lehetetlen szerintem.)

Inkább tekintsd úgy, hogy nem kategóriák vannak, hanem minden cégnek, minden állásnak egyedi igényei, egyedi kihívásai léteznek. A lényeg, hogy jól le legyen kommunikálva, hogy egy állásban pontosan milyen kihívásoknak kell megfelelni, és mivel van lehetőséged dolgozni.

Az sem ritka, hogy hiába vesznek fel valamilyen titulussal, a cégen belül lehetőséged van a feladatok közül válogatni, később specializálódni, vagy akár részleget, csapatot váltani. Sokszor ezért sem pontosítják túl az állások megnevezését.

Ha valamit tanácsolhatunk, akkor az (megint) az, hogy ne izgulj előre, nem kell egy pontos munkakört választani, mert nagyon nagy átfedések vannak, nagy az átjárás, és ha rugalmas vagy, akkor úgy tudsz magadra tekinteni, mint egy jó programozó, aki sokféle kihívást el tud vállalni.

Más cikkek a témában

Összefoglaló tanácsok

  • Ha érted, hogy milyen szakmák vannak, és tudod, neked mi fekszik, nyugodtan íratkozz be egy arra szakosodott tanfolyamra.
  • Ha nem tudod, akkor ne hamarkodd el a döntést. Olvass utána az interneten, kérdezd meg a prorgmozó ismerőseidet (ha vannak), vagy ami a legjobb: hívd fel a tanfolyamot kínáló iskolákat, és kérd meg őket, hogy magyarázzák el, melyik tanfolyamuk mire készít fel.
  • Ne programnyelvet válassz, az csak eszköz, amit le lehet cserélni. Inkább a képességeidet fejleszd egy olyan nyelvvel, amin jól tudsz tanulni. Erről mindenkinek más a véleménye, de mi a Pythonban hiszünk.
  • Ne a képzés hossza, vagy a neten található fizetési információk alapján válassz. Úgyis azzal tudsz majd a legtöbbet keresni, amiben te vagy jó.
  • Ne izguld túl, a programozói szakmákból nagyon sok különböző van, de van átjárás, és nem egy életre előre kell döntést hoznod.
  • Valamilyen webfejlesztéssel kapcsolatos szakma jó döntés lehet, mert nagyon sokaknak van rá szüksége, sokan is csinálják, széles eszköztára van, ami gyorsan fejlődik (persze ez hátrány is lehet).
  • Ha szeretsz kézzel fogható, látványos dolgokat csinálni, a frontend fejlesztés tetszhet neked. Ha a motorháztető alatti működés jobban érdekel, de szeretnél sok technológiát használni, és a web közelében maradni, légy backend-fejlesztő. Ha szeretsz fizikai eszközökkel dolgozni, vagy ahhoz közeli progrmozással, jó döntés lehet a beágyazott fejlesztés. Ha maga a programozás logikája, gyakorlatai, vagy egy konkrét programnyelv tetszett meg nagyon, tanuld azt ki, és jelentkezz szoftverfejlesztői, rendszerfejlesztői, Java/C++/C#/stb. fejlesztői állásokra. Ha az érdekel, tanulj játékfejlesztést. Járj utána, milyen lehetőségeid vannak, de tarts észben, hogy később is elkanyarodhatsz. A lényeg inkább, hogy indulj el egy úton.
  • A munkáltatók szeretik, ha látszik: nem csak egy munkának tartod a programozást. Ezt legjobban otthoni projektekkel tudod bizonyítani. A legjobb, ha tanulás közben felteszed a netre (általában a GitHubra), amit írsz. Ötletelj saját projekteken is. Ahogy fejlődsz, úgy válogathatod ki a legjobban sikerült projektjeidet, mintegy erőfitogtató portfolióként.
  • A programozásra ne tekints betanított munkaként. A programozói munka lényege nem egy nyelv ismerete, amit aztán alkalmazol. A programnyelv, és minden más technológia csak eszköz, szinte másodlagos, ami meg is változhat egyik hónapról a másikra. A munkádban az ötleteidet, kreativitásodat, gondolkodásodat fizetik meg, ezért keresett, jól fizetett szakma a programozás. Ezért sajnos az, hogy elvégeztél egy tanfolyamot, nem jelenti, hogy kapkodni fognak érted, gyakran több év tapasztalattal sem egyértelmű, hogy egy céghez felvesznek. De ne aggódj, ezek a képességek fejleszthetők egy tanfolyamon és otthon.
  • Jelentkezz a BeCube programozóiskola tanfolyamaira, ahol a nulláról, kényelmes tempóban, elköteleződés nélkül vezetünk be az alapokba anélkül, hogy még azon kelljen izgulnod, merre indulj később tovább.