Răspunsurile vehiculate pe tema aceasta sunt multe și, oarecum, neclare pentru cineva care dorește să învețe programare fără să aibă cunoștințe în acest domeniu.
Pe unele forumuri găsești useri care vorbesc despre ușurința cu care au învățat un limbaj de programare doar într-o lună. Alții contrazic și spun că nu ai cum să înveți programare pe care să o și aplici atât de repede, și că ai nevoie de cel puțin doi ani de învățare și practică intensă ca să profesezi.
Mai mult, pe rafturile librăriilor sunt cărți care vând rețete-minune, despre cum poți învăța Java sau un alt limbaj de programare în 7 zile, iar online poți găsi cursuri care promit că te fac programator în doar câteva săptămâni.
Deci, ce sursă să crezi?
Care este realitatea? Cât de greu este să înveți programare? Este relativ în funcție de individ? Ne putem pronunța realist când vine vorba de timpul de care ai nevoie să înveți programarea dacă ești începător?
Dezbatem acest subiect într-un mod cât mai realist și ancorat în realitatea domeniului IT, luănd în considerare toți factorii care influențează procesul de învățare, înainte să ajungem la o concluzie. Te invităm să purtăm virtual și deschis această discuție, mai jos:
Ce limbaj de programare vrei să înveți - și de ce?
Înainte de toate, gândește-te ce limbaj de programare vrei să înveți și de ce.
Vrei sa faci aplicații web sau aplicații mobile? Vrei să dezvolți aplicații business sau jocuri video? Ești pasionat de automatizare? Visul tău este să lucrezi la Google sau Apple? Sau poate vrei, pur și simplu, un venit foarte mare, cum ai auzit că au cei din IT?
Este bine să alegi ce limbaje de programare vei învăța și în funcție de obiectivele tale – în general, companiile preferă programatorii full-stack (care știu și Python, și Java sau C# sau HTML, deci sunt versatili), dar există și roluri specifice, cum ar fi de programatori web pentru partea de front-end development, care lucrează cu mai puține limbaje de programare, și deci nu trebuie să le “știe pe toate”.
Dacă nu știi sigur care îți este direcția și ai vrea ca primul pas să fie să te familiarizezi cu ce înseamnă programarea, poți începe cu Python, un limbaj universal, sau cu HTML și PHP, limbaje de programare specifice pentru front-end development, adică pentru a programa site-uri și aplicații.
Dacă să devii programator Full Stack este o decizie pe termen lung, pentru care va fi nevoie să studiezi aproape un an, cursul nostru Full-Stack Developer durează 10 luni si vine cu job garantat.
Poți începe cu un curs de durată mai scurtă, iar în câteva luni te poți lansa pe piața muncii. De exemplu, în cadrul cursului nostru de Front-end Development vei învăța limbajele de programare HTML, CSS și JavaScript, precum și framework-uri specifice în 4 luni, iar la final vei putea dezvolta site-uri dinamice și interactive, precum și aplicații web. Iar cursul online de Software Tester îți asigură formarea de care ai nevoie în mai puțin de 3 luni: înveți cele mai căutate tehnologii și limbaje de programare și dezvolți abilitățile soft de care are nevoie un bun tester.
Deci, nu există limbajul ideal de programare cu care să începi, ci există limbajul de programare ideal pentru tine și nevoile tale. Dacă ai nevoie de un pic de ajutor să decizi ce să alegi, poate te ajută acest infografic util și amuzant (cu atât mai amuzant dacă ești și fan Lord of the Rings), făcut de CarlCheo.com.

Pașii spre învățarea limbajului
Odată ce ai ales un limbaj, dedică timp celor 3 pași obligatoriu de parcurs atunci când vrei să înveți programare.
Pune bazele teoretice ale programării
Nu de puține ori ați auzit, probabil, că a învăța limbaj de programare este ca și cum ai învăța o limbă străină. Și o paralelă mai bună nu se putea găsi.
Un limbaj de programare conține litere (sau instrucțiunile elementare ale unui PC), cuvinte (unde te folosești de instrucțiuni pentru a forma/scrie programe), precum și sintagme sau chiar fraze întregi (unde combini programele scrise pentru a forma alte programe cu funcții complexe).
Învață despre limbajul de programare ales
Numai după parcurgerea celor de mai sus poți începe să scrii „proză” și poți trece la învățarea programelor specifice (Java, C++, HTML etc.).
Programează, programează, programează
Ca în orice domeniu, simpla învățare a teoriei este doar baza pe care poți construi specializarea în programare. Limbajele de programare se învață cel mai bine prin tehnica deschooling, unde predarea are un rol foarte mic iar învățarea propriu-zisă, prin practică, e rețeta succesului.
Așa cum zic englezii, practice makes perfect. Sau, pentru români, repetiția e mama învățăturii.Iar aici ne referim la repetiție în practică. Exersează constant, zilnic. Joacă-te cu limbajul pe care l-ai învățat și pregătește-te de un proces lung de trial & error. Doar așa vei putea progresa.

Deci, este suficient să te gândești cât timp ți-a luat să înveți o limbă străină și când ai putut scrie prima ta compunere sau când ai putea publica prima carte, ca să realizezi că 7 zile este o aproximare destul de nerealistă dacă ai dori să scrii cod bun cu ce ai asimilat în 7 zile.
Înveți programare singur sau la cursuri?
Înveți singur programare, online, sau îndrumat de un mentor? Metoda contează.
Pe lângă studierea în facultate, sunt multe modalități alternative de a învăța programare. Poți învăța singur, autodidact, te poți înscrie la un curs online în masă (MOOCs), în tabere de vară, universități alternative sau cursuri de formare profesională.
Cât timp salvează, de fapt, cei care învață programare de la zero, singuri?
Mulți spun că au învățat programarea singuri și că e o metodă bună, tocmai pentru că poți învăța și practica exact partea de programare care te interesează, fără să aștepți pașii metodici și înceți ai unui curriculum școlar. Și pentru cei cu grad de asimilare a informației mai ridicat, această metodă este, categoric, mai utilă.
Învățatul pe cont propriu te disciplinează și responsabilizează într-un mod în care îți va fi foarte util în plan profesional și e o modalitate de învățare pe care noi, aici, la Codecool, o încurajăm.
Însă, din experiențele noastre de code teaching de până acum, am aflat că nu este suficient și la fel de eficient ca lucrul alături de un mentor în programare. Cineva care să te ghideze, să îți ofere exact sursa de informație de care ai nevoie.
Bineînțeles, poți învăța principiile teoretice singur, însă când ajungi să pui lucrurile în practică și să rezolvi probleme de programare, mentoratul face o mare diferență.
Atunci când lucrezi singur, poți petrece ore, chiar zile, încercând să rezolvi o problemă care ți-ar fi putut fi explicată în 10 minute.
În tentativa de a rezolva totul pe cont propriu, poți cădea în capcana de a pierde foarte mult timp.
Mulți își doresc să devină următorul Zuckerberg și cred că programarea nu e treabă dificilă, doar au putut să o învețe și alții. Au auzit de mulți „unicorni” care au învățat să scrie cod singuri. O avem pe Margaret Hamilton, care a scris programul NASA de aterizare pe lună, Apollo, punând bazele unei industrii de 400 de miliarde de dolari, software development-ul. Din aceeași tabără face parte și Steve Wozniak, co-fondatorul Apple, care a oferit omenirii PC-ul și o altă industrie de miliarde de dolari. Lista poate să continue la nesfârșit, dar chiar nu e necesar. Și fiecare are un prieten care știe cod pe YouTube. Dar poate nu este chiar o coincidență că nu i-ai întâlnit niciodată., spune Adina Căciulata, Marketing Manager Codecool România.
Face diferența de timp un program de training în programare?
Există povești de succes cu oameni care au învățat programare de la zero, singuri. Dar, majoritatea oamenilor aleg un program de training sau un fel de școală formatoare când s-au hotărât că vor să scrie cod. De ce? Este destul de greu să decizi de unde să începi fără vreun fel de structură sau ajutor din exterior.
Când vine vorba de cunoaștere, internetul este o sursă de informație fără fund și tocmai din acest motiv nu strică să faci parte dintr-o comunitate care stăpânește deja această masă imensă de informație și care poate să-ți spună de unde să te informezi și ce este cu adevărat relevant pentru piață. Tocmai din aceste motive răspunsul este da, un program de training salvează destul de mult timp când înveți programare.

Care este rolul unui mentor și cum te poate ajuta să înveți programare (mai) repede și ușor?
Mentorul va fi cel care îți va oferi sprijinul personalizat de care ai nevoie pentru a ajunge la rezultate pe care le dorești. Spre deosebire de un profesor, va avea un rol pasiv în procesul de învățare a limbajului de programare. Nu îți va preda, însă te va ghida, îți va oferi feedback, va puncta exact lacunele și slăbiciunile pe care le ai și te va îndrepta exact spre sursele de informare online și offline de care ai nevoie.
Mastery Based Learning: despre cum înveți programarea în ritmul tău
Pe lângă mentorat, mai este o variabilă care impactează foarte mult perioada de timp necesară pentru a învăța programare.
Fiecare om este diferit, are abilități diferite și o capacitate diferită de asimilare a informației. Asta nu înseamnă că nu putem ajunge mai mulți la aceeași destinație. Cu siguranță putem, însă în ritm diferit.
Aici, la Codecool, ne-am gândit că este corect să oferim acces la informație și învățare tuturor celor interesați de programare, indiferent de ritmul de asimilare pe care îl au și tocmai de aceea am pus în aplicare metoda de învățare Mastery Based Learning.
Cum se aplică, mai exact, această metodă?
Prin Mastery Based Learning, cursanții își pot însuși materialele cursului în ritm propriu, urmând un raționament propriu, individual. Baza teoriei a fost stabilită de psihologul american din domeniul educației, Benjamin Bloom, în anii ’60. Acesta credea că majoritatea studenților pot avea un randament de aproape 100%, cu condiția să li se acorde suficient timp și ajutor pentru parcurgerea materialelor.
Unul dintre marile beneficii este faptul că fiecare cursant este responsabil cu procesul propriu de învățare, ceea ce stimulează motivația intrinsecă și ajută la dezvoltarea unei mentalități sănătoase. Și asta este ceva ce toată lumea ar trebui să reușească în zilele noastre.
Învață programare într-un mod organizat, la cursuri
Cum arată acest tip de învățare, practic?
Cursanții trebuie să treacă prin patru camere, având acces la una nouă doar dacă și-au însușit toate cunoștințele din cea anterioară.

Au la dispoziție un timp variabil în care să finalizeze un modul: pot petrece între 2-4 luni să finalizeze fiecare modul în ritmul propriu, timp în care lucrează la proiecte în echipă și beneficiază de mentorat individual.
Cum te avantajează pe tine această metodă? Vei fi pe deplin responsabil de propriul proces de învățare, păstrându-ți astfel motivația și dezvoltându-ți o gândire flexibilă.
Învață programare mai repede, lângă alți viitori programatori
Lucrul în echipă, în general, are foarte multe avantaje, care se aplică și în domeniul programării.
Atunci când înveți un lucru nou în echipă ai ocazia de a vedea probleme din perspective diferite și de a vedea că există mai multe moduri de a o soluționa, în funcție de bagajul de cunoștințe și intuiția fiecăruia.
Asumă-ți o poziție atunci când înveți programarea într-o echipă, fie că ajungi să fii primul din echipă, fie că vei fi ultimul. Ambele roluri te propulsează în procesul de învățare a programării: când vei fi ultimul, vei învăța tehnicile și abordările celor mai avansați și îți vei deschide mult mai repede viziunea asupra diferitelor task-uri de programare. Dacă vei fi primul din echipă, îți poți testa capacitatea de a coduce o echipă sau un proiect și îi poți inspira, în același timp, și pe ceilalți să țină pasul cu tine.
Orice rol ai aborda, cert este că interacțiunea și antrenarea reciprocă accelerează procesul de învățare.
Programarea este un domeniu accesibil și poate fi învățat de oricine cu minime cunoștințe, chiar dacă nu are vreo pregătire specială sau o facultate în domeniu. Dacă ești pasionat, ai șanse să înveți programarea destul de repede. Dar, ca orice lucru în viață, contează cum îl faci.
E important să îți faci un plan de învățare, să practici și să te asiguri că ești înconjurat de oameni pasionați, care să te inspire să fii mai bun – aici vorbim de un om care să te ghideze și colegi de clasă/curs, cu care să interacționezi și cu care să intri într-o competiție constructivă.

La Codecool, am creat un hub de învățare care să ofere toate condițiile de progres celor care vor să învețe programarea. Programul nostru are formare intensivă. Grupurile sunt conduse de mentori care ajută direct dezvoltarea fiecărui elev și adaptează continuu curriculumul în interesul echipei, iar cursurile noastre sunt acreditate de Ministerul Educației și Cercetării și de Ministerul Muncii și Justiției Sociale.
Programarea poate fi învățată în mii de moduri, dar credem că este mai ușor să fii interesat de exemplul pe care îl vei învăța. Cursurile noastre încep la perioade de tip stabilite. Studenții sunt împărțiți în două grupuri și se lucrează în săptămâni cu învățare practică și independentă, alternativ.
Alătură-te profesioniștilor în programare de la Codecool și învață să scrii cod!
Dacă bifezi cele de mai sus, vei învăța programarea eficient, într-un timp rezonabil – destul de lung cât să te asiguri că ai acoperit tot ce e esențial și destul de scurt cât să te asiguri că poți să te angajezi ca programator înainte să îmbătrânești.
Totuși… ce înseamnă timp rezonabil?
Este nevoie de un an pentru a învăța să faci programare cu adevărat
De ce un an? Pentru că sigur vrei să poți face față cu brio primului tău job de programator.
Chiar și așa, te invităm să arunci un ochi pe rețetele-minune, care îți garantează că vei învăța un limbaj de programare în 3 sau 7 zile. Cu siguranță, îți va folosi într-un fel – unul limitativ. Dar nu îți vor schimba viața și nu vei deveni un programator competent peste noapte sau într-o lună.
Ce poți face în 3 sau 7 zile este, poate, să înveţi sintaxa limbajului, însă fără să știi cum să o folosești și la ce este bună. Poate într-o lună vei putea învăța cum să îndeplinești anumite sarcini, însă fără să știi cum să programezi, efectiv.

De curând, a fost demontată teoria celor 10.000 de ore, promovată de Malcolm Gladwell (care spune că pentru a învăța ceva și a deveni specialist, ai nevoie de 10.000 de ore de studiu) cu teoria celor 20 de ore (că poți învăța un lucru nou în 20 de ore).
Ambele teorii sunt la fel de adevărate, însă totul depinde de nivelul de aprofundare la care vrei să ajungi. Dacă vrei doar să știi despre un domeniu nou, sigur, poți studia despre el 20 de ore. Dar, dacă vrei să și practici în noul domeniu și să ai credibilitate, din păcate, nu există scurtături.
Aceleași principii se aplică și atunci când vrei să înveți să scrii cod. Ca veterani experimentați în sectorul IT din Europa Centrală, aici, la Codecool, am lucrat cu mii și mii de programatori. De-a lungul experienței noastre în pregătirea cursanților, am studiat timpul mediu necesar pentru învățarea unui limbaj de programare și ce am observat este că, într-adevăr, acesta poate varia în funcție de ritmul fiecărui cursant.
De aceea, modulele de învățare create de noi au timp de finalizare flexibil, în funcție de ritmul de învățare al fiecărui cursant. Aceștia au la dispoziție 2-4 luni să finalizeze fiecare modul al unui curs în ritmul propriu, timp în care lucrează la proiecte în echipă și beneficiază de mentorat individual.
Ca timp mediu pentru a învăța limbaje de programare ca Java, PHP, .NET etc., este nevoie de aproximativ 4 luni de formare intensivă.Desigur, această perioadă se poate prelungi la un an, dacă tu, studentul, vei simți nevoia. Important este să ne asigurăm de înțelegerea fiecărui modul parcurs, înainte de a trece la următorul. Tocmai de aceea, cursanții nu pot avea acces la următorul modul decât dacă au finalizat modulul anterior, cu succes.
Lucrurile stau puțin diferit când vine vorba de pregătirea unui programator full-stack, unde durata aproximativă a unui curs este de 10 luni, la care se adaugă partea de practică de 6 luni, asigurată de Codecool celor ce aleg cursul nostru de Full-Stack Developer cu job garantat.
Ai parte de toate avantajele fie că alegi cursul online sau cursul de weekend care te pregăteste pentru rolul de Full-stack Developer.
Tu cât timp ești dispus să dedici pe zi, ca să înveți programare?
Dacă vrei să ajungi la rezultate bune în 3 sau 10 luni, trebuie să accepți că este nevoie să înveți programare zilnic. Noi, la Codecool, credem în pregătirea intensivă.
Ca program, cursurile Codecool seamănă puțin cu stagiu de pregătire tip internship. La cursul Full-Stack offline se studiază o săptămână din campus, cu prezența obligatorie în fiecare zi între orele 9:00 și 15:00 și o săptămână de acasă, alternativ. Pentru mulți, acest lucru poate părea ușor la prima vedere și nu simt studiul intens, tocmai pentru că lucrul la școală și cel acasă alternează.
În cazul cursului online, sesiunile de training se țin într-un spațiu digital pe care îl poți accesa de oriunde, dacă preferi această variantă de studiu.
Chiar și așa, aceste ore de training sunt echivalentul a 30-35 de ore de lucru/pe săptămână, ceea ce înseamnă ca vei dedica 8 ore/zi, exact ca atunci când mergi la un job.
Este o experiență de programare pe timp de zi în care săptămânile teoretice și practice se alternează. În săptămâna teoretică nu este necesar să intri în școală, cel mai important este să parcurgi programul în propriul tău ritm.
Deci, ești cu adevărat motivat să înveți programare?
Gândește-te bine la acest răspuns pentru că vei avea nevoie de multă motivație, fie că vei învăța singur, fie că vei învăța îndrumat, într-o școală alternativă.
10 luni pentru un program de Full-Stack Developer, 4 luni de training în programare web pentru rolul de front-end, 3 luni pentru formarea de care are nevoie un Software Teste, cer destul de multă motivație.
Pe parcurs, vei vedea că vor fi blocaje și tendințe de a renunța. Și este perfect normal, mai ales că este vorba de un program intensiv aici, la Codecool. Cel mai bine ar fi să te gândești la cum funcționezi tu mai bine: este mai ușor psihologic pentru tine să îți setezi un obiectiv pe care să-l atingi în 3-4 luni și să lucrezi către el sau poți să împingi obiectivele pe o perioadă mai lungă de timp?
Ești gata să cucerești lumea informaticii în 10 luni sau doar 3-4 luni?
Ce vei alege?
Ceea ce merită să reții este că nu există scurtături, dacă vrei să înveți programarea pentru începători așa cum trebuie.
7 zile îți pot oferi doar introducerea în tainele teoretice ale programării. Ca orice lucru nou pe care îl înveți, și scrisul de cod necesită timp și dedicare.
Iar pentru cursul nostru de Full-Stack Developer cu job garantat, vei putea plăti taxa de școlarizare numai după ce ai obținut primul loc de muncă într-una dintre companiile partenere, astfel că pe toată durata studiilor, cursul Codecool de Full-Stack developer este complet gratuit.
Dacă ești interesat de programare, începe cu noi!
Te încurajăm să ni te alături la cursul de Full-Stack Developer (10 luni), la cursul de Front-End Developer (4 luni) sau la cursul de Software Tester (3 luni)!
Îți garantăm informația și mentoratul de care ai nevoie ca să înveți programare într-un an sau mai puțin!