Invatarea programarii si feedback-ul
De cand am vazut si video-ul cu Douglas Crockford din postul trecut ma tot gandeam la motivele pentru care cineva se apuca sau se lasa de programare.
Chiar daca multi nu mai stiu motivele pentru care au pornit pe acest drum un lucru e sigur, undeva a existat o motivatie si in general aceasta motivatie vine de la feedback.
Daca stam sa analizam cel mai simplu si cel mai popular limbaj de markup este HTML. In ziua de azi foarte multa lume stie HTML, de ce? Ai un feedback direct! Nu trebuie sa studiezi prea mult ca sa ai primele rezultate. Evident sa faci o pagina web nu se rezuma doar la HTML de baza, dar pentru un inceput de drum este o motivatie buna.
Pe de alta parte cred ca am auzit mai multi programatori amatori care vor sa lucrez in PHP decat in orice alt limbaj de programare (probabil si faptul ca lucrez in PHP sa-i influenteze pe cei care mi-au spus asta). Daca nu ne uitam la detalii e relativ ciudat avand in vedere ca traditional in scoala programarea se invata cu limbaje cum ar fi C, C++ si Pascal. Atunci de ce alege asa multa PHP? Simplu, daca sti HTML poti sa faci operatii simple fara sa studiezi prea mult, asta fiind una din partile bune ale acestui limbaj vs. cele de mai sus.
Dar mai sunt si limbaje cum ar fi JavaScript. Imi aduc aminte acum 7-9 ani cand erau foarte populare butoanele “nu apasa”. Am studiat (ca doar se putea vedea) scriptul din spate de la unul, de fapt era o combinatie intre alert(), confirm(), prompt() si window.open. Cat de ridicol poate sa para dar mai nimeni nu statea sa inteleaga ce se intampla de fapt acolo, majoritatea luau cu copy/paste. Probabil asta a facut JavaScript limbajul atat de popular in zilele astea… si atat de putin inteles.
Alaltaieri mi-a spus cineva ca “nu-i mai place programarea” de cand a intalnit obiectele. Suna cunoscut? De fapt eu cand am intalnit prima data obiectele a fost in PHP, iar autorul (Matt Zandstra) spunea “Object-oriented programming is dangerous. It changes the way you think about coding, and once the concepts have a hold on you, they don’t let go” (Teach Yourself PHP 4 in 24 Hours). Ce pot spune, nu mi se parea de loc periculoasa programarea asta la momentul respectiv, chiar de loc, de fapt mi se parea o chestie foarte ciudata si inutila. Pe de alta parte dupa ceva timp (destul de mult) am inteles care este rostul si avantajul acestei abordari.
Cu aproape un an in urma cred am descoperit o platforma foarte interesanta GreenFoot, ce e asa interesant? Pai niste profesori universitari se tot gandeau cum sa atraga atentia studentiilor asupra POO in limbajul Java. Ei au abordat lucrurile invers de dragul feedback-ului. Primul lucru pe care il vede studentul sunt obiectele in actiune, cat se poate de active si dinamice. Dupa asta studentul invata sa modifice metodele, apoi sa adauga metode si proprietati si de abea apoi sa mosteneasca clase, sa le construiasca, sa relationeze etc. Un pic invers fata de cum am invatat eu in facultate sa fac o clasa pentru gestiunea unei facturi sau a unei masini care… nu a ajuns niciodata sa fie o adevarata masina din punct de vedere vizual. Rezultatul platformei: studentii lucreaza cu obiecte chiar fara sa cunoasca detaliile limbajului si a programarii procedurale, apoi in timp intra in detalii, dar pe drum construiesc, dezvolta.
Tragand o concluzie, daca vrei sa predai programare trebuie sa cauti feedback-ul, daca vrei sa inveti programare, din nou feedback-ul este cheia. Eu de exemplu cand am invatat POO in facultate nu intelegeam mare lucru din clasele in C++ care le faceam, nu reuseam sa gasesc utilitatea cu adevarat, dar eu m-am straduit iar mai tarziu am inteles adevarata putere a POO. Cum ramane cu elevii care nu sunt motivati sa faca asta?