Miért lehet szeretni a programozást?

A minap egyik ismerősömmel beszélgettünk, főként a vállalkozás volt a téma, és – mivel mi ezzel foglalkozunk – szóba került a programozás is. Az eszmecsere egy pontján az a megállapítás hagyta el a száját, hogy a programozás számára mindig is egy „száraz” téma volt, semmi érdekeset nem lát benne, ő biztos nem tudná jól csinálni, „hülye lenne hozzá”.

A reakcióiból ítélve valószínűleg nagyon bután nézhettem rá.

Az egyik az, hogy szerintem egy értelmes ember meg tud tanulni programozni (ezért is állítottunk össze egy olyan tesztet, amiben erről meg lehet bizonyosodni), de erről már többször írtam.

A másik pedig,

hogy attól, hogy valakinek van hozzá érzéke, még nem biztos, hogy fogja érdekelni.

Ez viszont egy róka fogta csuka esete, mert amíg nem kezdi el, nem ássa bele magát az ember, addig nem igazán érzi meg az ízét.

A bután nézésem oka az volt, hogy számomra a programozás szórakozás. Nem egyszer fordult már elő velem, hogy hétvégén vagy este magamra csuktam a dolgozószoba ajtaját, és programoztam.

De hát mit lehet ebben szeretni? – kérdezheted.

Hadd hívjak segítségül néhány analóg tevékenységet, amikkel kapcsolatban jobban benne van a köztudatban, hogy mi bennük a szórakozás: a barkácsolást (kutyaházépítés), a sütés-főzést és a labdajátékokat.

Amíg nem kóstoltunk bele a tevékenységekbe, addig a barkácsolás monoton és fárasztó fűrészelés és szögelés, a sütés-főzés sok óra állva, keveréssel eltöltött idő, a labdajáték pedig egy pattogó golyó kergetése marad egy négyszögletes pályán.

Mi ezekben az élvezet? – hangozhat a költői kérdés

  1. az alkotás öröme. Ha az elkészült kutyaházat nézzük, vagy a kisült finom süteményt, egyértelmű az eredmény. A programozás esetében kevésbé, hiszen a tevékenység is és az eredmény is egy zárt, virtuális világ terméke: egy program, ami valamely informatikai eszközön fut. Hogy közelebb hozzam ezt a virtuális világot, nemrég készítettem egy videót egyik tanfolyamunk eredményeként készíthető programról.
    Az alkotás örömét a kihívás adja meg. Ahogy a többi tevékenység esetén is, a programozás esetén sem „magától” készül el a program, ahogy a kutyaházat sem készíti el gombnyomásra egy szerkezet (vagy ha igen, oda az alkotás öröme). Úgy fogalmazom meg a dolgot, hogy a barkácsolás, a süteménysütés és a labdajátékok is mind-mind különféle szabályrendszerek keretei között való eredményes tevékenykedés: a barkácsolás esetén kell, hogy statikailag megálljon a szerkezet, a sütés-főzés az ízek és a kémiai folyamatok rendszerében működik, a labdajátékok esetén meg maga a szabálykönyv mutatja az utat.

  2. a tanulás, felfedezés öröme. A programozás jelenleg ott tart, hogy lehetetlen minden ágát megtanulnia egy-egy embernek. És ha sikerülne is, mire végez, az elsőnek megtanult dolgokban biztosan lemaradt, annyi újdonság jelent meg azóta.
    A barkácsolók hasonló élményt élhetnek át a szerszámkatalógust lapozgatva, a főzni szeretők a receptoldalakat, receptújságokat lapozgatva:
    „Nini, egy újdonság! Vajon ha ezt használom, az mennyiben vezet más (gyorsabb, elegánsabb) eredményre?” – a programozás esetében gyakorlatilag végtelen a felfedezésre váró lehetőségek száma.

  3. szellemi kihívás. Egy kutyaháznál is ki kell találni, hogy hogy nem esik le a teteje, hogy lesznek az oldalai összeállítva és így tovább. Bár azt gondolom, hogy egy kezdő barkácsoló még átél némi szellemi kihívást, mire megtervezi, hogy hogy nézzen ki és hogy álljon össze a házikó, de a második-harmadik már nem fog túl nagy fejtörést okozni – megy rutinból.
    A programozásban folyamatosak a megoldásra váró agytornák.
    Egyébként a léptékek is mások: ha építészeti szemléltetéssel szeretnék élni, legtöbbször a programozó egy város építésén dolgozik, bár nem egyedül.
    Mindenesetre a programozásban folyamatosan lehet találni megoldandó logikai feladványokat.
    Ha elkezdesz velünk programozást tanulni, akkor bizonyosan többször lesz olyan eset, amikor gondolkodsz egy problémán, és elsőre nem világos a megoldása. Aztán valamikor (fürdés közben, félálomban…) hirtelen megjön az isteni szikra. Utólag teljesen logikus, és minden kristálytiszta. Az ehhez kapcsolódó örömérzés leírhatatlan.

  4. egzakt terület. A számítógépnek nincs „rossz napja”, nem sértődik meg, és ha csúnyán beszélsz vele, akkor is ugyanúgy végzi a dolgát (vagy ugyanúgy nem), mint addig. Ha valami nem működik, annak van egy jól körülhatárolható oka, amire kellő tudás és megfelelően logikus gondolkodás esetén rá lehet jönni.

És akkor ide a végére még egy gondolat.
Manapság sok helyen lehet hallani, hogy programozóként sokat lehet keresni.
Ez így van.
Ha viszont nem élvezed, akkor a sok pénz csak részben kárpótol azért, hogy nem olyasmivel töltöd az életedet, amit igazán szeretsz.
Szerintem a programozás megtanulásába akkor vágj bele komolyabban, ha megláttad azt az oldalát, ami a pénzen túl is mozgat.
Megmutathatom?