Astazi voi scrie putin – sunt extrem de obosit, imi cer scuze.
In a noastra facultatea-tehnica, de aici, Germania, profesorii se chinuie sa invete. Am doua exemple cu oameni peste 60 de ani: unul programeaza constant in C, parseaza date, interogheaza DNS-uri si persista datele in sql(lite); altul imi spunea astazi, in timp ce ne faceam plimbarea de dupa cei 9 km de fuga saptamanali (!), ca invata cursurile de C si C++ pentru a putea evalua programele studentilor dincolo de ‘merge’/'nu merge’ sau rotunjiri potrivite (double + 0.5 = int, dupa cast).
Am citit saptamana asta intrebarea cuiva si toti raspunsesera cu nu – era daca poti invata programarea in 21 de zile si credibilitatea cartilor care promit asta (nici eu nu cred ca este posibil). Sung sigur ca oamenii de care am pomenit mai sus sunt foarte constienti de efortul necesar pentru a invata lucruri noi. Doar numai a sti nu ajunge. Probabil ca toti cunosc, pana la urma, chiar si batraneii vestiti din facultatea noastra mioritica (din povestiri adunate) – la fel ca si atunci cand fugi, pana la urma, nu trebuie sa termini ca sa stii ca este greu; exista un prag psihologic de care se lovesc toti cei care incearca, fie ca termina sau nu. Al doilea (prag) este puterea de a relua experienta. Si asta admir cel mai mult.
Prin contrast (dar precaut spus, am experienta colegilor de facultate mai mult decat pe cea a celor de munca), colegii refuza, in general, sa-si schimbe si numai vocabularul: in timpul unei prezentari, niste studenti din ciclul bachelor spuneau ca duc dorul mai multor cursuri de ‘programare Windows’ si Java, ei fiind total impotriva a tot ceea ce insemna Linux si C++. Aberatia este evidenta, sper. Ceea ce admirau ei la Java era faptul ca in Java aveau Eclipse-ul, care ii avertiza imediat de eventualele greseli din cod. Nu stiu insa de ce erau cuceriti de Windows (logica raspunsului nu-mi explica).
Mereu apare intrebarea daca se poate programa ‘liber’ pe proiecte, aici, se negociaza dreptul de-a alege. Nu mi se pare, in sine, gresit – dar limbajele au avantaje si dezavantaje iar proiectul trebuie sa tina cont de ele. UN caz: nu-mi explic situatiile in care se face efortul de a lucra cu Java atunci cand functionalitatea sta in aplicatii native si solutii JNI.
Bun, exemplele nu sunt poate cele mai fericite. Parerea mea este ca limbajul de programare nu conteaza atat de mult si ca fundamentele sunt structurile de date (cum sortez? ce e un hash? in ce structura adaug si gasesc elemente in timp optim?) si motivatiile matematice (cele simple, gen complexitate sau master) – dar facultatea ii invata pe cei de aici cel putin doua limbaje. Iar proiectele sunt simple, asa ca fixul pentru un singur gen de solutie, indiferent de problema, atunci cand pregatirea contine mai multe (solutii), este… hm. Cat de repede vor iesi din ritmul profesiei daca se inchid flexibilitatii?
Multi lasa impresia de inflexibilitate, dar e numai o impresie. Cand se vor lovi cu capul de asfalt vor abandona ideile anterioare destul de repede. Toti avem fixurile noastre, iar fixurile sunt create de lene. Am testat odata ceva in 2-3 feluri, am vazut ca un fel merge bine: ulterior, folosim doar modul ala de rezolvare. Iar oricine va veni cu ideea ca poate s-a schimbat situatia intre timp si au aparut si solutii mai bune, sau ca solutia nu s-ar aplica in toate cazurile, e “un urat si un prost” care nu trebuie bagat in seama. (Citatul vine din partea lui Linus Torvalds : “ugly and stupid”, din prezentarea lui “git”).