16 Feb 2016

10 stvari koje morate znati pre nego što postanete programer


Sjajan programer se ne može postati preko noći. U stvari, ne postaje se ni u prvih nekoliko godina. Da biste postali kudikamo pristojan programer, trebaće vam vremena, neće biti lako, a verovatno ćete barem u nekoliko navrata poželeti da odustanete. Pouka glasi: budite jaki i nastavite da se trudite!
Za razumevanje programiranja iznad nivoa pukih osnova treba „otprilike“ jedna do tri godine. Počeo sam sa osnovnim HTML-om i CSS-om i na tome se dugo zadržao. Koncepti su mi polako postajali jasniji, a pisanje manjih programa više nije delovalo teško. Programer se ne postaje pukim čitanjem knjiga ili gledanjem videa na YouTube-u. Morate vežbati – po mogućnosti, svakodnevno.
Verujte mi na reč, neki od saveta koji se mogu naći po internetu su totalno besmisleni. Ne morate biti matematički genije da biiste naučili da programirate, niti vam treba pamćenje poput biblioteke. U današnje vreme su mnoge stvari koje radite dostupne, a uvek možete konsultovati beleške o onome što ste programirali pre par nedelja. Problem se javlja kada veliki brendovi krenu da pišu o programiranju i pokušaju da ga predstave kao neviđeno težak poduhvat. (Svakako, valja odati poštovanje, ali neka elitisti sa četrdesetogodišnjim iskustvom posvete vreme unučićima!)
Šta treba da znate pre nego što postanete programer
Pretpostavljam da smo već uzeli u obzir nekih desetak stvari, ali to je samo početak! Zanima me kako vama sve ovo zvuči, a ako želite – podelite sa nama svoj razvojni put. Uživam da čitam uspešne priče, čak i ako su počele loše.
1. Personalizovan način učenja
Prva lekcija koju svako mora razumeti je da učenje nikada nije isto za svakoga – nailazićete na drugačije resurse iz kojih ćete učiti i razmišljaćete o kreacijama koje se razlikuju od ideja drugih. Najbolji način da usvojite novi jezik (pa makar vam bio i prvi) jeste da potražite knjigu sa pitanjima i odgovorima o jeziku koji želite da učite.
Ovakvu knjigu bi trebalo da pročitate od korice do korice, a da pri tom ne taknete računar – potrebno je da prvo shvatite koncepte i razumete jezik (pa čak i ako pola informacija ne možete da zapamtite, biće i za to vremena). Iz tog razloga, tražite knjige koje u naslovu sadrže fraze kao što su „osnove“, „uvod u“, i slično.
2. Sve o projektima
Nadam se da ne moram da vam objašnjavam šta je projekat, ali ako planirate da učite programiranje – potrebno je da smislite šta ćete kreirati. Zašto? Pa, bez projekta ćete zujati unaokolo k'o muva bez glave – napredovaćete sporije i programirati bez cilja ili krajnjeg rezultata. To ne valja. Konstantno pokušavate da pokrpite krajeve, ali na kraju nemate dokaz svog truda.
Počnite od malih aplikacija i sajtova, naučite osnove pozicioniranja elemenata, a ako vas zanima razvoj softvera – pravite sopstvene pretraživače i slične kul stvarčice.
Uvek pođite od projekta!
3. Utvrdite cilj
Znate, nije teško u Google pretragu ukucati „kako naučiti Python“ – neću ni da proveravam koliko će rezultata ova pretraga doneti, ali verujem da se meri milionima. Problem sa ovakvim frazama je što pokušavate da naučite sve odjednom. A upravo to ne bi trebalo da radite.
Projekat može biti od koristi. Ipak, ako imate ideju šta zaista želite da stvorite – još bolje. Pretpostavimo da uz pomoć Python skripti želite da napravite program za pretraživanje i preuzimanje najnovijih pesama sa sajta Spotify. Šta god da je. Ono što je bitno da treba da pretražujete i učite namenski, a ne da izučavate sve o Python-u što nađete – uvodni tutorijali ne sadrže informacije o pretraživanju i preuzimanju, već samo teoretske osnove.
Tražite specifične izvore podataka za ono što želite da razvijete.
4. Budite realistični
Ipak ću reći: na početku će vam frustracija uvrtati želudac. Da biste se izborili sa ovim, potrebno je da postavite realistična očekivanja – šta možete da naučite i za koga možete da programirate. Nećete kodirati po 12 sati u cugu čim krenete da učite i nema šanse da razvijete novi Google za 30 dana.
Programiranje se ne razlikuje od učenja šivenja, vožnje ili vezivanja pertli! Razlika je u količini vremena koja je potrebna da bi se nešto savladalo. Kako vam ovo može biti od pomoći? Pa makar ćete znati za ovaj savet kad frustracija stigne. A to je uvek od koristi, zar ne?
5. Sintaksa je samo to!
Da, sintaksa je samo sintaksa. Ne učite programiranje radi sintakse (dobro, možda VI to činite); učite da biste razumeli dati programski jezik. Učite glagole i priloge tog jezika. Ne želite da naučite samo najjednostavnije reči, a da ne znate njihovo značenje. Ako posebnu pažnju obratite na suštinu programskog jezika, imaćete manje problema pri savladavanju drugih jezika u budućnosti.
6. Čemu služi dokumentacija?
Rećiću vam čemu. Da možete da je čitate i da iz nje učite! Svaki programski jezik ima zvaničnu dokumentaciju karakteristika i komandi, koja često sadrži i primere. I ne samo to, mnogi programeri (inženjeri i developeri) će rado razvijati sopstvenu dokumentaciju programskog jezika, koja dodatno povećava količinu dostupnih resursa.
Čitanje dokumentacije verovatno nije nalik čitanju romana, ali nećete verovati koliko toga možete naučiti i kreativno razmišljati kad napadnete to ludo uputstvo! (Nisam imao nameru da budem nepristojan, samo nisam skoro koristio tu frazu!)
7. Naučite sve alate!
Alate sam upoznao pišući na stotine blog postova koji razmatraju raznovrsne alate, aplikacije i druge resurse za programiranje; a poprilično razumem vrste alata koji postoje i koji od njih mogu biti od koristi. Ipak, nije u tome poenta.
Ovladavanje novim jezikom se retko svodi na sintaksu, simbole, atome i semantiku. Mnogi jezici funkcionišu u širim razvojnim okruženjima. Deo učenja obuhvata i način rada u tim okruženjima tokom razvoja i lansiranja vaših proizvoda. Uvek odvojite dovoljno vremena za istraživanje alata, dokumentacije i funkcija koje će vam biti od koristi u svakodnevnom radu. Čak i ako iz zabave učite jednostavan jezik – kao što je jezik za skriptovanje – imajte u vidu da jezik često funkcioniše u širem okruženju. //Erika Sadun
8. Društveno kodiranje
Koding, GitHub, StackOverflow, itd, itd. Bilo bi dobro da se uključite na ove društvene mreže za učenje. Osim što vam ovo omogućava da imate uvid u sve od značaja za odabrani jezik, ali i slobodnu komunikaciju – postavljanje pitanja i davanje odgovora. Ne može svako obezbediti sebi mentore i praksu. Nemaju svi prijatelje koji kodiraju. A stvari mogu da postanu veoma zabavne.
Učešće u ovim mrežama vam takođe omogućava da vidite na čemu drugi rade, a uvek bi trebalo da pregledate i pročitate kod koji vam privuče pažnju – naročito ako je u određenoj meri povezan sa vašim projektom. Ovo važi i za druge tipove društvenih zajednica – kao što su IRC kanali. Mreža Freenode ima obilje kanala koji se bave vašim omiljenim programskim jezicima, a ljudi su prijateljski nastrojeni i otvoreni za pružanje pomoći.
9. Programirajte za novac
Sumnjam da previše ljudi radi na ovaj način, ali kada prevaziđete inicijalne „prepreke“ u učenju, trebalo bi da što pre počnete sa honorarnim radom. Ovo će vam pomoći da intenzivirate svoj proces učenja. Imaćete klijenta koji čeka na završetak projekta, što bi trebalo da vam da dovoljno energije da još učite i da više radite. Poslove ovog tipa možete naći na sajtovima kao što su Elance, Freelancer, itd.
10. Učenik postaje učitelj
Upravo ovome ćete težiti. Nakon dovoljno učenja, počećete da učite druge. Ovo je apsolutno najbolji način da naučite više o onome što radite. Kako naći učenike? Možete probati reklamom od usta do usta ili putem lokalnih okupljanja. Možete imati i učenike preko društvenih mreža. Znam da je Quora odlično mesto za učenje i prenošenje znanja – ima tamo dosta pitanja na koja nema odgovora, koja predstavljaju dodatne šanse za učenje.
Postati programer
Trebalo bi da pogledate i ovaj post Sesili Karver; koji ne samo što pruža žensko gledište na učenje kodiranja, već pruža i dodatne ideje za najbolji pristup novootkrivenoj pasiji.
Da li želite da postanete programer? Da li ste razmišljali o tome? Možda već posedujete druge veštine u životu, možda vam nove veštine ni ne trebaju, ali želite novo iskustvo sa web-om i tehnologijom – u tom slučaju, svakako naučite da kodirate.
Izvor: 10 Things to Know Before zou Become a Programmer

prevod: Lana