Înainte să-ți arăt care e calea cea mai bună pe care poți să o folosești ca să înveți programare, calea pe care clienții noștri o folosesc și care îi duce în punctul în care să se poată angaja ca și programator, o să-ți arăt greșelile pe care le fac foarte mulți oameni atunci când încearcă să învețe programare singuri. 

Modul greșit

Prima greșeală pe care o fac foarte mulți oameni e că încep să caute limbajul de programare perfect. Nu există limbajul de programare perfect. Depinde foarte mult în practică ce nevoie ai, ce nevoi ai să implementezi. În funcție de ce îți dorești tu să faci mai departe, poți să te consulți cu cineva. Cineva care să-ți spună care e limbajul cel mai potrivit pentru ce vrei tu să faci.

Și asta ne duce la a doua greșeală. În momentul în care tu vrei să faci web development sau mobile development, te duci la cineva care știe să facă chestia asta. Sau găsești cel mai bun limbaj pentru web development. Și începi să te specializezi, iar foarte mulți oameni fac greșeala asta. Se specializează prea devreme. Calculatoarele au cam același principiu de funcționare și din cauza asta bazele limbajelor de programare sunt foarte similare. Tu dacă încerci direct să înveți lucruri foarte specifice de programare web sau de programarea aplicațiilor, sari peste baze. Baze pe care trebuie să le înveți, să le ai bine consolidate. Începi efectiv să înveți niște detalii și atunci intervine învățarea mecanică. 

Și atunci un lucru care iarăși intervine pentru că te supraspecializezi e faptul că te uiți la exemple de cod. Te uiți să vezi cum sunt făcute anumite aplicații, asta fiind a treia greșeală. Deși e un lucru foarte bun să te uiți pe ce cod scriu experții, ce cod scriu oamenii care se pricep foarte bine în domeniu, chestia asta intervine mult mai târziu. Pentru că prima dată trebuie să te familiarizezi cu principiile, cu bazele. Să fii capabil tu să le aplici, să îți bați un pic capul, să te gândești cum ai face tu chestia aia, cum ai implementa tu ceva. Și abia pe urmă să treci în punctul în care să te uiți cum s-ar fi putut face mai bine. 

O altă greșeală care e foarte similară cu greșeala specializării e faptul că te gândești că vrei să înveți programare și vrei să fie simplu. Cauți pe internet care e cel mai simplu limbaj de programare. Găsești tot felul de postări pe net care îți recomandă un limbaj sau altul. Ajungi să cauți să faci lucrurile într-un mod simplu. Practic cauți calea simplă. Doar că programarea e un domeniu greu. Din cauza asta salariile sunt atât de mari. Pentru că dacă ar fi existat o modalitate de a învăța programare, atunci toată lumea ar face asta. Și implicit firmele ar putea să plătească mult mai puțin pentru un programator. Pentru că oricum există suficienți programatori sau ar exista suficienți programatori pe piață. Pentru că programarea e un lucru simplu. 

Asta ne duce la următoarea greșeală care e legată de a învăța programare simplu și anume, aplicațiile mobile. Foarte multă lume încearcă să învețe programare dintr-o aplicație. De ce spun că lucrul ăsta e rău? Pentru că în aplicațiile de învățat programare nu ajungi tu să scrii cod. Pur și simplu ai niște conținut teoretic pe care îl citești. Te uiți la niște grafice, la niște desene, dar nu ajungi tu să scrii cod. Nu ajungi să te joci cu codul, să faci modificări, să vezi ce se întâmplă după ce ai făcut o modificare. Să rulezi codul, să-l vezi în practică cum se comportă, ce se întâmplă acolo.

Ajungi să înveți foarte mecanic. Înveți ca și cum ai învăța o lecție la biologie pe care pe urmă trebuie s-o reproduci. Ori ca să ai succes în programare e foarte important să stai cât mai departe de partea asta. Interviurile în programare practic te pun pe tine să rezolvi o problemă. E super fain ca la interviu să-ți vină o întrebare cunoscută, o problemă pe care tu deja știi s-o rezolvi. De cele mai multe ori lucrul ăsta nu se întâmplă și chiar asta e evaluarea pe care încearcă firmele să ți-o dea. Să vadă cum te descurci în condiții noi, cum abordezi o problemă pe care nu ai mai văzut-o niciodată.

E foarte trist că mulți oameni o iau pe calea asta și ajung să învețe programare singuri, să învețe programare într-un mod mecanic. Stau doi trei ani să facă chestia asta și în momentul în care ajung să dea un interviu își pică interviul și se descurajează total. Încep să zică că programarea nu e pentru ei, că nu sunt făcuți pentru asta. Când pur și simplu era o greșeală în abordare.

O altă greșeală soră cu învățatul din aplicații pe mobil e învățatul din cărți, care e o greșeală chiar mai mare de atât. Foarte multă vreme oamenii aveau ca singura sursă de informare cărțile și atunci te gândești că logic, din ce am învățat până acum la școală, la facultate, peste tot pe unde am fost am învățat din cărți. Și atunci logic e să înveți și programare din cărți.

Doar că învățând programare din cărți ai 0 feedback. În cazul unei aplicații tu încă mai știi dacă ai răspuns corect sau nu. În cazul unei cărți ai pur și simplu cartea, cartonul, foile de hârtie și aia e. Poate mai e o rubrică de răspunsuri, mai e o rubrică de explicații. Dar acolo se termină tot. Ori în cazul programării tu vrei să scrii cât mai mult cod, să primești cât mai mult feedback atunci când faci ceva. Ori o carte nu poate să-ți dea chestia asta. 

Și ultima parte care iarăși e cea mai importantă e că foarte multă lume aude că dacă vor să se angajeze în programare au nevoie să facă un proiect personal. Au nevoie să demonstreze că au experiență, că pot să creeze aplicații. Nu o să se ducă la firmă și să stea degeaba, neînțelegând ce se întâmplă de fapt pe un proiect real.

Și atunci ce face foarte multă lume e că se uită pe YouTube la niște oameni care creează aplicații sau se uită pe diverse tutoriale. Ce fac ei e că copiază sau mai bine zis transcriu un proiect. Și ăsta e un lucru foarte distructiv pentru că de multe ori în cadrul interviului poți să ajungi să fii întrebat: Ok, am văzut că ai făcut proiectul ăsta personal.

Să zicem că ai făcut o rețea socială unde fiecare om poate să distribuie poze. Și acum eu te întreb pe tine. Cum ai face dacă pentru fiecare poză ai avea și o secțiune de comentarii? Cum ai implementa chestia asta? Doar transcriind cod, doar copiind cod, tu nu înveți cum a fost conceput codul ăla, ce se întâmplă în spatele lui, de ce lucrurile au fost făcute în felul ăla și nu altfel. Și ajungi pur și simplu din nou să faci lucrurile mecanic și asta te dezavantajează foarte mult în cadrul unui interviu. 

Modul corect

Și acum hai să vedem care e modul corect de a învăța programare. Hai să vedem calea pe care dacă o parcurgi ajungi să fii programator într-un timp foarte scurt și evitând foarte multe eșecuri și frustrări.

Primul lucru pe care trebuie să-l faci înainte să te apuci de lucrurile tehnice e să înveți cum să înveți. Asta înseamnă să înveți cum să-ți faci un program de lucru, cum să te concentrezi. Pentru că fiind o activitate intelectuală nu e ca și cum ai sta pe canapea mâncând popcorn și uitându-te la un serial. Ideea e că tu învățând cum să înveți, în primul rând faci economie foarte mare de timp. Asta am văzut-o iar și iar la foarte mulți clienți pe care i-am avut și foarte mulți oameni cu care am lucrat.

Chiar dacă cineva lucra 10 ore pe săptămână, când recomandarea mea era 20, se descurca mult mai bine decât cineva care lucra 15-20 de ore prin simplul fapt că lucrul ăsta era făcut bine. Adică în momentul în care persoana respectivă lucra, se concentra doar acolo. Mintea nu-i fugea nicăieri altundeva și asta îi permitea să asimileze informația mult mai repede. Pentru că atunci când faci programare, nu-i vorba de o învățare mecanică, ci de o învățare logică.

Tu practic trebuie să-ți dezvolți un nou mod de a gândi lucrurile. După aia înainte de a te gândi la tehnologii, de proiecte personale, înainte de a face orice, e foarte important să-ți pui bazele programării. Gândește-te ca și cum ai învăța o limbă nouă. Prima dată trebuie să-ți pui la punct cuvintele de bază, să știi cum să legi trei patru cuvinte să te faci înțeles. Deci trebuie să înveți bazele.

Bazele astea oricum sunt comune între limbajele de programare. Deci nici măcar nu te afectează atât de mult dacă începi cu un limbaj de programare sau cu altul. Atâta timp cât bazele le înțelegi bine și poți să le folosești în cod. Asta ne duce la următorul pas și anume să înveți cum să scrii cod singur.

Bine, nu mă refer la pasul ăsta să fii capabil să faci aplicații de sute de mii de linii de cod, să faci o clonă a Facebook-ului și să devii următorul Mark Zuckerberg. Pur și simplu să fii capabil să poți să rezolvi probleme simple. Să scrii cod fără să trebuiască să te tot uiți peste exemple, peste documentații, peste lecții teoretice. Și să-ți vină cumva de la sine, să-ți vină natural, să devină ca și felul în care vorbești română. Deci să nu ai bariere când faci chestia asta.

Cel mai ușor mod să-ți dai seama că ai ajuns în pasul ăla e că atunci când iei o problemă pe care vrei s-o rezolvi, când vrei să faci ceva, ai tot timpul măcar o idee despre cum să faci chestia asta și nu stai blocat uitându-te la calculator și căutând pe internet cum ai putea să începi. 

Și pe urmă vine partea finală. Practic dacă vrei să te poți angaja ca și programator sau să lucrezi ca și freelancer, trebuie să fii capabil să creezi o aplicație. Și atunci ăsta e următorul lucru pe care trebuie să-l înveți, cum să faci o aplicație, un proiect personal. Cel mai bine e ca până în pasul ăsta, tu să te concentrezi efectiv pe a scrie cod singur, doar că aici se schimbă lucrurile radical.

După ce ești capabil să scrii cod singur, e foarte important să înveți să cauți pe internet și să înveți tehnologia care e cea mai potrivită pentru a face o aplicație. Și ăsta e lucrul pe care îl facem și noi cu clienții noștri din programul de mentorat. În punctul în care ei sunt gata să creeze aplicații, începem o discuție cu ei: Ok, pe ce platformă vrei să fie aplicația? Cine vrei s-o folosească? Cum vrei să fie folosită? În funcție de lucrurile astea îi îndrumăm spre o tehnologie sau alta.

Deci de abia în punctul ăsta trebuie să alegi un limbaj de programare pe care să te specializezi. Și având un limbaj de programare, având documentația lui, deja poți să începi cu exemple de cod. Să te uiți peste ce cod au scris alții, să vezi cum au făcut o anumită aplicație. Să îți pui proiectul tău personal în practică, să-l creezi.

E foarte important pe urmă să ți-l pui și pe internet. În felul acesta alți oameni o să poată să vadă ce ai lucrat. Să vadă cât ești de bun, să vadă care sunt lucrurile pe care știi să le faci. Asta o să te ducă în punctul în care te poți angaja ca și programator. Pentru că o să poți demonstra că ai niște skill-uri.

Deci nu înseamnă că uitatul pe exemple de cod sau alesul unui limbaj de programare este un lucru greșit. Ideea e doar că lucrurile astea vin mult mai târziu în procesul de învățare. Nu are sens să înveți să faci aplicații cât timp tu încă nu știi să scrii cod singur, cât timp nu te descurci să vorbești limba asta nouă pentru tine.

Dacă ești începător și vrei să înveți bazele programării gratuit, fă-ți un cont pe https://wellcode.ro 

Dacă ești hotărât să lucrezi serios cu noi, înscrie-te la o ședință de consultanță gratuită =>  https://cariera.wellcode.ro