A tudás megosztása nem lehetőség: kötelesség
Tanit.hu

Apáti János - szakmai háttér

Apáti János

Mit jelent programozni?

Amikor programozunk, gépeket tanítunk be olyan tevékenységekre, amelyeket a gépek is el tudnak végezni. Ezzel az embereket szabadítjuk meg a gépies működéstől, azért, hogy emberhez méltóbb, lélekemelőbb dolgokkal foglalkozhassanak. Mik az igazán emberi dolgok, amelyekre jó lenne ha több időnk lenne? A barátkozás, a család, a gyereknevelés, az idősekkel és betegekkel törődés, az emberiséget sújtó megannyi nehézség megoldásán ügyködés, a természetvédelem, a tudományos-művészeti és vallási kérdések, a sport, a természetjárás...
Ezekkel szemben a mechanikusan ismétlődő cselekvések lélekölő hatása régóta ismert. Amit gépek is el tudnak végezni, hadd végezzék gépek. Ebből a szempontból nézve azok a programozók, akik olyan szoftvereket fejlesztenek, amelyek az embert gépies működésre késztetik épp az ellenkezőjét teszik annak, ami a szakma küldetése, azaz szerintem elárulják a szakmát. Szeretném megélni, hogy az embert elgépiesítő szoftverek feljesztőit és terjesztőit ugyanúgy bírálják el, mint a droglaborok fenntartóit és a drogdílereket.

Mit adhatnak nekünk a programozási nyelvek a futtatható kódokon túl?

A strukturált programozási nyelveknek három alapvető építő eleme van:
1. szekvencia: a feladatok lépésenkénti végrehajtása
2. szelekció: elágazási lehetőség, avagy feltételekhez kötött feladat végrehajtás és végül
3. iteráció: utasítások ismétlése addig, amíg egy bizonyos feltétel fennáll

Ezek az építőkövek az életünkben is jelen vannak. A programozási nyelvek rendkívül hatékonyak, látjuk, hogy az utóbbi pár évtizedben milyen órási fejlődésen mentek keresztül és milyen nagy mértékben segítik a legkülönbözőbb problémák megoldását. Ha ezeket az előbb említett építőköveket megfeleltetjük valós élethelyzeteknek, akkor sokkal többet profitálhatunk a megszerzett programozói képességeink révén. Magasabb életminőséget, hatékonyabb életvitelt érhetünk el ezáltal, mélyebb önismeretre tehetünk szert.

A szekvenciák arra tanítanak, hogy hogyan bontsunk le bármilyen nagy és összetett feladatot kis, elvégezhető lépésekre. Ezzel megőrizhetjük a cselekvőképességünket és eliminálhatjuk a félelmeink egy jelentős részét is.

A szelekciók megtanítanak arra, hogy hogyan készítsük elő a döntéseinket, és hogy mekkora ereje van a döntéseink következetes végrehajtásának.

Az iterációk a gyakran ismétlődő szokásainkkal állíthatók párhuzamba. Amikor optimalizálunk egy szoftvert, akkor elsősorban a ciklusokat vizsgáljuk, hiszen ha egy sok ezerszer végrehajtandó utasítássorban tudunk nyerni csak ezredmásodperceket is akár, ezek összeadódva rendkívül sokat számítanak. Az életünkben is elsősorban a sokat ismételt napi rutin működésünket érdemes elsősorban górcső alá venni, és ezzel nyerhetünk meg rengeteg plusz időt.

Tanulmányok és szakmai tapasztalatok röviden

Prágában jártam műszaki egyetemre, informatika szakra 3 évig, majd itthon elvégeztem az ELTE informatika tanári szakát. Tanítottam programozást főiskolákon, OKJ tanfolyamokon, felnőttoktatási keretek között és közel 30 éven át fejlesztettem különböző szoftvereket. Ezek között volt iktató rendszer környezetvédelmi felügyelőségnek és önkormányzatoknak, távadatgyűjtő rendszer a Gaz de France-nak és adatvizualizációs rendszer egy amerikai startup cégnek. Egy részüket egyedül terveztem és kódoltam, de a többit természetesen csapatban vittük végig.

Jelenleg technikumban tanítok programozást, de tárhelyeket is üzemeltetek már hosszú évek óta, amelyeken közel száz domaint kezelek.