sâmbătă, 21 mai 2016

Ce inseamna sa fii programator ?

Ce inseamna sa fii programator?


Cu mai multi ani in urma sa fii un programator bun insemna sa scrii programe care functioneaza utilizand trucuri care reduc reduc timpul de executie si micsoreaza spatiul de memorie utilizat. Timpul programatorilor era ieftin iar resursele de calcul scumpe. Era vremea cand algoritmii de sortare erau inca subiect de comunicari stiintifice iar invatacei in ale programarii aflau cum sa scoata expresiile constante in afara ciclurilor, cum sa reutilizeze spatiul ocupat de variabile etc. Limbajul C utiliza cuvantul cheie register, indicand compilatorului sa mentina variabila respectiva intr-un registru  pentru a reduce timpul de executie. In aceeasi perioada instrumentul principal pentru testarea si depanarea programelor era instructiunea printf iar limbajul de asamblare era frecvent utilizat pentru inbunatatirea performantelor programelor. Inventivitatea era cea mai importanta calitate a unui programator. Erau multe de facut cu resurse putine. Programarea era o activitate undeva la limita dintre arta si mestesug. Programatori formau o casta cu un numar mic de membri. Existau job-uri suficiente pentru ei dar nu in exces. Nu existau preocupari pentru dezvoltarea unor instrumente care sa inbunatateasca productivitatea programatorilor sau sa le faca munca mai usoara (job security). Cine sa aiba nevoie de ele, cine sa plateasca pentru ele ? In timp, pe baza de cerere si oferta, pentru ca utilizarea tehnicii de calcul a ajuns sa se extinda mult si mai ales foarte rapid a crescut costul timpului programatorilor. Si asta in timp ce costul resurselor de calcul a scazut. Solutia - industrializarea procesului de scriere a programelor devenind rentabila utilizarea de programe pentru crearea programelor. Nu se mai cauta expresii constante pentru a le scoate in afara ciclurilor, se cauta elemente comune unor aplicatii dintr-o clasa pe baza carora se se construesc aplicatii generice configurabile pentru situatiile particulare. au aparut termeni noi - portabilitate, compatibilitate, interoperabilitate, standardizare. Aparitia ewb-ului a accelerat acest proces. Pentru multi mestesugari ar fi trebuit sa reinventeze iar si iar aceeasi roata care sa se potriveasca peste tot. Si asa s-a schimbat definitia unui programator bun. El el intelege diagrama UML,respecta metodologii, stie sa opereze cu medii sifisticate de dezvoltare a programelor, reutilizeaza componente, stapaneste, pentru limbajul in care scrie biblioteci cu sute de functii. Are la dispozitie o multime de ajutoare: editoare inteligente, compilatoare care optimizeaza codul in functie de arhitectura procesorului pentru care genereaza cod,  generatoare de programe, profilatoare de programe, depanatoare, validatoare etc. Nnu prea mai este un dezvoltator de algoritmi, este mai mult un combinator. Disciplina si memoria devin mai importante decat inventivitatea. Numarul celor care au ocazia sa "inventeze" ceva este relativ mic. Unii rezolva probleme cu nume noi ca: calabilitate, scabilitate, fiabilitate, securitate etc. Si se numesc arhitecti nu programatori. Altii se ocupa de ceea ce tine de industrializarea activitatii de  programare. Si se numesc creatori de tehnologii. Si mai sunt si alti care inventeaza aplicatii noi sau cauta domenii in care tehnica de calcul nu a ajuns. Si se numeste specialisti in marketing. De multe ori  programare inseamna configurarea de aplicatii, interfatarea unor aplicaatii, operatii de tip "completare de formulare". Doar existenta sistemelor embedded si a altor sisteme caracterizate de resurse limitate fata de imaginatia celor care inventeaza aplicatii noi, mai conserva necesitatea unor programe scrise linie cu linie si nu asamblate din alte programe. Numarul celor care lucreaza in acest domeniu este inca mic. Daca o sa fie nevoie de mai multe o sa cresca intai eficienta dezvoltatorilor de aplicatii. De exemplu prin perfectionarea instrumentelor cu ajutorul carora se dezvolta programe pentru astfel de sisteme. Programarea a devenit o meserie oricare alta, se invata, se practica, nu necesita calitati intelectuale deosebite. Ar fi interesant de stiut care o sa fie defeinitia  unui programator bun peste zece ani ?
La ce sa se astepte un absolvent care acum se pregateste pentru aceasta meserie ?Dar cineva care nu se care nu se pensioneaza in zece ani ? Va insemna activitatea de programare mai mult decat crearea semiautomata a unor pasionati de locomotive si vapoare, mai tarziu au fost pasionati se masini, avioane si de calculatoare (cel putin asa spun parintii). Trece si asta. O sa urmeze altceva.misterios si dificil.

Niciun comentariu:

Trimiteți un comentariu