
Kako (ni)sam postao programer
„Kako ne možeš da nađeš posao, ta tvoja struka se baš traži...“ – u praksi meni i nije išlo baš tako lako.
Posle završenog fakulteta, spreman da pokažem svoje znanje aplicirao sam na svaki konkurs koji je izašao u tom trenutku. Tema koju sam odabrao na diplomskom nije bila adekvatna za traženje posla u Srbiji, zato sam i smatrao – „Ok sve me podjednako zanima, valjda će biti nekog posla – šta ne znam naučiću“. Nažalost, ova taktika nije bila delotvorna. Preko 150 poslatih CV-jeva i bez odgovora. Utešiću sebe da je to bilo zbog tzv. SEKE, koja je počela 2008.
Ono što bih vam savetovao da ako dođete u situaciju sličnu mojoj, je da uporedo sa slanjem biografija na adrese različitih firmi, pogledate i mogućnosti prakse dok ste još na školovanju ili ako ste već odlučili da prvo završite fakultet pa da tražite posao(kao ja), da taj period nađete gde možete biti na praksi – makar i besplatnoj.
Koliko god da mislite da znate posle fakulteta – varate se. Diploma fakulteta meni znači samo da je neko sposoban da uči i da završi započet posao do kraja. Naša struka je sama po sebi takva da ako ne radiš na sebi konstantno i ne usvajaš nove tehnologije koje se pojavljuju – diploma informatičara će ti vredeti isto kao diploma fakulteta opštenarodne odbrane.
Danas postoji mnogo više sajtova na kojima možete dalje usavršavati svoje sposobnosti, pa će vas čak možda to i opredeliti i usmeriti za neku od grana programiranja. Pomenuo bih Coursera, Udemy, edX, Udacity na kojima možete uzeti pojedinačne kurseve koji vas interesuju. Na Coursera sajtu, možete odabrati specijalizaciju koja će vas kroz 5,6 kurseva i završni projekat dovesti do: · Znanja i rešavanja nedeljnih zadataka · Sertifikata · Finalnog proizvoda koji možete staviti u CV
Uskoro bi trebala da počne sa radom domaća platforma Zamphyr, te bi eventualne probleme koje imate pri slušanju predavanja na engleskom jeziku mogli lakše da savladate.
Apliciranje na posao
Ne plašite se da aplicirate i aplicirajte što više, ali se odlučite za jednu granu jer je velika verovatnoća da ćete pitanja na jednom razgovoru koji niste prošli u jednoj firmi, dobiti na drugom razgovoru u drugoj firmi. Ako ne dobijete posao „iz prve“ shvatite to kao praksu dok ne budete izverzirani i sa dovoljno znanja da dobijete posao koji želite. Opisaću vam razgovore na koje sam ja išao možda vas bude manje strah da aplicirate, a možda se i bolje budete spremili za izazove.
Java Junior Developer
Razgovor sa HR-om je u suštini svuda isti i ako imate problem kako da najbolje predstavite sebe, šta treba da kažete i šta ne treba da kažete, pretresite YouTube i nađite primere. Meni je tu pomogao kurs koji sam radio na Udemy platformi, ali svakako možete naći i besplatne primere.
Imate dve vrste zadataka na ovom testu. Jedna vrsta zadatka je kod koji dobijete, a vaš je zadatak da zaokružite tačan odgovor šta je output koda
Druga vrsta su teorijska pitanja i verovatno će biti nešto od sledećih pitanja: Indeksiranje SQL baza – prednosti i mane, šta je ACID i zašto je bitan za SQL. Šta je polimorfizam, šta su apstraktne klase – zašto postoje i kako se nasleđuju. Apstraktne metode, interfejsi, šta znače ključne reči final i static. Kako se dele kolekcije (mape, liste i setovi) i koje su razlike. Try catch petlje, vrste exception-a i koje su razlike između njih. Šta su jUnit testovi, kako izgledaju i zašto postoje. Zašto se koristi spring framework i kako se radi dependency injection i zašto . Koji šabloni (design pattern) postoje – pogledati factory, test driven, singleton…
Sve ovo će vas očekivati i na tehničkom intervjuu(ako prođete pisani test) koji ćete imati sa senior developerima i koji će pretresti i vaše znanje ali i vaš tok misli, što je ponekad bitnije za programera.
Front end Developer
Uslovno rečeno „lakša” i sigurno podcenjenija pozicija koja se značajno promenila u toku prethodnih nekoliko godina. Ako ne znate šta su Angular, React, Backbone, jQuery (ili bar jedno od navedenih), preskočite ove oglase. Pored poznavanja HTML, CSS i JavaScript-a, odlučite se za neki od aktuelnih framework-a.
Na pisanom testu možete dobiti neka od ovih pitanja: HTML cache i manifest. Razlika izmedju HTML4 i 5; Šta je XHTML i koji su njegovi atributi, localStorage i kako se koristi, šta je HTML Boilerplate. Razlike između CSS2 i 3, koji su CSS preprocesori, šta je CSS flexbox, koji css framework poznajete i kako se koristi, šta radi komanda CSS reset. Šta je enkapsulacija i kako se radi enkapsulacija JS u projektu. Zašto se koristi MVC framework i koja je njegova prednost u odnosu na jQuery. Šta su task runneri i kako se koriste?
Foo bar problem
Nezavisno od toga za koju programersku poziciju aplicirate i kojim programerskim jezikom „pričate” skoro je sigurno da ćete naići na čuveni foo-bar(fizz-buzz) problem. Napravi funkciju koja će dobiti jedan argument. U slučaju da je deljiv sa 3 neka konzola ispiše foo, ako je deljiv sa 5 neka ispiše bar, ako je deljiv is a 3 i sa 5 neka konzola ispiše foobar. Jednostavno zar ne? Pogledajte onda ovo rešenje . Dakle i jednostavan problem, može poslužiti za vežbu komplikovanijih načina rešavanja problema. Ovaj primer je napisan u Ruby jeziku, a možete naći primere u JAVI, JavaScriptu, PHP-u itd.
Koji jezik je najbolji da naučim?
Možda je bolje da odlučite da li hoćete da se bavite Back end ili Front end programiranjem za početak. Ukoliko krenete da učite oba uporedo, izgledaće vam kao da se penjete na Everest bez maske sa kiseonikom i odustaćete zbog „ja ovo nikad neću naučiti”. Možete probati i ovaj zanimljiv kviz da vam „pomogne” u odabiru.
Svakako preporučujem da počnete sa nekim od besplatnih kurseva na codecademy.com ili codeschool.com. Tamo ćete moći da probate skoro sve jezike koji su u upotrebi i da odaberete onaj koji vam ima najviše smisla kad ga čitate i koji vam je najlagodniji za rad.
Odgovor koji se meni svideo je : Prvo nauči JavaScript, zatim u zavisnosti od cilja… …Hoćeš da radiš za Facebook? Nauči React, Flux, PHP… …Hoćeš da radiš za Google? Nauči Angular, Dart, Polymer, Python.. …Hoćeš da radiš za startap 2 do 4 godine star? Nauči M.E.A.N. …Hoćeš da radiš za startap 5 do 10 godina star? Nauči Angular i Ruby on Rails …Hoćeš da napraviš novi startap i da impresioniraš sve kako brzo dodaješ nove mogućnosti? Nauči Meteor.
Zaključak?
Istina je da ne postoji tačan odgovor. Pročešljajte HelloWorld.rs, pogledajte šta se traži, pogledajte firme u kojima biste želeli da radite, zagrejte stolicu i verujte u sebe. Ja još (ni)sam programer, ali biću.