Sfaturi pentru tinerii programatori
Ori de cate ori deschizi un blog pe care sunt prezentate in special subiecte de interes pentru programatori, gasesti in comentarii intrebari de genul:
→ ce cursuri ar trebui sa urmez pentru a ajunge programator? – daca se poate in 24 de ore;
→ ce sfaturi imi dati pentru a ajunge cel mai bun programator? – eu sunt oricum cel mai bun, pentru ca asa mi-a spus mama, dar acum vreau sa ajung cel mai bun programator;
→ am facut cursul de incepatori de la firma … si cred ca sunt o vedeta nedescoperita inca, ce ma sfatuiti sa mai urmez?
Si asa mai departe!!! Recunoasteti contextul?
Voi spune pe scurt povestea mea.
Am urmat cursurile a doua facultati, am pregatit elevi pentru concursuri scolare, am trecut pe web development, am invatat o multime de tehnologii de care am avut nevoie pentru a dezvolta proiecte comerciale pe frontend si pe backend in mod autodidact citind mii de pagini de documentatii, tutoriale, forumuri etc.
Nu cred ca sunt singura care am urmat acest drum.
Cred insa ca informatica si programarea nu se poate invata in 24-48 ore si ca majoritatea programatorilor au invatat singuri chiar daca au urmat anumite cursuri.
Cred ca dinamismul in care tehnologiile se introduc pe piata, dinamismul cu care clientii cer noi si noi aplicatii cu cele mai moderne tehnologii este o provocare continua la care nu poate face fata un om care nu este invatat sa invete la orice varsta si in orice conditii. Sigur, exista ca si in alte domenii anumite lucruri “la moda” si programatori dispusi sa sara pe ele in orice moment chiar daca inca nu sunt destul de stabile, dar pe de alta parte sunt si lucruri care exista deja pe piata de multa vreme si cu unele inbunatatiri se folosesc de o multime de ani.
Deci urmatoarele sfaturi vi le dau din propria mea experienta:
- creati-va o baza foarte solida de informatii initiale: inainte de a scrie cod scrieti si studiati algoritmi. Algoritmica si matematica sunt doua pietre de temelie foarte importante pe care trebuie sa le asezati chiar de la inceput la edificiul pregatirii dumneavoastra. Fara ele, multe lucruri nu vor fi asa ca la altii…
- scrieti cod in pseudocod si/sau scheme logice: va ajuta sa invatati sa ganditi un algoritm fara a avea un monitor de computer in fata. Viteza cu care scrii pe hartie va ajuta sa ganditi mai bine problemele. Anumite probleme de sintaxa se pot neglija daca scrii algoritmul pe hartie, astfel incat atentia este canalizata pe gasirea celui mai bun algoritm pentru problema data.
-
rezolvati probleme: rezolvarea unui numar mare de probleme de algoritmica si apoi de programare este cel mai important pas pentru a fixa o baza buna pregatirii voastre de specialitate. Urmati pasii de rezolvare a unei probleme, faceti analiza matematica temeinica a problemei, ganditi-va inainte de incepe sa scrieti cod la conditiile si restrictiile de care trebuie sa tineti cont in procesul de scriere a codului. Scrieti algoritmul in pseudocod pentru a pune in ordinea buna pasii de rezolvare ai problemei. Testati apoi codul cu diverse baterii de teste pentru a va asigura ca ati atins toate solutiile care pot aparea in cazul problemei voastre.
-
invatati sa impartiti o sarcina mai mare in probleme mai mici: va ajuta atat in programare cat si in viata de zi cu zi. Sarcinile mai mici se rezolva mai repede si mai usor aducand multumire si satisfactie.
-
gasiti-va o motivatie solida pentru a deveni programator: procesul destul de lung de invatare este plin de frustari si greutati. PROGRAMAREA NU ESTE UN LUCRU ELEMENTAR! Pentru a deveni programator trebuie sa inveti sa gandesti in spiritul programarii – de aceea nu poti deveni programator in 24h.
Dupa ce ti-ai stabilit exact motivatia pe care o ai, scrie acest lucru pe un stiker sau pe ecranul computerului ca sa iti apara in ochi de cate ori simti ca “predai armele”.
- gasiti-va tehnologia care credeti ca va place cel mai mult: piata actuala de IT are plaja de tehnologii atat de mare incat este de unde alege. Alege o cale pe care sa te concentrezi si sa te poti dezvolta cat mai mult. Nu este indicat sa mergi in paralel cu 5 limbaje de programare, tehnologii de frontend si backend, IDE-uri etc. Mai bine alege mai putine lucruri pe care sa le faci la un nivel inalt.
-
studiati cat mai multe resurse in directia aleasa de voi: fie resurse gratuite fie resurse platite, incercati sa studiati cam tot ce gasiti pe piata despre tehnologiile pe care ati ales sa lucrati. Creatorii lor le dezvolta in mod constant si continuu si nu stii aceste lucruri daca nu stai conectat permanent la ce se schimba. Nu conteaza daca sunt resurse scrise, video sau audio, free sau platite, cei care le-au scris si trimis in online le-au produs tocmai pentru a te ajuta.
–invatati sa scrieti cod corect, curat si comentat: pe proiecte mari existente pe piata se lucreaza de multe ori in echipe internationale formate din foarte multi programatori din toate colturile lumii. Daca nu ai un cod curat si bine documentat pe de o parte le ingreunezi si lor si tie munca, nu esti bine vazut in proiectul respectiv, cel care vine dupa tine sa lucreze pe codul produs de tine nu va fi deloc fericit – si nu este vinovat deloc.
-
fiti perseverent: in procesul de invatare porniti cu ideea ca problemele sunt acolo pentru a fi rezolvate nu puse deoparte. Si altii care au trecut de acest pas le-au invatat la randul lor, mai greu sau mai usor decat dumneavoastra. Fiecare problema rezolvata este un pas inainte.
-
unele lucruri sunt mai grele, altele mai usoare: ca si in viata de zi cu zi, unele lucruri, unele tehnologii si limbaje de programare sunt mai grele, altele sunt mai usoare. Cauta sa inveti lucruri care au o comunitate cat mai mare in spate. Vei fi ajutat sa raspunzi la foarte multe intrebari in procesul de invatare.
-
procesul de invatare trebuie sa il faceti in adancime nu in latime: invatarea aprofundata si temeinica a unui lucru este mult mai bine dacat invatarea superficiala a 10 lucruri.
-
nu te gandi ca trebuie sa stii totul: este imposibil sa stii tot. Pe de o parte se schimba foarte repede totul, pe de alta parte un limbaj de programare sau o tehnologie are foarte multe functii si lucruri pe care poate nici creatorii lor nu le stiu in totalitate. Le vei gasi cand vei avea efectiv nevoie de ele. Procesele de cautare de noi si noi informatii si conexiuni intre tehnologii trebuie sa fie un proces continuu.
-
programarea este minunata: am vorbit parca intr-un mod pesimist despre programare si despre greutatile procesului de invatare. Totusi sa nu uitam ca un programator scrie soft. El creeaza ceva. Uneori poti simti ca ai facut o mica opera de arta pentru ca ai gasit o solutie foarte frumoasa prin care ai rezolvat problema data. Sigur ca nu intelege toata lumea aceasta solutie dar nici picturile nu sunt intelese de toata lumea si asta nu inseamna ca nu sunt frumoase.