Programozási környezetek a tanárok analógiájával

Felmerülhet a kérdés, hogy mi az a rengeteg betűszó az álláshirdetésekben, és mit kell tudni, és mit nem ahhoz, hogy el tudj helyezkedni?

Vegyünk egy analógiát, egy iskolát, és a benne dolgozó tanárokat. Iskolát biztosan láttál már. 🙂

Vannak olyan dolgok, amiket minden tanárnak, bármilyen szakos is legyen, tudnia kell, különben nem nagyon tud tanítani: beszélni valamilyen nyelven (magyar, angol, német, francia…), írni-olvasni is tudni kell, az e-naplót tudnia kell kezelni, és értenie kell a pedagógiához.

Az ezeknek megfelelő tudások egy programozó életében: az alapvető informatikai ismeretek, pl. az operációs rendszeré (tud beszélni), kell értenie a verziókezeléshez (git, SVN) (írni-olvasni kell tudni), az adatbáziskezeléshez (SQL esetleg NoSQL) (e-napló használata) és kell tudnia programozni (pedagógia). Ezen belül a pedagógiának vannak különböző ágai, ahogy a programozásnak is, bár ma viszonylag egységes az, amit tudni kell, van egy uralkodó irányzat (objektum-orientált programozás vs. frontális, non-kooperatív oktatás).
Ami még programozásban alaptudásnak számít, az pl. a HTML, CSS, esetleg XML tudása.

Ezen kívül kell tudnia valamilyen tárgyat tanítani. Vannak egy-, két-, ritkábban háromszakos tanárok, bizonyos irányok közelebb állnak egymáshoz (matek-fizika), mások messzebb (magyar-matek). Ennek megfelelően a programozók legtöbbje jól ért egy, két vagy három programozási nyelvhez és környezethez.
Az egyes tárgyakon belül vannak specializációk, és itt talán a tesitanárok a legszemléletesebb példa: a legtöbb testneveléstanár valamilyen sportág művelője, oktatója egyben. Vannak általános, minden tesitanár által ismert elvek, mint edzéstan, fejlődéstan, meg egyebek, ezt a kézilabdás tanár és a focis tanár is tudja. Mindketten testnevelést oktatnak, de ha nagyon belemegyünk, egész mást tudnak nagyon jól. Persze ha kézilabdaedző valaki, elboldogul egy csapat focistával egy bizonyos szintig, de tuti, hogy ha eredményt akar elérni, rá kell tanulnia.

Ehhez hasonlít a programozási környezetek világa is: ha Javát kezdesz el tanulni (tesitanár vagy), akkor azon belül specializálódhatsz az Androidra (kézilabda), Java EE-re (kajak-kenu), Springes webfejlesztésre (evezés), stb. Van egy közös alap a többi Javással, de valójában más irányba mentél el. A Springes webfejlesztés nem áll távol a Java EE-től (ahogy az evezés sem a kajak-kenutól: víz-víz, evező-evező), de mégis más a kettő. Minél jobban belemész, annál inkább.

Tesitanárként egy földrajzórán helyettesítőként mondjuk eléggé meg vagy lőve, hiszen a konkrétumokban kevés ismereted van, de értesz a pedagógiához, láttál már gyereket közelről, úgyhogy azt csípőből el tudod érni, hogy ne szedjék szét a tantermet. A jó földrajzórához viszont meg kell tanulni az adott anyagot neked is… Leadni viszont le fogod tudni, mert a pedagógiához értesz. Hasonlóképpen ha programozóként egy másik területre keveredsz (webfejlesztőként mondjuk egy mosógépet kellene programozni egy teljesen másik nyelvben, akkor először nem tudnád, hova nyúlj. Az alapjaid (pl. programozási készségek, gondolkodásmód) megvannak, úgyhogy ha a konkrétumokat megtanulod, a többi helyére kerül).

És még egy szempont. Ha valahol 5-6-féle programozási nyelv (környezet) (pl. Java, C#, C, C++, Javascript…) ismeretét várják el tőled, akkor érdemes utánamenni, hogy miért van ez. Ez olyan, mintha egy iskola hatszakos tanárt keresne felvételre.

Pasztuhov Dániel