Ha kívülállóként közelítünk a programozás világához, akkor felmerülhet bennünk a kérdés: “Végü lis mit csinál egy programozó egész nap? Szeretném-e én ezt csinálni?”
A kérdés jogos, főleg, hogy az IT szakemberek között százával terjednek az ehhez hasonló összeállítások:
Ezek persze a humor kategóriájába tartoznak, de azt jól jelzik, hogy megérteni kívülállóként, hogy mit csinál egy programozó, nem könnyű.
Amit kívülről lehet látni: reggel bemegy az irodába, köszön, és szociális igényeinek megfelelően vagy elbeszélget az ember a kollégákkal, megiszik egy kávét, vagy azonnal leül a gép elé, és elkezdi püfölni a billentyűket. Néha megáll, és elmerült tekintettel bámul a semmibe. Esetleg rajzolgat. Néha szitkozódik, néha majd kiugrik a bőréből. Máskor meg csak próbálja megzabolázni a Google-t, hogy azt az infót adja, amire neki szüksége van.
A számítógépet akár úgy is elképzelheted, mint a ruhásszekrényt a Narnia krónikájában, a 9 3/4. vágányt vagy az Abszol utat a Harry Potter-könyvekből, vagy a tükröt az Alice csodaországból. Kívülről csak egy tárgy, de ha beavatott vagy (pl. varázsló), és átmész rajta, akkor fantasztikus mesevilág tárul fel előtted, varázslényekkel, beszélő állatokkal, különféle csodás dolgokkal. Kívülről csak annyi látszik, hogy bebújtál egy ruhásszekrénybe, átmentél a falon, vagy keresztülléptél egy tükrön. Belülről meg akár több egész estés filmet is le lehet forgatni a kalandjaidból.
A számítógép is ilyen. Ha belépsz ebbe a "mesevilágba", az általad birtokolt rendszerek gyakorlatilag korlátlan ura lehetsz. Ha akarsz, alkothatsz, ha akarsz, pusztíthatsz. Új világokat teremthetsz (mondjuk egy játék megírásával), amelybe együtt tölthettek időt a barátokkal, és bárkinek a bőrébe belebújhatsz. Ha akarod, olyan rendszereket hozhatsz létre, amelyek segítik a vállalkozásod életét, vagy a saját személyes életedet.
Olyan vagy ennek a világnak a szempontjából, mint egy varázsló a fantasy filmekben. A lehetőségek nagyon nagyok, az építőkövek szinte ingyen és szinte korlátlan mennyiségben állnak a rendelkezésedre. A teremtő lehetőségeidnek valójában egy nagyon komoly határa van: a TUDÁSOD és a GONDOLKODÁSOD. Minél nagyobbra növeled a tudásod, minél jobb a gondolkodásod, annál nagyobb részét érted meg, és vonod uralmad alá ennek a világnak.
(Persze korlátok itt is vannak. Nem sétálhatsz be csak úgy a CIA titkos szervereire, és nézegethetsz meg különféle titkosított adatokat. Mondjuk úgy: ezeket a helyeket nagyhatalmú varázslók és varázslócsapatok védik. Őket is ki lehet játszani, ami egy tudásalapú játék (ez a “hekkelés”). Nem növelheted korlátlanul a számítógéped (varázspálcád) kapacitását, hiszen a számítógép még ebben a világban létezik. És persze vannak olyan dolgok, amelyek – a jelenlegi tudásunk alapján – elvileg lehetetlenek. Aztán még amit fontos tudni, hogy idő kell az építkezéshez: ahogy egy ház sem születik a gondolatoktól “magától”, ebben a világban is össze kell rakosgatni a téglákat egymásra).
És ahogy a Narnia krónikái esetén a valós világban árva gyerekek voltak a történet szereplői, “odaát” pedig uralkodók, és ahogy Harry Potter is egy közönséges árva volt, a varázslóvilágban pedig szupersztár, úgy a programozók között is van olyan, aki ideát egy "unalmas kis kocka", odaát pedig “nagy tudású varázsló”.
A programozók valójában részben ennek a világnak a polgárai. Ők ebben a világban egy bizonyos jól meghatározott cél érdekében egyesítik erőiket: általában egy cég valamilyen informatikai rendszerének megalkotása, aminek létrejötte, fejlődése segíti az adott vállalkozás piaci szerepének megőrzését vagy erősítését. A cégnek meg megéri őket finanszírozni, hiszen az általuk teremtett rendszerek pénzt termelnek vagy pénzt spórolnak a vállalkozásnak.
Egy-egy informatikai rendszer kifejlesztésének sok lépése van. Onnan indul, hogy (ha már varázslós példát hoztam) a “muglikkal” le kell egyeztetni, hogy mire is van szükségük. Aztán ha sikerült belőlük “kivarázsolni”, hogy mit is szeretnének, akkor azt le kell fordítani “varázslónyelvre”, hogy a programozók is megértsék. Ezek után a programozók a számítógépük (varázspálca) segítségével a tudásukat és gondolkodásukat, kreativitásukat felhasználva előbb-utóbb – néha hónapok, évek alatt – megalkotják a szükséges rendszert. Ezt utána (vagy esetleg többször is, menet közben) megmutatnak a “mugliknak”, hogy tényleg jó úton járnak-e a fejlesztésben. Közben és utána pedig ellenőrzik az készülő művet, hogy tényleg nem követtek-e el katasztrofális hibát (hogy elkövettek kisebb-nagyobb hibákat, az szinte tuti), azaz tesztelik a szoftvert. Majd végül átadják és üzemeltetik (azaz betanítják a “muglikat” a programok használatára, válaszolnak az időről időre felmerülő kérdésekre, megoldják a felmerült igények kielégítését, kijavítják a felbukkant hibákat, stb).
Hogy miért is kell “fordítani” a “varázsnyelv” és a normál nyelv között? Ahogy ez a humoros (bár túlzó) képregény is mutatja, van némi különbség a két tábor között:
Ennek a folyamatnak a programozók csak egy részét látják el, a teljes folyamatban többféle szakma képviselője vesz részt, illetve a programozót én most számos néven illetett szakemberek közös gyűjtőnevére használtam (lehet szoftverfejlesztő, szoftvermérnök, programozó, szoftverfejlesztő). Valójában legtöbbször nincs éles határ az egyes nevekkel illetett emberek között.
Ahogyan pl. a Harry Potterben is, a programozóknak is megvan a maga nyelvük, csak nem “invito pálca”, hanem pl. “input a”. A rowlingi világgal ellentétben a programozók világában sokféle nyelv terjedt el (mintha attól függően, hogy milyen varázspálcát használnál, más és más nyelven kellene vele beszélni). Ezeket hívjuk programozási nyelveknek. A jó az, hogy a szükséges gondolkodásmód nagyon hasonló, de a kifejezésmód meg nagyon eltérő.
Persze az is igaz, hogy mindenki a Harry Potterben sem lett varázsló: vannak ugye a varázstalanok, akik származás ide, vagy oda, mégsem voltak képesek a varázsolni. Így a programozáshoz is kellenek képességek. Ha szeretnéd megtudni, neked megvannak-e ezek, töltsd ki ingyenes programozási alkalmassági tesztünket!
Pasztuhov Dániel