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. Aligha akad olyan, aki nem látott még iskolát, úgyhogy remélem ülni fog az analógia.

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 viszont értesz.

Ami még ide kapcsolódik: programozás keretén belül a build tool-ok (Javában a Maven, Gradle): ezeket behelyettesíthetjük az információforrással – ha kémiatanárként tovább akarod képezni magad, akkor más lapokat, internetes oldalakat olvasol, mint földrajztanárként, de van, ami ebben közös: olvasol, fejlődsz és hogy minden szaknak megvannak a saját forrásai hozzá. Így a build tool-ok is fontosak, tudni kell róluk, elveik sokszor azonosak, de mégis mindig az adott nyelvhez kapcsolódóak.

É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ána menni, hogy miért van ez. Ez olyan, mint ha egy iskola hatszakos tanárt keresne felvételre.

Ha érdekel a programozás, szeretnéd is megtanulni, de nem vagy benne biztos, hogy a számítógéped alkalmas-e rá, vagy épp számítógépvásárlás előtt állsz, de nem akarod, hogy rosszat válassz, akkor nézd meg ezt: Bosszankodásmentes számítógépválasztó.