Am citit cu mare interes articolul doamnei Irina Athanasiu -
Ce înseamnă să fii programator - apărut în numărul
trecut. Cred că sinteza ce ne-a fost oferită poate fi ea
însăşi o definiţie a programatorului din zilele noastre.
Programarea tinde să se industrializeze, să atribuie un rol tot mai
însemnat instrumentelor şi prefabricatelor iar inventivitatea pierde teren
în faţa rigorii şi disciplinei. În cele din urmă, e vorba despre
eficienţă.
Nu am de gând nici să completez şi nici să
contrazic spusele doamnei profesor. În schimb aş fi tentat să
răspund provocării din finalul articolului şi să speculez
pe tema viitorului meseriei de programator.
Dar cum speculaţia fără o miză
practică n-are farmec, voi pune puţin altfel problema: Cum ar trebui
schimbat sistemul de învăţământ pentru a pregăti
specialişti care să corespundă profilului prefigurat al
programatorului de peste zece ani? Dacă socotim patru ani de liceu şi
cinci de facultate... suntem în plină actualitate!
Abordând problema din acest unghi, o primă chestiune se
referă la nivelul pregătirii. Va trebui să crească, printr-o
specializare mai pronunţată în anii de facultate, sau va trebui
să scadă, fiind suficiente studiile liceale, eventual urmate de o
scurtă specializare?
Înclin să cred că va trebui să crească.
Deşi utilizarea pe scară largă a generatoarelor de programe, a
instrumentelor CASE (Computer Aided Software Engineering) şi a
bibliotecilor de componente pare să reducă efortul programatorilor,
experienţă îmi spune că de fapt doar îl redirecţionază
spre acele clase de probleme care necesită cu adevărat intervenţia
specialistului. Desigur că aceste domenii devin mai puţin legate de
rutina codificării şi tind mai degrabă spre zona arhitecturii
aplicaţiei, unde deciziile sunt mult mai grele şi implică o
cunoaştere profundă a întregului edificiu.
O a doua chestiune se referă la conţinutul
pregătirii. Va mai fi nevoie de algoritmică şi programare, sau
va fi orientată de la bun început spre ingineria programării,
administrarea proiectelor şi metodologii?
Greu de spus... Doamna Athanasiu zice: nu mai este un
dezvoltator de algoritmi, este mai mult un combinator. Citind această
frază, m-am întrebat care a fost ultimul algoritm interesant pe care l-am
elaborat. Mi-am amintit de unul din facultate, foarte interesant, dar complet
inutil. Un exerciţiu. Dar există şi-o altă perspectivă:
oare nu cumva tocmai antrenamentul din liceu şi facultate a făcut ca
problemele de algoritmică din lumea reală să-mi pară
banale? De fapt, chiar zilele trecute am dezvoltat un trigger recursiv.
Nu e deloc banal, dar nu l-aş trece în CV...
Cred totuşi că algoritmica rămâne, în cele
din urmă, esenţa meseriei de programator. Chiar dacă nu vom mai
scrie programe de sortare, chiar vom avea tot codul uzual în biblioteci, chiar
dacă mai mult vom combina componente, va trebui să înţelegem cum
funcţionează un framework, va trebui să ştim să
"lipim" componente, va trebui să ordonăm o serie de acţiuni
pentru a obţine un rezultat. Toate presupun algoritmică.
O chestiune extrem de controversată - mai cu seamă
în dialogul dintre generaţii - se referă la balansul între
pregătirea teoretică şi cea practică. Vocea tineretului
cere cu vehemenţă pregătirea practică şi se
revoltă împotriva bătrânului Pascal.
Cu toate că îmi voi atrage antipatia multor cititori,
cred că pregătirea fundamentală rămâne esenţială,
iar pregătirea practică este doar un corolar al acesteia. Mai mult,
cred că o cultură generală solidă valorează mai mult
decât abilitatea de a mânui un mediu de dezvoltare.
Mă grăbesc să mă explic, pentru că
presimt că, oricum, voi fi somat să o fac.
Eu am convingerea că industria de software nu a atins
nici măcar vârsta adolescenţei. Mai mult, cred că direcţia
în care se îndreaptă este fundamental greşită. Programele mamut
pe care ni le furnizează astăzi vor ajunge să se surpe sub
propria lor greutate. Cu câţiva ani în urmă, Larry Ellison ne-a spus
că tehnologia client/server a fost o greşeală. Aşa vor face
şi alţii. Mai devreme sau mai târziu, industria de software îşi
va schimba tehnologiile, metodele şi uneltele. Va trebui să fim
pregătiţi să ne schimbăm viziunea iar fundamentele ne vor
ajuta mai mult decât o sumă de deprinderi la care, oricum, va trebui
să renunţăm.
Undeva, în laboratoarele unor universităţi sau în
mintea unor vizionari, se prefigurează un viitor care ne va surprinde. Nu
vom avea parte de plictiseală.
Şi vom avea nevoie de mulţi programatori...