Votul a spus: vorbim despre 10 lucruri suprinzătoare pe care le înveți la un doctorat în informatică. Unele sunt mai serioase, unele mai glumețe, altele de-a dreptul absurde. Problema e că făcând lista, m-am trezit că am trecut binișor de 10. Dar o să o iau ca în cinematografie: facem prima serie de 10 și apoi vedem după reacția publicului dacă mai continuăm sau nu :)
Mulțumesc pentru voturi și aștept comentariile voastre critice constructive.
Programatorul singuratic - specie pe cale de dispariție?
Pe vremea când mă frăsuiam de zor dacă să mă apuc sau nu de doctorat, nu mi-am pus nici o clipă problema că n-aș ști ce urmează să învăț. Cum ce? Desigur informatică și programare pe toate părțile și-n toate direcțiile.
Într-un fel așa a și fost, dar nu știusem deloc ce direcții ascunde programarea. Pentru că ce am învățat în principal în 3 ani de doctorat e că programarea e în primul rând o activitate - țineți-vă bine -...socială!
Imaginea clasică a programatorului singuratic volubil doar cu calculatorul și trăind pe dietă de Cola nu mai e atât de actuală. Programarea și-a depășit epoca de Vestul Sălbatic în care programatorul singuratic, mucalit și eroic își face programul propriu de la zero bazându-se mai mult pe inventivitate și sclipire decât pe unelte și metodă.
Există deja programe de sute de mii de linii de cod (și mai mari) dezvoltate de-a lungul anilor. Există deja o multitudine de biblioteci de cod, de componente, de platforme, de limbaje. Programarea e din ce în ce mai des distribuită. Aplicațiile pentru Internet ajung ușor la o complexitate comparabilă doar cu complexitatea unui aparat birocratic bine dezvoltat (n-am altă comparație mai bună când îți trebuie uneori o oră doar ca să configurezi și pui în funcțiune o astfel de aplicație pentru a constata după aceea că ai un bug și...ia-o de la capăt).
Pentru a stăpâni așa ceva, programatorii trebuie să lucreze cu adevărat în echipă. Poate acesta e deja unul din lucrurile pe care le-am învățat și nu mă așteptam: ce înseamnă cu adevărat a lucra și a coordona o echipă. Pentru că ingineria programării în final se reduce la două aspecte concrete: a îndruma programatorii cum să lucreze eficient în echipă și a le oferi măsuri concrete ale rezultatelor ca să-i ghideze. Și lucrul în echipă nu se rezumă la a împărți treaba (fie împărțirea echitabilă sau nu). Un început e programarea în doi (pair-programming), dar acesta e doar un aspect minuscul. Resorturile fine și deprinderile care trebuiesc formate țin de arta de a lucra cu oamenii. Și o echipă bună se face întotdeauna în jurul unor scopuri și valori comune.
Veți spune: dar stai puțin, vrei să zici că de acum programatorii vor fi extrovertiți și vorbăreți mai ceva decât jurnaliștii și cei din publicitate - ha ha? Nu, sigur că nu, programatorii sunt până la urmă în principal persoane analitice (altfel nu s-ar înțelege deloc cu noțiunea de algoritm). Dar vor deveni mai comunicativi și cooperanți între ei. Am văzut programatori relaxați, discutând, glumind, ajutând colegii coechipierii, umblând mai țanțoș decât modelele pe podium și sărbătorind împreună lansarea unui soft imens și de calitate, produs în timp record fără ore suplimentare. Nu e simplu și poate nici cel mai la îndemână și avem nevoie de practică, dar încercăm. Eu cel puțin încerc, și rezultatul zic eu că merită efortul. Mai am mult de învățat, mai am mult de greșit, dar am văzut că se poate. Dar voi? Ce înseamnă pentru voi lucrul în echipă la dezvoltarea unui soft?
Comments feed: RSS 2.0
Din primul paragraf, ma asteptam la o serie de 10 descoperiri.
Prima e simpla, si o faceai si ca "soarece de cubicul" :P
Urmează și restul de 10, dar ar fi fost prea aglomerație cu toate într-un post :)
:)
Într-adevar e nevoie de niște metodologii și de mai mult lucru în echipă; dar, parcă se insistă prea mult în direcția asta și calitatea programatorului nu prea mai contează.
Nu as zice ca chiar nu conteaza, dar revine cam pe locul doi dupa niste abilitati medii (minime?) de lucru in echipa (nici mie nu-mi place, dar cam asta e). Asta din trei motive majore: 1. nu sunt suficienti programatori foarte buni (nici pe departe) 2. o echipa de programatori mediocri care lucreaza bine impreuna pot face mai multe decat cativa programatori foarte buni care nu coopereaza suficient 3. un programator care nu lucreaza in echipa e cam periculos pentru o firma (de ex. daca pleaca, nimeni nu mai descurca codul ala prea repede).
The keks of 2019 salute you.
Cum mai e pe la doctorat ?
Ahahaha, fix la lucru' cu altii, lolz.