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:
Î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.
În acest sens, SDA oferă cursuri dedicate celor mai populare limbaje de programare: Java, Javascript și Python.
Iar cursul online de Software Tester îți asigură formarea de care ai nevoie în câteva 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.
Odată ce ai ales un limbaj, dedică timp celor 3 pași obligatoriu de parcurs atunci când vrei să înveți programare.
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).
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.)
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 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ă.
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 SDA, 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.
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.
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.
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 SDA, 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.
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ă.
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 SDA, 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.
Alătură-te profesioniștilor în programare de la SDA ș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?
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 SDA, 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.
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.
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 SDA, credem în pregătirea intensivă. Cursurile noastre de Python, Java și Javascript durează 280 de ore fiecare. Cursul de Software tester durează 120 de ore.
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ă.
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 SDA. 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?
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.
Dacă ești interesat de programare, începe cu noi!
Te încurajăm să ni te alături la cursul de Java (280 ore), cursul de Javascript (280), Python (280 ore) și software tester (120 ore).
Îți garantăm informația și mentoratul de care ai nevoie ca să înveți programare într-un an sau mai puțin!
Cele două școli și-au unit forțele! Împreună, oferim:
Înscrie-te acum în programul SDAcademy x Codecool și primește coaching personalizat pentru cariera ta în IT!