Ok, văd pe o grămadă de forumuri această întrebare. Mai nou, sunt întrebat de tot mai multe persoane pe messenger cum am învătat eu CSS/HTML/Javascript. Şi hai să le răspund tuturor, să fie toată lumea fericită. Este un post generalist, fiind valabil pentru ORICE platformă sau limbaj de programare.
În primul şi în primul rând, eu nu ştiu javascript. Da, sună ciudat, dar ăsta este adevărul crunt. Eu ştiu să folosesc jQuery şi cam atât. Dacă îl dau pe ăla la o parte… Sunt terminat. În schimb, îmi place să cred că ştiu HTML & CSS la un nivel mulţumitor, atât pentru mine cât şi pentru cei cu care lucrez.
În al doilea rând, trebuie să-ţi PLACĂ asta. Un exemplu clasic de „aşa nu” este cam pe orice forum mai mare şi începe cu :
Sal. Am 14 ani shi vreau sa invat programare. Pana akum stateam si ma jukam toata ziua CS dar mam plictisit si am zis sa fac un site mijto pentru clan. pute-ti sa ma ajutati? thx. pupici
(greşeli intenţionate, să nu se înţeleagă greşit)
În al treilea rând trebuie să cunoşti bine limba maternă (în cazul nostru româna) şi limba engleză. Din două motive:
- Cât timp nu ştii să vorbeşti şi să scrii corect româneşte, nu poţi învăţa o altă limbă. E ceva logic şi de bun simţ
- Cam tot ce ţine de programare este legat în mod direct de limba engleză. Că este documentaţie sau că este limbajul în sine, NU poţi face nimic dacă nu ştii engleză la un nivel acceptabil.
Programarea NU se invaţă din cărţi¹. Şi nici din tutoriale video (există tutoriale video de css, php, javascript, ruby, c#, etc). La unele am încercat să mă uit. Unele din curiozitate, altele dintr-o voinţă ciudată de genul „vreau să învăţ Ruby” şi de fiecare dată am tras această concluzie: nu se învaţă din cărţi! Este la fel ca sex-ul: poţi să memorezi toate imaginile din kamasutra, poţi să citeşti toate Playboy & Hustler, dar până nu treci la treabă, pe material real, nu ai de unde să ştii cum e
Majoritatea programatorilor pe care îi cunosc au învăţat programare cu diverse resurse online (articole/tutoriale scurte, nu întinse pe sute de pagini din care nu înveţi nimic) şi, cel mai important cu un proiect REAL. Eu m-am trezit peste noapte că trebuie să fac pentru un client front-end-ul ditamai aplicaţiei web. Am început cu prototype/scriptaculous dar, deoarece mi s-a părut prea încurcat şi nu găseam scripturile necesare, am trecut la jQuery.
Dacă nu ai un proiect real, îţi propui unul sau cauţi ceva gata făcut şi te apuci să-l modifici. Eu am învătat HTML salvând pagina de la Yahoo! şi apucându-mă să o editez. Desigur, asta se întâmpla prin 97-98 când abia descoperisem că există şi sisteme de calcul mai performante decât un HC
Vrei idei de proiecte? Caută un program (fie executabil, fie site) de complexitate simplă spre medie şi încearcă să-l refaci de la zero. Ai reuşit? Caută ceva mai complex.
Nu te satisface metoda asta? Aruncă un ochi pe Rentacoder.com (nu uita să-ţi faci cont în prealabil) şi caută proiecte. Nu contează cu cât sunt plătite! Eşti acolo să înveţi, banii îi laşi pe mai târziu. După ce găseşti un proiect provocator te apuci să-l faci. Nu contează că nu vei face nimic cu respectivul proiect.
Vrei să te apuci de programare web? Fă un CMS! Oh, nu, iar un CMS? E plin internetul de ele. O fi, dar câte sunt făcute de tine? Pentru a face un CMS de la zero ai nevoie de cunoştinţe de tot ce ţine de web: programare server side şi client side, poate un pic design, SEO, usability. Îţi pune la muncă toate simţurile legate de web development
Dacă ai avut tangenţe cu programarea până acum, deja poţi sări de bazele oricărui limbaj (în special web) pentru că tipurile de date sunt aproximativ la fel (boolean, integer, array, etc), singurul lucru pe care trebuie să te axezi este sintaxa. Apoi, cu manualul la îndemână poţi face orice. ORICE!
Ok, ai învăţat bazele. Care este următorul pas? FII LA CURENT cu TOT ce mişcă pe web despre acel limbaj de programare. Fii la curent cu noutăţile! Foloseşte un feed reader şi nu rata nimic. Eu am peste 20 site-uri în feed reader despre javascript. Încă vreo 10 despre wordpress şi vreo 15-20 despre html/css.
Cunosc pe cineva care a învăţat programare (web) după un tutorial video. Deşi are zeci de site-uri la activ (şi asta fără să exagerez!) nivelul la care este nu îl depăşeşte cu mult pe cel al unui începător. De ce? Pentru că merge! E corect? Nu neapărat… Citeam mai demult pe un site despre filozofia indienilor: „If it Compiles, Ship it”. Care este legătura? Ghici…
_____________________________________________
¹Programarea nu se învaţă din cărţi. În schimb, te perfecţionezi citind cărţi. Cunosc un programator care, deşi lucrează în domeniu de cel puţin 4-5 ani, a rămas fix la acelaşi nivel ca atunci. Iar asta nu este ceva neapărat bun…