Manapság a csapból is az folyik, hogy kevés a programozó, hogy a programozók rengeteget keresnek, mégis alig találni embert. Valószínűleg a te fejedben is megfordult már, hogy programozást kéne tanulnod. Vagy azért, mert kecsegtető mindez, vagy mert unod a munkádat, keveset keresel, vagy éppen a kollégáidtól van tele a hócipőd.

A terület, amelyre be kívánsz lépni egy teljesen új világ, és mint ilyen, megvannak a maga játékszabályai. Tizenévnyi programozásoktatási tapasztalatomból álljon itt egy csokorra való azokból a leggyakrabban elkövetett baklövésekből, amelyek jobb esetben idő- és pénzveszteséggel, rosszabb esetben a programozástanulási vállalkozás kudarcával járnak.

  1. El sem kezdi. Érthető módon programozásoktatóként velük áttételesen találkozom csak, olyan ismerősök formájában, akik gondolkoznak rajta, kacérkodnak vele, aztán elnapolják évekre, évtizedekre vagy életük végéig. Ez nem csak a programozástanulásban van így – az ember alapvető tulajdonsága a halogatás. Ami nem közvetlen életveszély, de hosszú távon hasznos lenne, azt hajlamosak vagyunk a végtelenségig hanyagolni: leszokni a dohányzásról, lefogyni, elkezdeni sportolni, egészségesen étkezni, elkezdeni a nyugdíjcélú megtakarítást,… és tanulni, új karriert megalapozni.
    Tovább

Sokan közületek bizonyára már megnéztek egy-két programozó álláshirdetést, és azon kívül, hogy találkoztak néhány programozási nyelvvel, bizonyára láttátok a frontend fejlesztő, backend fejlesztő kifejezéseket is.

Mik is ezek?

Ezeket a szavakat általában a webes fejlesztés témakörén belül szokták használni.
Ha lefordítjuk a szavakat, akkor a frontend valaminek az elejét (első vége), a backend pedig a végét (hátsó vége) jelenti. Mégis honnan nézve? Nos, a felhasználótól. A felhasználóhoz közelebb eső vége a programnak a frontend, a felhasználótól távol eső vége a backend. Funkcióját tekintve a frontend az, ami megjeleníti az információkat a felhasználónak, a backend pedig az, ami előállítja. A frontendet látjuk, a backendet nem látjuk, csak tapasztaljuk.

Miért kell a kettőt különválasztani?

Egyrészt programozási alapelv, hogy ha szétbontunk egy nagy problémát kettőbe, akkor két, összességében kisebb problémát kapunk. Persze nem muszáj így tennünk, de a legtöbb esetben a felbontással jobban járunk. Egy ilyen természetes felbontás a frontend-backend szétválasztás.

Másrészt ha nagy programot fejlesztünk, akkor minden részt több ember fog csinálni, jobb, ha mindenki specializálódni tud egy-egy témára. Az egyik típusú programozó (frontend fejlesztő) a kinézet megírásáért lesz felelős, a másik típusú pedig az adatok feldolgozásáért.

Harmadrészt részben más-más eszközök is szerepelnek egyik, illetve másik programozó eszköztárában. A dolog pikantériája, hogy abból, hogy milyen nyelvet használ egy fejlesztő, még nem lehet megmondani, hogy ő frontend vagy backend fejlesztő. Lehet Javát is, Javascriptet is, PHP-t is használni mindkettőre, mindhárom esetében számos olyan eszköz (ún. keretrendszer) létezik, amelyik segíti egyik vagy másik esetleg mindkét oldal fejlesztését. (Javascript: Angular, jQuery, NodeJS…; Java: Spring, Struts, Vaadin, JSF, bizonyos értelemben Android…; PHP: Laravel, Symfony, CodeIgniter,…)
Hogy egy cégnél melyiket használják, az viszont teljesen egyedi. Ami viszont jó hír, hogy gondolkodásmódját tekintve a keretrendszerek nem állnak messze egymástól, így ha egyet megtanultál, akkor a másik már gyorsabban fog menni.

És még van egy csavar a történetben: létezik olyan szakember, aki mindkét irányhoz ért. Őt hívják full-stack developernek. Hogy jön ide a stack, azaz a kupac? Az informatikusok vonzódnak a “réteg” fogalmához, amit kb. a blogcikk képének használt manókkal tudnék leírni, ugyanígy rakják a rétegeket egymásra az informatikusok (pl. a backend és a frontend is ilyen rétegek), aztán azt mondják, hogy minden réteg önmagával illetve az alatta és fölötte lévővel áll kapcsolatban, sőt, néha egyirányú módon: pl. a frontend használhatja a backend funkcióit, de fordítva nem. (a fentebbi manó áll a lentebbi fején, de fordítva nem igaz).
Ha valaki a backend rétegét is tudja fejleszteni és a frontend rétegét is, akkor a teljes kupachoz ért, így lesz belőle full-stack (egész kupac) fejlesztő.
Sok cégnél a frontendes-backendes nincs is elkülönítve, úgyhogy oda inkább univerzális embereket keresnek.

Merre indulj el?

Alapvetően nekünk az a célunk, hogy olyan programozókat adjunk a világnak, akik elboldogulnak frontend és backend környezetben is, tehát bárhová alkalmasak (így lesz ugyanis legnagyobb az elhelyezkedési esélyed). Az biztos, hogy mindenképpen meg kell tanulnod programozni. Erre nagyon jó a Java, ami kellően univerzális, és a szükséges mértékig rigorózus nyelv. Meg kell tanulnod a projekteket összefogó, kezelő, fordító valamilyen eszközt (Java esetében a Maven ilyen), meg kell tanulnod a projektjeidet egy “verziókezelő”, csoportmunkát is biztosító rendszerben tárolni (Git, SVN,…). A backendeseknek kell tudni a Spring és a JPA/Hibernate használatát, a frontendesnek a HTML, CSS, Javascript és valamilyen Javascript keretrendszer (pl. Angular, ReactJS) rejtelmeivel kell tisztába jönnie (és egy kis Spring neki sem árt).

A frontendes a látványosabb, míg a backendes a komolyabb kihívással rendelkező (számolósabb, gondolkodósabb), de egyáltalán nem látványos részeket fejleszti.

Valójában ezen még ráérsz később is gondolkozni, kezdd el a tanulást, erről a témáról az oktatóddal is tudsz majd beszélgetni.

Első lépés a Programozási alkalmassági tesztünk kitöltése, majd elég jó eredmény (min. 55%) esetén a képzés ingyenes részeinek elkezdése.