Saturday, January 6, 2018

Programatorul de înaltă clasă

Și atunci, ca și acum, există o mare diversitate de programatori, dar cel mai bun lucru este să reușim să identificăm exact pe programatorul de care avem nevoie să ne rezolve în condițiile cele mai bune problema pe care vrem s-o rulăm pe calculator.
În acele vremuri nu oricine dorea chiar devenea programator pentru că:
- lipsea Internetul ca sursă de documentare;
- un calculator presupunea cunoștințe tehnice numeroase;
- limbajele de programare erau extrem de restrictive;
- centrele de calcul aveau criterii de angajare stricte;
- cărțile de programare nu erau laândemâna oricui;
- se formase deja o castă închisă a programatorilor;
- depanarea programelor era piatra dură de încercare.
Îți dădeai seama de programatorii foarte buni după cum le arătau fie imprimantele cu programe, fie foile de programare, căci un programator foarte bun scria un program, de asemenea, foarte bun, cu părți foarte clar structurate, cu includerea de secvențe elaborate și cu folosirea de chestiuni speciale care arătau că el știe meserie. Programatorul foarte bun realiza acel echilibru absolut necesar între cantitate și calitate și se vedea de la o poștă că programul său este precedat de nenumărate calcule din care a rezultat că secvențele incluse sunt dintre cele mai bune.
Și azi este tot așa. Mie nu trebuie să-mi arate cineva mii de programe scrise de el, ci un program. Acum când se lucrează online, oricare dintre programatori trebuie să se prezinte printr-o aplicație și după cum arată interfața, cât de șmecheră este aceasta și mai ales, dacă nu te lasă cu ochii-n soare, înseamnă că am în față un programator bun. Dacă programul se termină subit, aiurea cu un mesaj al sistemului de operare taman când eu vreau să mai rezolv și o altă problemă, înseamnă că respectiva hardughie este făcută după ureche și nu s-a ținut seama de cerințele unei aplicații online.
În vremurile de demult, programatorii de înaltă clasă aveau programe care:
- erau incluse în biblioteci renumite;
- rezolvau clase de probleme;
- admiteau probleme de dimensiuni nelimitate;
- gestionau numărul de iterații și precizia;
- aveau nenumărate validări care să asigure rezultate corecte și complete;
- erau înzestrate cu facilități de customizare;
- stocau seturi de date de intrare pe care le actualizau.
Am avut posibilitatea să cunosc pe unii dintre autorii acestor programe și să lucrez cu acele programe, pentru că la disciplina Programe aplicative care era predată studenților de la Facultatea de Cibernetică erau folosite astfel de produse program, multe dintre ele fiind făcute de firme străine, dar câteva precum VERONICA, CROCODIL, EMI, produsul de alocare și nivelare a resurselor, erau reaslizate de programatori din Centrul de Calcul al ASE. Duță Doru Lucian, Csaba Fabia, Ciobanu Gheorghe și Ruxanda Gheorghe sunt numai câțiva din marii programatori cu ale căror produse program am avut onoarea să lucrez la seminarii cu studenții ciberneticieni de-a lungul vremii. Despre Catona Ioan și Popescu Cristian voi scrie separat că ei au realizat implementarea la Danubiana a unor componente esențiale de calcul de necesar și de planificare a producției din sistemul BOMP al IBM. Erau și alți programatori eficienți care elaborau programe de bună calitate, căci nimeni nu rezista în branșă fără să aibă un nivel ridicat de performanță. 
În programare ori ești bun și oferi beneficiarului programe care să-i rezolve problemele, ori nu ești bun și tot timpul spui că ești cu programul ba în compilare, ba în editare de legături, ba în testare, până beneficiarul se plictisește și caută pe altul care să-i rezolve problema.
La un moment dat am ajuns să identific programatorii de înaltă clasă și pe cei pe cale de a deveni programatori foarte buni prin câteva semne pe care le-am considerat esențiale, precum:
- modestia;
- tăcerea;
- munca;
- ordinea;
- perseverența;
- concentrarea;
- disciplina.
Imediat ce o persoană îmi înșirea ceea ce știe el să facă și lista era mult prea bogată, o includeam în grupul celor care zic că se pricep la multe, dar de fapt nu știu să facă prea multe. Imediat ce vedeam niște for de programare cu ștersături și împrăștiate, se clarificau multe dintre minusurile celui care se credea a fi bun programator. Imediat de programtorul vorbea despre bogata sa e.xperiență dar nu avea cel puțin un program pe care să-l văd la treabă, îmi dădeam seama că respectivul doar se laudă. Imediat ce într-o discuție apăreau schimbări prea dese de variante de soluții, îmi dădeau seama că respectivul nu prea are capacitatea de a porni ceva și de a soluționa, căci el intervine și tot timpul modifică, fără să finalizeze vreun program.
În programare este esențială identificarea programatorilor de înaltă clasă căci lor trebuie să li se dea să facă programe mari și grele pe care ei au capacitatea de a le duce la bun sfârșit. Este deja o tragedie când se acordă un cec în alb unui programator lăudăros, fără rezultate, dându-i-se să facă un program greu, căci respectivul nu-l va face, va încurca lucrurile. Dacă ceea ce respectivul a făcut este dat unui programator foarte bun să continue, cu siguranță că programatorul foarte bun va arunca la coșul de gunoi acel program fără valoare și va lua el de la zero realizarea programului. Eroarea de management are riscuri mari în ceea ce privește depășirea de termene de predare a lucrărilor.



(06 ianuarie 2018)

No comments:

Post a Comment