Kako da naučim programiranje?

Pre svega treba da postavite sebi pitanje da li je programiranje uopšte za vas. Postalo je opšteprihvaćeno da svako može da nauči da programira. Mogu sa time da se složim, ali mnogo interesantnije pitanje je da li svako može da postane uspešan programer? Da li svako može da bude dovoljno dobar da bi se time ozbiljno bavio? Na ovo pitanje će vam većina mnogo opreznije odgovoriti.





Kako da znate da li imate dobre predispozicije?


Prvo, potrebno je da volite tehnologiju, kompjutere, internet, da vas ove stvari ne plaše, već nasuprot da vas privlače. Morate znati engleski. Shvatite ovo ozbiljno, nemoguće je biti uspešan programer bez dobrog znanja engleskog jezika. Sledeće, najvažnije, potrebno je da imate razvijeno logičko razmišljanje. Da li ste dobri u rešavanju logičkih zadataka? Ne morate da budete u stanju da rešite najteže zadatke ovog tipa, ali morate da budete u stanju da rešavate one lakše, i morate da razumete rešenje ovih težih kada ga pročitate. Zapitajte se da li volite da rešavate ovakve zadatke, jer je ta naklonost veoma bitna za programiranje.


Ok sada kada znate da to jeste za vas, pređimo na glavni deo, kako da naučite programiranje?


Svako od nas usvaja znanje drugačije. Neko bolje uči kada čita, nekome bolje ide kada sluša usmena objašnjenja, nekome je učenje najlakše kroz praktičan rad. Zbog toga je bitno da se ne ograničite na jedan oblik učenja, barem ne na početku. Takođe, nije dobro ograničiti se na jedan izvor gradiva. Na primer, možda su u jednom izvoru dobro objašnjeni određeni koncepti, ali nisu objašnjeni opširno, nisu uključili u gradivo neke naprednije nivoe te oblasti. U drugom izvoru su možda opširno izneseni svi napredni nivoi, iako nije sve jasno objašnjeno, ali ne biste ni znali da postoje da ste se držali samo prvog izvora. Ovako možete potražiti u trećem, četvrtom itd. izvoru lepše objašnjenje.

Kada negde pročitate ili čujete da je određena knjiga "najbolja" za učenje Jave, pa onda na drugom mestu kažu da je neka druga "najbolja", na trećem... razumete već, nemojte da vas ovo obeshrabri. Kako da znate koja je "stvarno najbolja"? Nije ni bitno! Pročitajte ih sve! Na taj način dobićete mnogo kvalitetnije znanje nego da ste pročitali bilo koju jednu knjigu samu. Kada kažem pričitajte ih sve, ne mislim da ih čitate jednu po jednu od početka do kraja. Čitajte oblast po oblast iz svake naizmenično. Na primer pričitali ste šta su varijable u jednoj knjizi, zatvorite je i pročitajte šta su varijable u nekoliko ostalih knjiga koje važe za "najbolje". Shvatićete već taj prvi put da je ovo daleko bolji način učenja od čitanja jedne knjige. Isto kao za izvore (autore), važi i za same medije koji nam znanje prenose, za same načine učenja. Važno je da i njih kombinujemo. Počnite sa interaktivnim sajtom za učenje poput codecademy, ispratite to nekim aplikacijama za mobilni kao što je sololearn, zatim knjigama i youtube tutorijalima, izradom svojih malih projekata za vežbu, blogovima, lynda tutorijalima, podcastima, oficijelnom dokumentacijom itd... Naravno, uvek vrtite u krug isti deo gradiva kroz sve ove "platforme", pa tek onda pređite na sledeće "poglavlje". Po nekada se vratite da iz nekog izvora (novog ili starog) obnovite nešto što ste prošli ranije. Ok, možda nešto što vam je kristalno jasno nećete učiti na ovaj način "u krug", ali kada naiđete na izazovnije koncepte - obavezno! Nemojte da paničite, nema tu toliko gradiva kao što zvuči, relativno brzo se prelazi. Ali zato treba usporiti i ne juriti dalje dok nam se ne "slegne". Zato koristimo tu pauzu dok ne pređemo na nešto novo da utvrđujemo ovo što smo već naučili. Postoji još nešto što vam može nemerljivo mnogo pomoći da naučite programiranje, a to je da imate svog mentora. Mentor je neko ko već radi kao programer i ko može da vam pomogne savetima i odgovorima na vaša pitanja. Dešavaće se da tokom učenja naiđete na neki problem, i ne možete da pronađete rešenje nigde na internetu. U takvim situacijama možete pomoć potražiti na forumima, fb grupama itd, ali idealno je da imate mentora koji će vam pomoći.


Verovatno vas zanima koliko vremena je potrebno da se nauči programiranje?


Jako je teško odgovoriti na ovo pitanje jer je ne možemo utvrditi tačan trenutak kada je neko naučio dovoljno. Učenje se nikada ne završava, programeri uče celog života, tako da nije bitno kada ste naučili, već kada ste naučili dovoljno da počnete da radite kao programer. Tu granicu je teško odrediti, jer zavisi od radnog mesta. Treba da naučite dovoljno da znate ono što se traži za to konkretno radno mesto. Naučite osnove tih jezika, frejmvorka, tehnologija koje se traže i to je to. Moj savet je počnite da tražite posao što pre, ne zaboravite učenje se nastavlja i na poslu, i tek tada počinje pravo učenje. Sve ovo do sada je bila samo priprema, tako da ne treba da pokušavate da postanete ekspert da bi konkurisali za radno mesto. Naučite osnove. Koliko vam vremena treba za ovo, zavisi od vas, od vaše sposobnosti da brzo učite. Ovde je jako bitno da donesete odluku da želite da počnete sa učenjem i da se posvetite tome, i da u tome istrajete. Ukoliko ne živite sami, neophodno je da se dogovorite sa najbližima da vas podrže u učenju. Čak i ukoliko ste slobodni i sami, ne zaboravite da je neophodno da se odreknete svog slobodnog vremena. Učenje programiranja nije nešto što će proći bez ikakve žrtve. Trebalo bi da učite svakodnevno od 2 do 4 sata, ukoliko možete čak i više. Subotom, nedeljom, uvek! Ovim tempom trebalo bi da završite za 3-6 meseci, uz ponovnu napomenu da učenje u stvari nikada nije završeno.


Šta da učim prvo?


Zavisi u kojoj oblasti želite da budete programer. Trenutno su najpopularnije oblasti front-end web development, back-end web development, android development i iOS development. Za front-end preporučujem da naučite html, css i javascript. Za back-end html, php i sql. Za android javu i android apk. Za iOs počnie od swift-a. Ukoliko nikada niste imali dodira sa programiranjem, na primer niste u školi učili basic, fortran, paskal šta god, moja preporuka je da ne počinjete učenje programiranja sa html-om i css-om, jer to u stvari nije "pravo" programiranje, to jest to nisu "pravi" programski jezici. U tom slučaju, najbolje je da svoje učenje započnete sa osnovama Phyton-a. Ovo je jezik koji je najlakši za učenje za početnike, i dobro je da u njemu upoznate prvi put osnove programiranja, pa će vam posle učenje drugih jezika ići lakše.


Srećno kodiranje!

Comments

Popular posts from this blog

SEO za 2017

Shopify VS Woocommerce VS Magento - Koju e-commerce platformu odabrati?