1. Database Strategy/
  2. Leadership tehnic și proiecte/

Doctorul complet nebun: un Commodore 64, o ușă închisă și meseria de a înțelege

Ivan Luminaria
Ivan Luminaria
Oracle DBA · Oracle PL/SQL · DWH Architect · Project Manager

Un copil ca oricare altul #

Când eram mic, ca mulți alții, voiam să fiu veterinar. Îmi plăceau animalele și natura, iar să le îngrijesc mi se părea cel mai frumos meserie din lume.

Probabil că și tu, la vârsta aceea, aveai un răspuns gata pregătit la întrebarea „ce vrei să te faci când vei fi mare?". Și probabil că și al tău, la un moment dat, a luat-o pe un alt drum.

Al meu a luat-o în 1983, când tatăl meu a cumpărat un Commodore 64.

READY. #

Dacă ai cam aceeași vârstă cu mine, îl știi: cutia aceea bej lipită de televizor, tastele care sunau ca o mașină de scris, ecranul albastru cu bordura mai deschisă și textul pe care o întreagă generație îl știe și azi pe de rost.

    **** COMMODORE 64 BASIC V2 ****

 64K RAM SYSTEM  38911 BASIC BYTES FREE

READY.

Dedesubt, un cursor care clipea așteptând instrucțiuni.

Cine avea casetofonul își amintește de PRESS PLAY ON TAPE, de dungile colorate pe marginea ecranului și de speranța că jocul pornea din prima. Cine trecea pe la chioșc își amintește de casetele cu zece jocuri și de titlurile traduse într-o română greu de descifrat. Eram cu toții în aceeași barcă, și barca se încărca în cinci minute.

Tatăl meu, împreună cu calculatorul, avusese niște cărți pline de programe în BASIC de copiat. Pagini de rânduri numerotate din zece în zece și, la final, dacă copiaseși bine, un joc. Dacă copiaseși prost, după două ore de bătut la tastatură, Commodore-ul ți-o spunea cu o franchețe toată a lui: ?SYNTAX ERROR IN 340. Rândul 340 era perfect, identic cu cartea. Cauza stătea în 330, unde un punct și virgulă devenise două puncte. Fără să știu, învățam prima regulă a oricărui diagnostic: simptomul apare într-un loc, cauza stă adesea puțin mai sus.

Regula jocului era clară: listingul se copiază identic, iar veterinarul rămâne planul pentru viitor.

Doctorul cel nebun #

Unul dintre acele programe se numea „Doctorul cel nebun". Îți punea o serie de întrebări, un fel de anamneză, și la final, în funcție de răspunsuri, emitea un diagnostic hazliu și spiritual.

Într-o zi, aveam cam zece ani, eram supărat pe tatăl meu. În loc să trântesc o ușă, am deschis programul și l-am modificat: când răspundea el, doctorul concluziona mereu că era „rău și antipatic". Listingul original nu ți-l pot arăta; aceasta e o reconstituire, ca să dai o idee:

500 REM DIAGNOSTICUL
510 IF N$="TATA" THEN PRINT "ESTI RAU SI ANTIPATIC": END
520 PRINT "AI UN ATAC ACUT DE..."

Respectul, în acea după-amiază, era la fel de absent din cod ca și literele cu diacritice de pe tastatura Commodore-ului.

Tatăl meu nu putea să se supere, pentru că cel care vorbea era doctorul. O imunitate diplomatică perfectă, construită în BASIC de un copil care nici măcar nu știa ce înseamnă imunitate diplomatică. Și mai ales era mulțumit: făcusem ceva ce nu era în carte. Înțelesesem programul altcuiva suficient de bine ca să-l schimb.

Din ziua aceea, cărțile lui au încetat să fie pagini de copiat și au devenit tovarăși de drum. Fiecare listing era un mecanism de demontat ca să înțelegi cum funcționează.

Își rezolvă problemele în loc să învețe #

La gimnaziu scriam programe proprii. Rezolvau probleme de geometrie și algebră: introduceai datele, iar programul desfășura și arăta toți pașii până la rezultat.

Profesoara nu înțelegea rostul, și avea motivele ei. Erau primii ani în care calculatoarele intrau în casele familiilor, și pentru mulți adulți erau încă obiecte misterioase. I-a spus tatălui meu să-mi ia calculatorul, altfel n-aveam să învăț niciodată matematica. Comentariul ei a fost: „Își rezolvă problemele în loc să învețe".

Azi o înțeleg. În fața unei tehnologii pe care o cunoștea puțin, voia să-mi protejeze procesul de învățare, și din exterior un băiețel cu un calculator care rezolvă ecuații pare că a găsit o scurtătură.

Scurtătura nu exista. Commodore-ul nu știa nimic despre triunghiuri: fiecare pas trebuia să i-l predau eu. A ști să rezolvi o problemă de geometrie pe caiet e un lucru; a ști să o explici unei mașini, pas cu pas, fără să lași nimic la intuiție, e altceva, și cere să fi înțeles subiectul mult mai în profunzime. Dacă stai să te gândești, e valabil și când cel care trebuie să înțeleagă e o persoană.

Ușa încuiată #

Tatăl meu s-a întors de la ședință și a luat-o pe profesoară în serios. A pus Commodore-ul în dormitorul lui și al mamei mele și a încuiat ușa.

O ușă încuiată spune două lucruri: că înăuntru e ceva prețios, și că cineva a decis că nu e pentru tine. Tatăl meu o intenționa pe a doua. Eu am auzit doar prima.

Aproape în criză de abstinență, am studiat situația ca pe un listing care nu pornea. Aveam nevoie de trei lucruri: o după-amiază fără părinți, un complice și o cheie. După-amiezile existau, pentru că ai mei ieșeau și acasă rămâneam eu și fratele meu. Complicele l-am corupt cu o înghețată: prima mea negociere, și până azi una dintre cele mai avantajoase. Cheia am cumpărat-o de la fierărie: un șperaclu.

Ușa s-a deschis. De fiecare dată când ai mei erau plecați montam Commodore-ul, și cursorul revenea să clipească. Înainte de întoarcerea lor demontam totul și puneam fiecare lucru la locul lui. Tatăl meu a aflat abia luni mai târziu.

Nu o povestesc ca pe o ispravă de imitat. O povestesc pentru cele trei lecții pe care le-am găsit în ea, ca adult. Cheia încuia calculatorul; curiozitatea rămânea liberă. Un șperaclu deschide multe uși pentru că provine de la cineva care a înțeles cum sunt făcute yălele. Și cine deschide o ușă își asumă responsabilitatea pentru ce găsește înăuntru.

Pacientul s-a schimbat #

La treisprezece ani i-am spus tatălui meu că aveam să fac programator de jocuri video. Jocuri video n-am scris niciodată. În 1994 m-am înscris la Inginerie Informatică la Roma Tre, și de acolo au venit treizeci de ani de baze de date și sisteme care susțin bănci, asigurări și telecomunicații.

Copilul care voia să îngrijească animale, în felul lui, și-a găsit meseria. Un sistem care încetinește sau se oprește trimite simptome, rareori explicații. Munca începe cu o anamneză, ca cea a doctorului cel nebun, și ajunge la un diagnostic de explicat pas cu pas, ca în programele de geometrie, celui care trebuie să ia o decizie.

În spatele fiecărui sistem se află oameni: echipa care îl ține în picioare, cel chemat noaptea, cel care a doua zi trebuie să răspundă în fața unui consiliu de administrație. A îngriji un sistem înseamnă, înainte de orice, să le permiți lor să lucreze liniștiți.

Uși încuiate mai întâlnesc și azi. Șperaclul a rămas același: să înțelegi cum e făcută yala. Cu o diferență importantă: azi cheile mi le înmânează clienții, și să le păstrez e partea muncii pe care o iau cel mai în serios.

Există o frază care, în munca de zi cu zi, îmi semnalează o ușă încuiată mai mult decât orice alarmă: „s-a făcut mereu așa". O aud în fața unui batch pe care nimeni nu l-a atins de ani, a unei configurații moștenite, a unui control care se repetă fără să mai știe nimeni de ce. E o frază de înțeles, spusă adesea de oameni buni și obosiți. Și e adesea tocmai acolo că se ascunde rândul 330.

Doctorul, între timp, a devenit considerabil mai puțin nebun.

Exact ca tine #

Meritul acestui drum îl au oameni obișnuiți.

Înainte de toate, tatăl meu. În 1983 a adus acasă un calculator când puțini știau ce să facă cu el. A lăsat fiul lui să pună mâna pe programele din cărțile lui și a primit un „rău și antipatic" cu o anumită satisfacție, pentru că văzuse ceva ce cartea nu conținea. Și chiar încuind acea ușă, fără să vrea, m-a învățat cât valorează ce era înăuntru și să nu mă opresc în fața unui „nu" înainte de a-i fi înțeles motivul.

Apoi o profesoară care, cu instrumentele acelor ani, voia să-mi protejeze procesul de învățare. Și un frate care a păstrat un secret luni întregi, la prețul unei înghețate.

Dacă și tu ai început în fața unui cursor care clipea, știi despre ce vorbesc. Și dacă azi ai în față un rând 340 care pare perfect, întrebarea utilă e una singură: unde e rândul 330?

Glosar #

BASIC — BASIC este un limbaj de programare interpretat din anii ‘80, conceput pentru calculatoare personale cu linii numerotate și sintaxă lizibilă pentru utilizatori fără pregătire specializată.