Ion IVAN, Alin ZAMFIROIU - Cariera de programator, Editura ASE, Bucuresti, 2017, 236pg, ISBN: 978-606-34-0154-1

A lamuri cateva aspecte esentiale din activitatea de programare, este necesar acum, din moment ce calculatoarele sunt la indemana tuturor si productia de tehnici si instrumente are un ritm atat de mare incat nu este valorificata deplin o tehnica si o alta cu mult mai eficienta ii ia locul. Programatorul modern traieste intr-o alta dimensiune decat programatorii de acum doua sau trei decenii, pentru ca acum nu mai exista niciun fel de restrictii. Totul depinde de fiecare persoana in parte si tocmai de aceea este important ca fiecare decizie sa fie luata in cunostinta de cauza. Rolul acestei lucrari este acela de a prezenta elementele absolut necesare oricarei persoane care este fie la inceput de drum, fie doreste sa inceapa un nou drum si acesta este de a practica profesia de programator. A face cariera in programare se impune indeplinirea unor conditii si parcurgerea unor etape, lucruri despre care se vorbeste in continuare. Asa cum vara nu e ca iarna, tot asa programatorul scrie programe. Nu este programator cel care nu scrie linii sursa, nu le ruleaza si nu vede ca ceea ce a facut este bun sau rau.
Un programator este o persoana care trebuie sa aiba o serie de calitati, pentru ca munca lui sa fie placuta, sa-i aduca satisfactii si mai ales sa se finalizeze printr-un element numit salariu, atat de necesar traiului de la o luna la alta si mai ales pentru asigurarea unui anumit nivel de confort. In programare nu exista criterii exacte din care sa rezulte cine este si cine nu este programator, inainte de a se apuca de scris programe. Exista barbati excelenti programatori, exista femei foarte bune programatoare, exista elevi care scriu programe deosebit de bine, dar exista si pusti care uimesc cu programele scrise. Asa ca varsta si sexul nu conteaza pentru a fi un programator apreciat. Conteaza in activitatea de programare felul de a fi al fiecarei persoane, capacitatea de a se adapta si mai ales forta de a privi cu obiectivitatea propria evolutei.
Obiectivul lucrarii este de a clarifica principalele aspect ale carierei de programator. Una este ca persoana sa fie programator si alta este ca persoana respectiva sa faca o frumoasa cariera in programare. Trebuie vazuta in detaliu activitatea de programare, trebuie aprofundat ce este un program si trebuie stabilit ce face un programator. Intrucat este vorba de cariera de programator, toate aceste elemente sunt dezvoltate din unghiul dezvoltarii personalitatii unei persoane care doreste sa fie intr-o pozitie speciala in raport cu calculatorul. Daca se discuta despre programator, programare si programe, fara a lua in calcul pe beneficiarul muncii complexe a carei finalitate este programul, se produce o abordare abstracta, nefireasca. Programatorul este in serviciul beneficiarului, iar gradul in care beneficiarul este satisfacut, da calitatea muncii desfasurate de programator. Nu exista activitate de programare de inalta calitate din care rezulta un program slab. Asa ca un programator bun, desfasoara activitati de calitate, respectand reguli, standarde si rezulta programe de calitate care ii satisfac pe beneficiari. Acum cand aplicatiile distribuite presupun colectivitati largi de utilizatori, problema calitatii produselor software se pune cu si mai mare stringenta. Asa ca numai o activitate de programare din care rezulta programe bune care sa-i satisfaca pe beneficiari, conduce la idea ca programatorul care si-a adus contributia, urmeaza o cariera de succes.
Mai intai sunt analizate calitatile ce trebuie sa le aiba cel ce-si propune sa intre in programare si sa urmeze pasii specifici unei cariere in aceasta profesie. Este vorba de caracteristici obisnuite, pe care le au marea majoritate a oamenilor, dar cel care alege sa fie programator, trebuie sa se autoanalizeze, sa vada masura in care acele caracteristici le are si crede ca le dezvolta sau nu le are si poseda altele cu care compenseaza. Exista si programatori geniali, dar masa mare a programatorilor este formata din oameni obisnuiti, dispusi sa lucreze intr-un anume fel, care accepta sa interactioneze zi de zi cu calculatorul si sa dezvolte activitati pentru atingerea unui obiectiv, scriind programe care se ruleaza pe calculator. Programatorul este o persoana, dar el trebuie sa devina o personalitate. Asemeni poetilor, programatorul are un stil al sau de programare, foloseste anumite resurse, are ritmul sau de lucru. Asa cum degetele de la o mana nu seamana intre ele, nici programatorii nu seamana intre ei. Unii au cateva trasaturi comune, in sensul ca folosesc acelasi tip de calculator, lucreaza cu acelasi limbaj de programare, au rezolvat aceleasi tipologii de probleme. Dar este foarte greu de gasit doi programatori care sa fie pusi sa scrie un program de 200 linii sursa, din care primele 100 sa le scrie unul, iar celelalte 100 sa le scrie al doilea. Puse cap la cap, sa dea un program care sa mearga de la prima rulare. Acest lucru este imposibil.
In carte este tratat contextul in care o persoana incepe sa lucreze in programare si parcurge etapele necesare atingerii unui nivel de maiestrie recunoscut de cei cu care lucreaza. Astfel, se zice despre acesta ca este un foarte bun programator sau se zice ca este cel mai bun. Trebuie spus ca drumul nu este simplu, dar in nicio meserie nu se progreseaza de la sine. Aici, rezultatele sunt vizibile, intrucat diferentele sunt date de calculator. Cu cat creste performanta unui programator, cu atat el este implicat in realizarea de proceduri mai complexe. Cu atat el ofera solutii dintre cele mai elegante si toata lumea vede aceste lucruri pentru ca programele lui se ruleaza de mai putine ori, durata de realizare este mai redusa si erorile de executie dupa lansare sunt foarte reduse, daca nu inexistente. Programatorul trebuie sa cunoasca o serie de secrete ale meseriei, pentru a merge cat mai departe in a se perfectiona.
Programatorii lucreaza la dezvoltarea de proiecte IT, unele mai mari, altele mai mici dar toate se bucura de apartenenta la una din doua multimi adica, un proiect este bun si apartine multimii proiectelor de succes sau un proiect este prost, nu functioneaza sau a fost intrerupta realizarea lui si apartine multimii proiectelor ce reprezinta insuccese pentru programator. Este important ca programatorul care urmareste o cariera in dezvoltarea de software sa fie extrem de atent si sa participe la proiecte cu sanse de succes importante, mai ales pentru faptul ca nici 3% dintre proiectele IT&C concretizate prin sisteme software nu intra in procese de reinginerie. Toti programatorii sunt panditi de riscuri la tot pasul si tocmai de aceea pentru a dezvolta o cariera de succes trebuie sa stie care sunt acestea si mai ales, trebuie sa le gestioneze, adica sa le elimine sau sa diminueze cel putin actiunea factorilor favorizanti. Chiar elemente care par la prima vedere a fi avantaje pentru dezvoltarea carierei de programator, daca depasesc un anumit prag, se transforma in contrariul.
Daca programatorul are educatia reutilizarii de programe, de proceduri, de secvente de instructiuni, reuseste cu sanse si mai mari in cariera sa, pentru ca a reutiliza inseamna a economisi, stiut fiind faptul ca produsele software nu au uzura fizica. Daca ele nu sunt afectate de uzura morala, reutilizarea de componente in noi programe este un lucru benefic. Numai ca acele componente destinate reutilizarii, trebuie gandite si realizate in acest scop. In niciun caz nu se reutilizeaza o componenta fara un nivel de generalitate ridicat si mai ales daca nu a fost testata si in orice moment prin erorile continute compromite intregul produs in care ea este parte.
Promovarea programatorilor este momentul asteptat de fiecare dintre ei. Aceasta promovare se realizeaza fie in cadrul aceleiasi companii, dar in cele mai multe situatii obtinerea unei noi pozitii se produce prin concursul dat la o alta companie. Continuitatea activitatii intr-o aceeasi companie este benefica pana la un punct. Acumularea de experienta trebuie inteleasa dincolo de aparitia rutinei si stagnarii profesionale. Un programator care si-a definit obiective clare pe termen scurt, mediu si lung, stie cu exactitate cat timp trebuie sa promoveze intr-o firma si care este momentul optim de a face saltul calitativ in meserie, dar intr-o alta firma. Numai ca o astfel de abordare presupune cunoasterea tendintelor de dezvoltare profesionala si realizarea concordantei intre nivelul propriu de performanta si companiile dezvoltatoare de software care au conditii de implementare a tehnicilor, metodelor, instrumentelor, limbajelor pe care programatorul le considera conditiile lui de promovare.
Dupa citirea cartii, stiind care sunt tipologiile de programatori, un tanar la inceput de drum stie ce i se potriveste, iar un programator matur, stie ce are de facut in continuare, daca nu a facut totul in meseria lui, lucru foarte greu mai ales in ziua de azi. Incheierea are rolul de a puncta in cateva cuvinte ceea ce inseamna o cariera de succes in programarea calculatoarelor, caci atat timp cat sunt calculatoare, vor trebui sa existe si programatori. Este demonstrat ca un automat, indiferent cat de complicat este el, nu proiecteaza si realiza un alt automat cu o complexitate mai mare decat a lui. Asta inseamna ca niciodata o revolutie in dezvoltarea software nu este realizata prin programarea automata sau cu generatoare de programe. Tot omul este cel care duce pe trepte superioare utilizarea computerelor, a caror perfectiune este data de acei specialisti ce se ocupa de hardware. Cariera de succes se construieste tot asa cum se construieste o casa, caramida cu caramida. Asa cum casa fara temelie solida are probleme de rezistenta, tot asa si cariera programatorului, fara soliditatea abordarii inca de la inceput, devine fragila, pana la epuizare.
Au fost folosite numeroase lucrari, incluse in bibliografia de la final.

revenire