Search the Community
Showing results for tags 'best-practices'.
-
Bun, vad tot mai des aceasta intrebare pe forumuri (nu doar RST). Mai nou, primesc mesaje de genul: - Cum ai invatat sa programezi ? - Cat a durat ? M-am gandit sa raspund tuturor, si cu aceasta ocazie poate iese un tutorial din care fiecare va avea cate ceva de invatat. (PS: astea sunt intrebarile gresite puse de oricine sperand ca daca li se da un raspuns de genul: "am invatat singur si mi-a luat 3 luni" , atunci automat si ei vor putea face acelasi lucru. Acestia din urma nu iau in calcul urmatoarele: poate cel pe care l-au intrebat a avut un background solid poate ca el si-a dat intr-adevar interesul si a vrut sa devina cineva / sa faca ceva poate ca ceea ce a invatat el nu se va potrivi cu ceea ce vrei tu sa inveti In primul rand, pentru a incepe o cariera in programare, fie ea web sau software, tre' sa va placa. Tre' sa va doriti sa vreti sa realizati singuri ceva, iar la sfarsit, dupa multe ore nedormite sa ziceti: "Ba, da ! Uite ce-am facut. Singur". Fara pasiune, putina dorinta si entuziasm veti ajunge niste wannabes (refference) care vor aspira intotdeauna la ceea ce fac altii, ei nestiind sa faca practic..nimic. (Been there, done that) In ciuda faptului ca majoritatea se apuca de programare pentru: bani, a fi hackeri sau a da cu DDoS in cel mai bun tovaras pe Skype, exista si pusti pasionati, care vor sa invete pentru ca le place. Pentru ca vor sa creeze, sa se perfectioneze si sa-si atinga un scop: scopul de a deveni la un moment dat printre cei mai buni. Pe scurt, unul dintre pasii catre o viata de programator este dorinta / pasiunea. Nu devii Guido van Rossum (refference) pierzand timp, cersind VNC-uri / root-uri / scan-uri pe toate forumurile. In al doilea rand, pe langa incredere, pasiune si dorinta, ai nevoie de putin creier. Si aici imi voi permite sa impart programatorii in trei categorii: cei care se nasc cu darul de a programa cei care invata sa programeze (si reusesc sa o faca intr-un mod foarte ok) cei care cred ca au invatat sa programeze, se mint, si stagneaza pe intreg parcursul carierei Voi incerca sa fiu scurt si la obiect, pentru ca nu imi sta in fire sa tin prelegeri de mii de randuri. O mica schema: Inainte de a te apuca sa programezi, exista niste reguli de bun simt la care trebuie sa te gandesti si pe care trebuie sa le iei in calcul: Cat timp nu stii sa vorbesti si sa scrii corect in limba romana, nu poti invata o alta limba. Cam tot ce tine de programare e legat in mod direct de limba engleza. Ca este documentatie sau ca este limbajul in sine, NU poti face nimic daca nu stii engleza la un nivel acceptabil. Acum ca am trecut de aceste doua etape, imi permit sa mai fac o mica observatie, din propria experienta: Programarea nu se invata din carti ! Majoritatea programatorilor pe care ii cunosc au invatat programare cu diverse resurse online (articole / tutoriale scurte, nu intinse pe sute de pagini din care nu inveti nimic), si cel mai important au invatat prin a dezvolta un proiect real (fie el cat de mic). Programarea e ca futaiul - poti sa te uiti la o carte cu 13 pozitii o zi intreaga. Daca n-ai o gagica pe care sa experimentezi, te uiti degeaba. Asa si cu cartile. Poti sa citesti 13 carti de C, daca nu pui in aplicare ceea ce citesti, degeaba. ( asta apropo de densitatea cartilor - recomand articole scurte, la obiect decat carti cu 2000 pagini ). Remember: NU poti depasi nivelul de incepator daca ramai la carti / tutoriale. Acum sa nu credeti ca: "Ia uite, s-a trezit si asta sa vina aici sa scuipe 3 cuvinte si sa-si spuna parerea de cacat". Pe mine unul, ma doare la stromeleag daca intelegeti ceva din ce scriu sa nu. Important e ca voi sa deschideti ochii si sa incepeti sa realizati ca daca vreti sa faceti ceva in viata, va trebuie un minim de efort. Cat dureaza ? Eu m-am apucat serios de 5 ani si inca am senzatia ca stiu extrem de putine. De la caz la caz, si tinand cont de tipul de programator la care te incadrezi, poate dura de la 1 an la o viata intreaga. Pana si Guido van Rossum a spus ceva de genul: "Chiar daca eu am inventat acest limbaj de programare, pe o scara de la 1 la 10, mi-as da nota 9. Pentru ca sunt constienti ca sunt altii care il stiu deja mai bine ca mine". Deci, nu timpul e problema. Conteaza sa vrei, apoi vei vedea ca timpul e irelevant. Let's dig in a bit: Reguli de aur: un program trebuie sa fie scris in asa fel încat sa poata fi citit de catre oricine. fa bucatile in asa fel incat sa intelegi usor ce face fiecare fara a trebui sa stii cum se face. ( Domnul Djikstra - in olandeza se citeste aproximativ Daicstra, recomanda o tactica veche de pe vremea lui Cezar: divide et impera ( adica: imparte si stapaneste). Asa e bine sa scrieti programele - in bucati cat mai independente unele de altele care interactioneaza intre ele in moduri cat se poate de clare si simple. un editor inteligent reduce handicapul unort fisiere mari, pentru ca va permite sa va mutati cautand automat aparitiile functiilor si variabilelor. invata sa faci debug (din pacate, cunosc multi programatori de duzina care intreaba: Ce-i aia ?). E cazul sa cautati si sa vedeti de ce e bine sa stiti asta. Hai, putina mobilizare Si ele pot continua (portabilitatea codului, comentariile, fiabilitatea, etc.), insa de baza astea sunt. Sa luam ca exemplu un kiddo care vrea sa invete un limbaj de programare: 1. Stiu limba romana ? O stiu 2. Stiu si engleza ? Nu prea, dar am de gand sa schimb asta - mentalitatea dorita 3. Ce limbaj vreau sa invat ? Pai, hai sa vedem ce as vrea sa fac. 4. Am ajuns la concluzia ca vreau sa invat Python. Now what? 5. Citesc si ma interesez daca Python e pe placul meu. Face ce-mi doresc ? Face. Ma ajuta sa ajung acolo unde vreau ? Da. Exista documentatie cacalau in caz ca ma incurc ? Exista. 6. Ma apuc de treaba. Cu probleme simple. Imi bat capul, incerc sa-mi dau seama. Nu reusesc. Fac debug. Intreb lumea. 7. Am invatat "the basics". Trec la lucruri mai complicate. Fac un mini-proiect. Fac scannerul ala de il ceream din saptamana in saptamana pe RST si luam ban de la nenorocitul de @hades Nu mai dau bani pe el, e doar al meu, ba chiar pot sa il vand. Si asa toata lumea e impacata: tu ramai cu cunostintele si scannerul, noi ne bucuram ca nu mai esti cretin si tot asa. E ca un lant trofic. Si crede-ma ca daca ajungi la nivelul la care vei putea face un scanner, nu-l vei face. Vei vrea sa faci chestii mult mai complexe. Voi inchide topic-ul asta cu un citat pe care il dau de multe ori exemplu: "As soon as we started programming, we found to our surprise that it wasn't as easy to get programs right as we had thought. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs." Voi mai adauga idei pe masura ce voi avea mai mult timp.
- 6 replies
-
- 25
-
- programming
- logic
-
(and 2 more)
Tagged with: