Samoobrazovanje pomaže profesionalcima da održe korak sa tehnologijom, a početnicima da se upoznaju sa oblastima koje ih interesuju.
Ono nam omogućava da sami prilagođavamo plan i program, stil i dinamiku učenja, pa se lako uklapa sa ostalim obavezama. Veoma je povoljno i često je dovoljna samo internet konekcija. Podrazumeva jaku disciplinu, a nudi mnogo zauzvrat.
O tome da se i programiranje može samostalno naučiti najbolje svedoči istraživanje Stack Overflowa koje je otkrilo da polovina developera u svetu nema visoko obrazovanje u svojoj struci, a mnogi nikakvo visoko obrazovanje uopšte.
Ova činjenica je ohrabrujuća za one koji počinju da samostalno uče programiranje sa ciljem da se jednog dana njime profesionalno bave. Kompanije, pogotovo startapi, često će vam oprostiti nedostatak relevantne diplome ukoliko imate adekvatno znanje i veštine i ukoliko brzo učite.
Portfolio, to jest skup vaših projekata, ima mnogo veću vrednost od CV-a i diplome zajedno, osim ukoliko nemate diplomu sa nekog prestižnog svetskog univerziteta. Većina kandidata na razgovorima za programerske poslove nema čak ni GitHub nalog, pa ćete ukoliko dođete sa tri relevatna lična projekta biti tretirani kao ozbiljan kandidat.
Kursevi
Odličan način za sticanje znanja iz programiranja su online kursevi. Kursevi — pre svega mislim na MOOC-ove — su se do sada istakli kao najkompletniji način za savladavanje različitih oblasti.
U suštini, dobijate fakultetsko znanje od najboljih svetskih profesora i predavača, ali sami gradite svoj program i određujete tempo učenja.
Većinu tih kurseva možete pratiti besplatno, a ukoliko se odlučite da platite za njih, zvanični sertifikati mogu činiti lep dodatak vašem LinkedIn profilu.
Važna odlika kurseva je dobra struktuiranost. Najčešće su podeljeni po nedeljama, a gradivo u okviru svake nedelje na manje celine sastavljene od video snimaka, teksta i testova provere naučenog.
Imaju fin balans između teorije i prakse, i uglavnom im ne nedostaje ni jednog ni drugog. Ukoliko želite više teorije možete pročitati neku od preporučenih knjiga ili neku knjigu po svom izboru. Ukoliko želite više prakse, možete raditi projekte ponuđene u okviru kursa koje će vam u nekim slučajevima pregledati sami predavači, a možete se upustiti i u sopstvene projekte što je uvek preporučljivo.
Sada jedan zanimljiv podatak — procenat završenih MOOC-ova je oko 15%. Samo 15% svih onlajn kurseva na koje se ljudi upišu oni i završe. To je poražavajuće.
Dakle, upozoreni ste: samoobrazovanje je teško i zahteva dosta discipline.
Ovde možete pogledati iscrpnu listu kurseva za sve oblasti računarstva i programiranja.
Knjige
U IT svetu koji se brzo menja, knjige se ne čine kao efikasan medijum znanja — dugo se pišu i brzo zastarevaju.
Sa druge strane, i razvoj softvera kao i celokupan IT ima svoje klasike. Postoje knjige koje imaju ogromnu istorijsku vrednost, ali su i dalje aktuelne.
Takođe, i mnoge moderne knjige mogu vam doneti dosta toga korisnog ukoliko ih pročitate dok su još sveže, a veliki broj recenzija će vam pomoći da napravite pravi izbor.
Za potpune početnike, knjige napisane kao udžbenici mogu dati najbolje rezultate. Možete ih kupiti u skriptarnici fakulteta, a školski pristup bi vam mogao pomoći ukoliko imate problema sa savladavanjem neke oblasti.
Knjige mogu biti odlična dopuna uz kurs, a neki kursevi imaju i preporučene knjige za čitanje odabrane od strane profesora.
Svaki programski jezik ili framework ima desetine knjiga posvećenih upravo njima, a odlične preporuke možete naći na Quora-i.
Pored knjiga možete čitati i blogove.
Blogovi će vas retko učiti tehničkim veštinama, ali ih je ipak korisno pratiti. Oni vam mogu dati uvid u to kako iskusni programeri gledaju na svet i na svoju profesiju, što vam može pomoći da provalite kako razmišlja neko ko je tamo gde biste vi želeli da budete.
Kao i knjiga, blogova postoji mnogo ali je samo mali broj njih zaista vredan čitanja, a još manji je broj onih koji će vam baš leći po stilu pisanja i tonu. I među blogovima su se neki izdvojili kao vanserijski dobri, a ja vam preporučujem Coding Horror.
Otkrijte svoj put
Ako ulazite u neku oblast po prvi put, može vam se desiti da ne znate ono što ne znate, tj. da nemate najjasniju sliku o tome kako bi ceo proces učenja trebalo da izgleda i na šta bi trebalo da se fokusirate.
Za ovo, ali i za sve ostalo, Google je vaš prijatelj. I ne samo Google — onlajn postoje mnoge zajednice i grupe ljudi koji će vam rado pomoći da definišete šta treba da naučite kako biste postigli određeni cilj, kao što su IT početnici, Quora, /r/learnprogramming i sl.
Što se tiče samog učenja i produktivnosti, postoje odlični blogovi na internetu koji govore upravo o učenju, tehnikama, trikovima i pristupima. Moj favorit je Scott H Young.
Ne zaboravite — rad
Ako postoji samo jedna stvar koju bih želeo da zapamtite iz svega ovoga, to je da morate mnogo da radite na sebi i svojim veštinama. Zadajte sebi projekte, prvo male, a zatim sve veće i veće. Za nekoliko meseci uhvatiće sebe kako radite stvari za koje ste ranije mislili da ih nikada nećete dostići.
Takođe, radite redovno jer taj zanatski deo programerskog posla ume brzo da se zaboravi. Kada vidite da vam dobro ide, dopunite svoje učenje nekom dobrom knjigom i krenite da popunjavate portfolio ličnim projektima. Za nekoliko meseci, imaćete šta da pokažete potencijalnim poslodavcima.