„Kezdetben vala az Algoritmus, a Programozó és a Számítógép, ez a három. És kezdetben az Algoritmus a Programozónál vala. És elgondolván és jól megfontolván mindeneket, írá a Programozó az ő programját hosszú időkön át, míg el nem készüle. Akkor helyezé azt a Számítógépbe, és parancsolá néki: Fuss!
És a program kezde rögtön futni vala…
E szavakkal kezdődik A Programozó Könyve – legalábbis Joysteen szerint.
Hm, Joysteen… Nem ismerek nála különösebb lényt a világon. Szerepe amily fontos volt, oly rejtve maradt mindvégig. Ő maga soha nem törekedett előtérbe kerülni, sőt, inkább gondosan ügyelt, hogy fogalmam se legyen, kivel is váltok valójában elektronikus üzeneteket, ki küld nekem újabb és újabb idézeteket A Programozó Könyvéből, e rejtélyes és zavarba ejtő műből, ami után annyi időn át, annyi kétség közt kutattam, miközben sejtelmem se volt, mert e fura internetes kobold nem engedte tudnom, ki rejlik nickname-jének az álarca mögött. Mikor pedig végre komolyan feltámadt bennem a kíváncsiság, és Sherlock Holmes módjára kezdtem szűkíteni a kört, ismerőseim körét, logikai rostán ejtve ki mindenkit, akivel nem lehet azonos, hogy az utolsóként fennmaradó személy, hisz ismerik a szabályt, tűnjék bár kiléte mégoly valószínűtlennek, csakis és kizárólag Joysteen lehessen – nos, az eredményen maga a nagy Holmes is alaposan meglepődött volna!
Sok üzenetet váltottunk a világhálón át, valamennyit képtelenség felidéznem. Ám ha tehetném is, csak János evangélistához hasonlóan vélekednék: „maga a világ sem foghatná be a könyveket”, amelyeket írnom kellene. Azt hiszem, Joysteennek tetszene ez a gondolat. Igen, bizonyosan tetszene.
Egyszer késői órán szólítottam, éjfél jóval elmúlt már. Hamar jött a válasz. A gépe mellett virraszt megint, gondoltam magamban.
– Joy, mennyi időt töltesz naponta a neten?
– Legalább 24 órát. 🙂
Mosolya engem is felvidított, elűzte a mind súlyosabban rám nehezedő éjszakai fáradtságot.
– Soha nem alszol?
– Ne félts, jut arra is az időmből. 🙂
Szeretett kitérni a nyílt válasz elől, ha önmagáról kérdeztem, ez nagyon jellemző volt rá. Azért is tovább faggattam.
– És a nők? Hogy állsz a nőkkel, Joy? Áruld el, mikor szeretkeztél legutóbb?
Lelki szemeimmel láttam, amint lekicsinylőn legyint.
– Ó, nem az a legfontosabb… 🙂
– Talán nem érdekelnek a nők? – provokáltam.
– Dehogynem! Csak nem rajtuk jár folyton az eszem, mint egyeseknek… 🙂
Joysteen elmaradhatatlan, örökös mosolya… Nem álltam meg, hogy tovább ne kutakodjak.
– Mitől vagy folyton jókedvű?
Előredőlve figyeltem, amint válaszának betűi egyenként jelennek meg monitoromon, olykor visszatörölve egy-egy elgépelt karaktert, majd folytatva, ahol megtorpant, míg végül az egész szöveg előttem virított, s én meghökkenten olvastam:
„Boldogok a programozók, mert övék a virtuális valóság világa. Kedvükre formálhatják, míg benne boldogságra nem lelnek. És ha sohasem kelnek fel számítógépük mellől, és ha egész életüket mellette élik le, akkor a legboldogabbak.”
E szavak állnak A Programozó Könyvében.
—————————————————–
1. rész Ambrus Hajnal
…a Káprázat utca, akár egy téli tájkép.
A sorakozó házfalak tövén, a havas csend függönye mögött nesztelen léptű őzek osonnak titkon, csak akkor válnak semmivé, ha odatekintek, ám újra valóvá lényegülnek, amint elfordítom a fejem. Az sem lepett volna meg, ha a keresztutcából csaholó ebek falkája tör elő Bruegel havat taposó vadászainak kíséretében. Az egész környék csendes volt és mozdulatlan. Kétoldalt, a járdák mentén hókupacként parkoló gépkocsik buckái, közöttük az úttest macskaköves domborulatának tiszta hóleplére keréknyom még nem rajzolódott. A járdaszélen feketén kopárló fatörzsek. Itt, alig néhány háztömbnyire a forgalmas Nagykörúttól oly tiszta, fehér csönd uralkodott, mintha téli álomba merült volna minden. Mesebeli tájék, hihette ámulva az erre tévedő, hittem magam is, amint egy régimódi fakapu előtt megálltam, s kibetűztem a rászögezett réztábla szavait: Akadémiai Kutatóintézet. Szusszanásnyi pihenőt engedélyeztem magamnak, kis párafelhőt leheltem az ég homálya felé, azután megragadtam a kapu öntöttvas kilincsét, s határozott mozdulattal benyomtam a nehéz ajtószárnyat.
A varázsos hangulat a kapualjban sem ért véget. A kutatóintézetet egy kétszáz évesnél öregebb, omladozó műemlék épületbe telepítette egy nemrég letűnt kor politikai akarata. A belépő útja boltíves előcsarnokon át vezetett. Macskakövét hajdan hintók paripái koptatták, hulló vakolatú oldalfalán cirádás, kosztól eltömődött falikút árválkodott, amelyből víz a háború alatt folyt utoljára. Egy oldalfülke ablakocskáján át fakult köpenyű portás bácsira esett pillantásom. Asztalán telefonkapcsoló tábla színes lámpácskái pislogtak, mint karácsonyi fények, a sarok sötétjében monitor derengett zöldesen. Vaskos könyvben lapozgatott, olykor beleírt, máskor kihúzott ceruzájával, időnként a monitorra tekintett, s alig észrevehetően bólogatott. A kicsiny ablakhoz hajolva beköszöntem, majd így szóltam:
– Az igazgató urat keresem.
Csodálkozó pillantást vetett felém. Majd meggyőződve, hogy nem csalta meg a hallása, valóban egy emberfia tévedt erre, ahol a madár se jár, eltolta maga elől a kötetet, és előkászálódott fülkéje mélyéről. Megállt az ajtóban – fél fejjel volt alacsonyabb nálam, ritkuló, őszes haján át jól látszott májfoltos fejbőre –, s alaposan szemügyre vett szemüvege mögül, mielőtt szóra nyitotta száját.
– Rosszkor jött, fiatalember – mondta végül. – Boruss Szilárd igazgató úr jelenleg nem tartózkodik az intézetben. – Majd csalódott képem láttán hozzátette: – Épp ma reggel utazott egy konferenciára Genfbe, csak a jövő hétre várjuk haza.
– Ez esetben beszélhetnék az igazgatóhelyettessel? – próbálkoztam találomra. – Ugye, van helyettese?
– Hogyne volna – bólintott az öreg –, Dormász Vendelnek hívják. Csakhogy ma ő sincs bent. Tudja, szilveszter után vagyunk.
– A titkárságon csak akad valaki!
– Melindácska kisasszonyra gondol? Nálunk ő a titkárság.
Bólogattam, noha persze fogalmam se volt, ki az. Az öreg sokatmondóan nézett rám, akkor még nem értettem, miért.
– A kisasszony is csak holnap jön be – mondta. – Árulja el, mi járatban van, hátha tudok segíteni!
– Állást keresek – feleltem mind csüggedtebben. Egy pillanatig sem hittem, hogy valóban képes tenni az érdekemben, de a törődése jólesett.
– Állást? – húzta fel szemöldökét. – Az komoly dolog. Itt nagyon okos emberek foglalkoznak nagyon bonyolult dolgokkal. Olyan bonyolultakkal, hogy… no, inkább bele se kezdek elmagyarázni magának. Aztán mihez ért, fiatalember, ha szabad kérdeznem?
– Sajnos, nem sok mindenhez.
– No, mégis – biztatott az öreg –, csak van valami elképzelése, mivel szeretne foglalkozni?
– Tudom kezelni a számítógépeket, és… értek valamelyest a programozásukhoz.
– Valamelyest? – vonta föl ismét szemöldökét.
– Írtam már néhány kisebb programot.
– Értem, értem – bólogatott elgondolkodva. – Tehát programozó szeretne lenni… Számítógép-programozó… Mondja csak, megszerezte már a diplomáját? Mivelhogy – mért végig – meglehetősen fiatalkának látszik!
– Diplomám nincs, épp csak leérettségiztem, de szeretnék továbbtanulni, amint lehet.
Fejét csóválta.
– Félek, hogy ez kevés.
– Tudom – válaszoltam szomorúan.
– Különben sem keresünk se gépkezelőt, se programozót. Egyáltalán nincs felvétel. Rosszul mennek mostanában a dolgok országosan, kevés a pénze a mi intézetünknek is.
Az lepett volna meg, ha mást hallok tőle.
– Sajnos, semmi lehetőség – összegezte a helyzetet. – Még konyhai takarítóra sincs szükség.
– Hát… sajnálom… és köszönöm, hogy segíteni próbált.
Megesett rajtam a szíve.
– Ne rohanjon már úgy! – szólt utánam, mert indultam kifelé. – Várjon egy percet! Hadd nézzek utána, hátha valamit mégiscsak …
Sarkon fordult, bement a fülkéjébe, és újra könyvét kezdte lapozgatni. Az üvegen át jól láttam, mint forgatja ráncos kezével a lapokat, hallottam a papír zörgését. Ujjával vezetve szemét végigfuttatta a hasábokon, gondosan megvizsgált minden információt, elégedetlenül hümmögött, közben a torkát köszörülgette. Hosszan tartott a művelet, s közben én fázósan toporogtam egyhelyben, az ablakocska előtti hűvös, sötét kapualjban, a kiszáradt falikút szomszédságában. Már végképp lemondtam minden reményről, mikor egyszer csak ismét megjelent az ajtóban, s különös tekintetet vetett rám, melyben értetlenség és csodálkozás keveredett.
– Maga programozóként szeretne dolgozni nálunk, igaz-e?
– Úgy van.
– Mi is a neve, fiam?
– Bodai János.
– Hát nézze, Bodai János! – szólott ünnepélyesen. – A helyzet úgy áll, hogy a maga dolga el van intézve!
Leesett az állam. Fel se fogtam hirtelen, mit mond.
– Nem érti? – kérdezte az öreg, majd morfondírozva hozzátette: – Hát ne csodálja, mert magam se értem. Programozókat nem az utcáról szoktunk felvenni. De most érkezett egy üzenet – mutatott a monitora felé, amelyen néhány sornyi szöveg virított –, hogy programozói munkakörbe a legelső jelentkezőt alkalmazni kell, méghozzá azonnali hatállyal, végzettségtől függetlenül. Az ördög se érti, mi folyik odafönt. A lényeg, hogy mától van állása. Gratulálok, fiam! Máris munkába állhat.
– De hát…
– Hallhatta! – veregetett vállon. – Fel van véve, és punktum!
– De hát – szóltam egész elképedten a váratlan fordulattól – tényleg nem baj, hogy nincs programozói oklevelem? Épp csak egy kicsit foglalkoztam a számítógépek programozásával, csupán magamtól tanultam meg ezt-azt…
– Akar itt dolgozni vagy sem? – nézett rám színlelt szigorral. – No, menjen csak szépen föl, meglátja, minden rendben lesz. Higgyen Józsi bácsinak!
Nem mertem tovább akadékoskodni, nehogy elszalasszam hihetetlen szerencsémet. Elrebegtem egy gyors köszönömöt, majd útmutatása nyomán, immár az épület belsejében elhaladtam egy sor csukott ajtó és egy falszögletbe süllyesztett, hatalmas állóbojler előtt, amelyben hangos zubogással forrt a víz. Liftnek nyoma sem volt ebben a régi, műemlék épületben. A folyosó végén a hátsó lépcsőházhoz értem, melynek szürke csigalépcsőin, a kovácsoltvas korlátba kapaszkodva lehetett feljutni a programozók második emeleti szobájáig. Könnyű léptekkel szaladtam föl. Amerre jártam, a belső folyosók és a nyitott, havas gangok egyaránt kongtak az ürességtől. Csend uralkodott mindenfelé, mintha árva lélek sem tartózkodna ebben az elvarázsolt kastélyban…
*
…három íróasztala közül kettő elhagyatottan álldogált.
A kicsiny szoba berendezése meglehetősen szegényesnek tűnt. A padlón olcsó szőnyeg volt hivatva a komfortérzetet megteremteni egy elnyűtt függöny és egy ősrégi TPA számítógépet ábrázoló, keretes falikép társaságában. A sarokban polcos szekrény ácsorgott tele számítástechnikai könyvekkel, amelyek jó része – első pillantásra láttam – rég elavult a hihetetlenül gyors amortizáció folytán. Bőven volt időm szemlélődni, mert a szobában tartózkodó köpcös férfi sem beléptemre, sem elrebegett köszönésemre nem nézett fel. Tömzsi ujjaival számítógépe klaviatúráját csapkodta, közben dülledt szemmel bámulta a monitort, melynek színes fényei visszatükröződtek kövérkés, verejtékező arcán.
Türelmesen ácsorogtam egy darabig. Végül eluntam, és leraktam táskámat az egyik üresen árválkodó íróasztalra. A férfi mégiscsak figyelhetett, mert nyomban rám mordult:
– Az a Marton Béla asztala!
Szabódásomat, miszerint honnan is tudhattam volna, hogy az másvalakinek a helye, eleresztette a füle mellett. Sűrű szemöldöke alól rám vetette tekintetét.
– Engem Medvének hív mindenki. Szólíts te is így! – közölte ellentmondást nem tűrően. – Én vagyok a programozó csoport vezetője!
Beceneve nagyon is találónak bizonyult. Felgyűrt ingujjából kilátszó karját sötét szőrzet borította, miként alighanem egész testét, a füléből, orrából, ingnyakából kikandikáló szőrszálak erről árulkodtak. Súlyos testét lomhán mozgatta. Ha egyszer letelepedett valahová, nem mozdult egykönnyen.
Ha már félbeszakította a munkáját miattam, szánt rám még egy kis időt. Azt vártam, hogy elkezd kérdezgetni: mihez értek, mivel foglalkoztam idáig, mik az elképzeléseim, netán ismerteti a munkahelyi tudnivalókat. Ehelyett farmernadrágjának ülepével az íróasztal sarkára telepedett, fejét kissé félrebillentette, s arcomba bámulva azt kérdezte:
– Van barátnőd?
– Nincs – feleltem meglepetten.
– Kár – mondta, s érdeklődése máris lanyhulni látszott irántam. – Ha volna barátnőd, annak lennének nővérei, barátnői, kolléganői, egyszóval csajok körülötte, akiknek bemutatna, és akkor lenne kivel járnom buliba, moziba meg kajálni. De főleg buliba. Te szoktál buliba járni?
Két keze ujjait összekulcsolta tarkója mögött, úgy várta a választ. Hónalján átizzadt az inge.
– Nem vagyok nagyon bulizós fajta – feleltem őszintén.
Medve alaposan szemügyre vett.
– Tényleg nem látszol annak – állapította meg tárgyilagosan. – Inkább amolyan otthonülő, jó tanuló típusnak nézel ki. De ne csüggedj, majd én pártfogásba veszlek! Szerzünk csajokat, aztán miénk a világ!
Lemászott az asztalról, s visszatelepedett monitora mögé. Mielőtt ismét munkájába merülhetett volna, gyorsan megkérdeztem.
– Ketten vagytok programozók?
Követte pillantásomat Marton Béla üresen álló asztala felé, gondolkodott egy pillanatig, majd körültekintően fogalmazva így felelt:
– Egyelőre csak én. A Béla később jön.
– Mikor?
– Most mondtam – bámult rám ismét, hogy mit nem lehet ezen rögtön felfogni –, később.
Ha később, hát később. Néztem a függöny mintázatán át a Káprázat utca szemközti, hófödte háztetőit, a lassan eleredő délelőtti hóesést, s örültem, hogy fűtött szobában fedél van a fejem fölött, s főleg, hogy ilyen váratlanul álláshoz jutottam.
Hihetetlen volt a szerencsém.
Medve némán dolgozott. A folyosón senki sem járt, senki nem nyitotta ránk az ajtót. A szilveszter és újév utáni hangulat az egész intézményre rátelepedett. Azt se tudtam, tartózkodik-e rajtunk kívül bárki más az épületben. Unatkozva ültem asztalomnál. Az égvilágon semmi teendőm nem akadt, végtelenül lassúnak éreztem az idő múlását. Mintha sose akart volna dél lenni, a délutánra vagy estére pedig gondolni se mertem. Elképzelhetetlennek tűnt, hogyan fogok ezen a helyen akár egy hetet is lehúzni, nemhogy hónapokat vagy éveket.
Hosszú, heveny unatkozás után bátortalanul érdeklődtem, nem tehetnék-e valami hasznosat. Kurta, elutasító „nem” volt a válasz, éppoly megmásíthatatlannak tűnő, mint az iménti „később”. Ahhoz képest, mennyire sürgős volt a felvételem, senki sem sietett, hogy munkával halmozzon el. Tovább nézegettem hát a falon a TPA számítógép légypökte fényképét, odakint a hóesést, és egyre emlékeztettem magam, hogy boldognak kell lennem, amiért végre állandó munkahelyem van és rendes fizetést fogok kapni. Bizakodással tekintettem a jövőbe, életem most nyíló új fejezetébe, épp csak a jelenben éreztem magam oly feleslegesnek, mint a fénykép üvegén a légypiszok.
Újabb idő múltán óvatosan megismételtem kérdésemet. Medve most is nemmel válaszolt, s közben oly bosszús pillantást vetett rám, mintha mást se tennék, csak őt hátráltatnám. Váratlanul meggondolta magát. Hátradőlt a székén, kicsit rágódott magában, végül így szólt:
– Mégiscsak találtam egy kis munkát neked.
Örömömben feszülten figyeltem minden szavára.
– Egy aprócska matematikai feladat, ha nem bánod.
– Szeretem a matematikát – biztosítottam buzgón, boldogan már a kilátástól is, hogy végre dolgozhatok.
– Annál jobb – bólogatott. – Figyelj hát! Írnod kellene egy egyszerű kis programot. Minél kisebbet, minél egyszerűbbet, annál jobb. Keresse meg a programod az első olyan számot…
Papírlap, toll után kezdtem kutatni, hogy felírjam a tudnivalókat, de Medve leintett, ne nyüzsögjek. Elég, ha jól kinyitom a fülemet. Lelkesen figyeltem tehát. Vizsgáljam meg egy algoritmus működését a pozitív, egész számokon! Az algoritmus ekképp festett: ha a vizsgált n szám páros, osztani kell 2-vel, ha viszont páratlan, szorozni 3-mal és hozzáadni egyet. Az így kapott új számra azután ugyanezt a szabályt kell alkalmazni ismét és ismét, amíg 1-et nem kapunk végeredményül.
– Elég világos voltam? – kérdezte, ujjai közt pörgetve ceruzáját.
– Világosnak éppen világos – feleltem –, de mire jó ez?
Igyekeztem palástolni csalódottságomat. Ennél azért többre számítottam. Hiszen ezzel öt perc alatt végzek! Medve figyelmeztetően a magasba tartotta rövid, vastag mutatóujját, mint tanító bácsi a szeleburdi nebulók előtt.
– Figyelj csak! Az algoritmus több-kevesebb lépés után, függetlenül a kiinduló számtól, úgy tűnik, mindig az 1-hez vezet. A te programod azonban olyan kivételes számokat keressen, amelyek másként viselkednek! Olyanokat, amelyek sohasem veszik fel az 1 értéket, akárhány lépésben alkalmazod rájuk a szabályt!
Nem lettem lelkesebb. Komoly feladatra számítottam, ez azonban még kezdő programozónak is csupán ujjgyakorlat volt. Házi feladat kisiskolásoknak.
– Ennyi az egész?
– Egyelőre ennyi – felelte kurtán Medve. – Ha megtaláltad az első számot, ami megfelel a feltételnek, szólj! Remélem, ezzel elfoglalod magad egy időre!
Ismét monitora felé fordult, most már tántoríthatatlanul. Sebaj, kezdetnek ez is megteszi, vigasztaltam magam. Végre bekapcsolhattam a számítógépemet. Az ismerős mozdulat bizakodással töltött el. Szépen, pontosan kell megírnom ezt a kis programot, legyen bármily jelentéktelen, határoztam el magamban, nehogy rögtön az első feladatba hiba csússzon. Olyan egyszerű volt, hogy terveznem se kellett, egyenesen a gépbe pötyögtem a kódsorokat. Úgy képzeltem el, hogy a program addig fog vizsgálni minden számot, amíg eggyé nem válik, akkor továbblép a következőre. Legelőször persze kiíratom vele a képernyőre, hol is tart éppen. Amint tehát a program belebotlik az első olyan számba, amely sosem válik eggyé, nem lép tovább, nekem pedig nem lesz más dolgom, mint leolvasni az álló képernyőről az utoljára kiírt értéket. Utána majd ráérek tüzetesen megvizsgálni, hogy az a szám mitől különleges, mitől más, mint a többi, miért nem éri el soha az 1-et.
Elég jó elképzelés volt, akár be is válhatott volna.
Végre munkához láttam. Feledtem a másnapos kollégákat, hóesést, légypiszkot, minden egyebet, csakis a munkára összpontosítottam. Élvezettel vetettem belé magam, valósággal fejest ugrottam, mint kánikulai napon a strandmedence vizébe. A begépelt, rövid programutasítások szigorú rendben sorakoztak egymás alatt. Ügyeltem a pontos szintaktikára és az áttekinthetőségre. Nem volt hosszú program, épp csak elkezdtem írni, máris a végére értem. Ujjbegyem bizsergett, folytatni szerettem volna, de hiába, nem volt mit tenni, a program máris készen állott. Még egyszer átfutott szemem a sorokon, de nem fedeztem fel hibát. Fordítás!
Futott elsőre, hibaüzenet nélkül.
A képernyőt figyelve elégedetten hátradőltem. Először megjelent a kettő, majd alatta rögtön a három, azután sorban, villámgyorsan az egyjegyű számok. Következtek ugyanilyen sebesen a kétjegyűek. A számoszlop ekkor futni kezdett a képernyőn fölfelé, hogy helyet adjon az egyre újabb és újabb, most már három-, nemsokára négyjegyű számoknak. A program nem lassított, nem tétovázott, rendületlen sebességgel vágtázott a növekvő számok irányába. Alig vártam, hogy végre megálljon, s átadhassam a megoldást Medvének. Elhatároztam, hogy nyugodt és komoly leszek, a diadal semmiféle látható jelét nem engedem eluralkodni magamon. Ez csak egy aprócska feladat. Természetes, hogy meg tudom oldani, szót sem érdemel az egész. Ha kell, naponta tíz ilyennel elbánok. Vagy akár hússzal. Sőt, százzal! A százat kicsit soknak találtam, végül ötvenben egyeztem meg magammal. Ötven ilyen feladat naponta meg se kottyan. Egyszer talán tényleg programozó leszek…
A kicsi program pedig futott, egyre csak futott, már az ötjegyű számok tartományában dolgozott. Eleinte türelmes voltam, senki sem mondta, hogy a keresett legkisebb szám kicsi szám, később mégis gyanú kezdett éledezni bennem. Elővettem a forráskódot (a program listáját, amit elővigyázatosságból nemcsak elmentettem, de ki is nyomtattam), és másodszor is soronként átböngésztem. Azonban bárhogy vizsgálódtam, nem bukkantam hiba nyomára. Félszemmel ismét a képernyőre sandítottam. A számok továbbra is nőttön-nőttek. Programom szédületes iramban rohant ismeretlen messzeségben rejlő célja felé…