Programiranje je trenutačno najtraženije zanimanje, pa je ovaj tekst na tu temu. Odnosno, ovaj tekst će se baviti web stranicama gdje možete izoštriti svoje programerske sposobnosti i naučiti kako primjeniti algoritme kako biste riješili određeni problem.
Neki će reći da pisanje algoritama nije isto što i razvoj softvera i imati će pravo. No, što zapravo je razvoj softvera? Riješavanje većeg problema tako da ga razbijete na manje probleme i riješavate jedan po jedan.
A to upravo radite na ovim stranicama – riješavate manje (i veće) probleme sa određenim algoritmima. Zato se ne treba previše obazirati na te usporedbe i moguće omalovažavanje važnosti ovih web stranica.
Ove web stranice vam mogu dati određenu programersku podlogu i mišljenja smo da su odlične. Ako uspijete svladati većinu izazova koje vam nude, vjerujemo da nećete imati problema sa pronalaskom posla, posebice u inozemstvu gdje se mnogo prostora daje upravo ovakvim zadacima i ovakvom rješavanju problema. Stoga se bacimo da analizu web stranica i pogledajmo što konkretno nude.
HackerRank je prva u nizu stranica koje nude kompetativno programiranje, odnosno rješavanje problema koje rješavaju i drugi programeri pa se možete natjecati s njima. HackerRank nudi bogat sadržaj za pojedince ali i za enterprise (poslovne) korisnike, a trenutačno ima više od milijun korisnika.
Programske zadatke možete riješavati u hrpi programskih jezika: C, C++, C++14, C#, Java, Python, PHP …). Natjecati se možete u kategorijama algoritama, strukutra podataka, matematici … Nakon što predate rješenje, ocjenjuje se brzina kojom vaš program rješava problem, “elegantnost” rješenja, preciznost i slično.
Jako zanimljiva stranica. Postoji i sekcija “HackerRank for Work” koje kompanije koriste za testiranje potencijalnih kandidata za posao, pa se nemojte iznenaditi ako dobijete email od potencijalnog poslodavca da je zainteresiran za vas i da želi daljnje testiranje s vama.
Stranica nešto drugačijeg formata je “Project Euler”. Radi se o web stranici koja nudi preko 500 matematičkih problema koje treba riješiti. Ovdje se u biti ne natječete ni sa kim, mada možete vidjeti koliko ljudi je riješilo određeni matematički problem i nakon što ga riješite imate pristup forumu gdje se raspravlja o rješenjima i tehnologijama koje su korištene za rješavanje problema.
Ova stranica je namijenjena onima koji vole matematiku i žele ju naučiti. Ovdje nije stvar samo napisati algoritam i unijeti rješenje, nego shvatiti problem, što se točno traži od vas i onda u miru napisati program koji će taj problem riješiti.
Mnoge probleme možete riješiti “brute-force” tehnikom, no to nije poanta. Poanta je elegantno riješiti matematički problem programskim putem ispod sekunde, a ne unutar sat vremena što vam nude potencijalne brute-force strategije.
Prva “ozbiljnija” stranica za natjecanje i zaradu novaca je TopCoder, kao i CodeChef kojeg ćemo idućeg spomenuti. TopCoder je online zajednica programera koji se na jednom mjestu natječu, pomažu jedni drugima, uče jedni od drugih i slično.
Zapravo, taj community i je ono što je najbolje kod TopCodera. Uz to, na ovoj stranici se nalaze najbolji programeri na svijetu koji su danas dio kompanija kao što su Google, Facebook, Microsoft, Amazon … tako da od njih možete jako, jako puno naučiti.
Na TopCoderu se možete natjecati praktički u tri kategorije: Design, Development i Data Science. Tu riješavate stvarne probleme koje “nude” razne kompanije diljem svijeta. Naravno, za svako rješenje dobijete određene bodove, a oni najbolji novac i ponude za posao.
Mnogo je priča o programerima koji su dobili “dream job” baš putem TopCodera, pa ako sanjate o velikim kompanijama i pravom životu u Silicijskoj dolini, ovo je put kojim biste trebali krenuti.
Kao što smo spomenuli, druga ozbiljna web stranica ovog tipa je CodeChef. Iza ovoga stoji neprofitna edukacijska udruga koja je s ovom stranicom krenula kako bi omogučila studentima i amaterima da se natječu u programiranju, a danas je mnogo više od toga.
CodeChef nudi mnoštvo programerskih izazova (od onih relativno laganih do brutalno teških) koje možete rješavati zajedno sa ostalim programerima, odnosno protiv njih. Svaki mjesec CodeChef organizira jedno 10-dnevno natjecanje, te 2 kraća, a nagrade variraju.
Trenutačno natjecanje koje je otvoreno pobjedniku donosi oko 10.000 dolara. Pa recite da se od ovoga ne može živjeti ako niste dobri. Nažalost, konkurencija je izuzetno jaka pa ćete se jako morati potruditi da uzmete “dio kolača”.
Izazovi su i edukativni i zanimljivi, tako da ne možemo naći neku zamjerku CodeChefu. Mi smo sate i sate tamo ostavili, tako da imamo samo riječi hvale za istu. Svakako preporuka!
Coderbyte je također web stranica u kojoj se možete natjecati u programiranju, a trenutačno nudi preko 200 zanimljivih problema za riješiti. Uz to, možete vidjeti preko 500.000 različitih solucija na te probleme što je uvijek zanimljivo.
No, ono što odvaja Coderbyte od konkurencije je mogućnost učenja, odnosno slušanja tečajeva putem ove stranice. Tako imate 4 tečaja za učenje (Learn JavaScript in one week, Learn Ruby in one week, Learn Python in one week, Full Stack Web Development), te 4 tečaja za pripremu za intervjue (Coding Bootcamp Prep, JavaScript nterview Prep, Data Structures & Algorithms, Google Job Interview Prep). Zanimljivo u svakom slučaju.
AKo više preferirate manje formalne web stranice, a više one koje “vuku” na igru, onda je CodeWars stranica za vas. Ona uvodi koncept “Code Kata” izazova i manje i viće programske zadatke koje trebate riješiti. Ono što nam se ovdje sviđa je što imate izazove koje možete riješiti za par minuta i one koje možete riješiti za par sati.
No, svaki problem ima svoju “priču” i imate osjećaj da riješavate prave probleme, a ne samo izmišljeni izazov. Nadalje, svaka odabrana tehnologija vas vodi od onih jednostavnijih problema ka onima malo težima pa osjećate kako napredujete kroz izazove, a oni stalno dolaze što je super. Stvarno super stranica za one koji ne žele sudjelovati u natjecanjima koje nude TopCoder i CodeChef. Ovdje je sve nekako “opuštenije” i zabavnije.
Nastavljamo u istom tonu kao i do sada. CodeFight je super za one koji žele nešto ležerniju web stranicu, ali s druge strane žele izoštriti svoje programerske vještine. Ova stranica vam nudi 6 različitih modova “natjecanja”, odnosno zabave, a možete programirati u 20-ak programskih jezika (Python2, JS, Java, C, C++, C#, Haskell, PHP, Scala, F#, R …).
Jezici su ovdje manje bitni – vratimo se na modove koje imate na raspolaganju. Radi se o slijedećim izazovima: Arcade, Interview Practice (odlično ako se spremate na kakav tehnički intervju), Tournaments, Challenges (algoritmi, devops, DB), Head to head i Bots (pravi izazovi iz realnog svijeta). Za svakog ima ponešto, a tome u prilog ide i činjenice da ova stranica ima preko 500.000 aktivnih korisnika. Pridružite im se!
CodeEval bi mogli nazvati “malim Facebookom” za programere. Riječ je o web stranici koja vam nudi pregršt toga, no centar svega je vaš (privatni) programerski profil. Većina stranica ovog tipa ne pridaje veliku važnost vašem profilu – najčešće sadrži samo mali set informacija o vama – dok CodeEval ima drugačiji pristup.
Ovdje imate profil sa vašim informacijama, vještinama, dostignućima, a samim time se možete prijavljivati na natjecanja u kojima poslodavci traže radnike. Kada vide vaš profil i vaše vještine, mogli biste im biti zanimljivi. Postoje određene priče da razni startupi ovako traže programere i da su se mnogi preko ove stranice zaposlili.
Teško je provjeriti točnost tih informacijama, ali vjerujemo da određeni programeri su ovako našli posao. Trenutačno CodeEval nudi oko 240 zanimljivih problema za riješiti, plus tu su još dodatni izazovi na tjednoj/mjesečnoj bazi. Nama se sviđa ova stranica.
I za kraj nešto malo drugačija stranica. Riječ je o web stranici koju manageri raznih kompanija koriste kako bi našli idealne kandidate za posao. Prije 10 godina, Greg Jakacki se susreo s tim problemom – nije mogao naći ni približno dobre kandidate za svoju firmu pa mu je na pamet pala ova ideja. S njom je osvojio i određene investicije i tako se rodio Codility.
Vi kao programer ovdje napravite svoj profil i riješavate zadatke za one poslodavce koji vam se čine potencijalno dobri. Ako ste dovoljno dobro napravili zadatke i izazove koje su vam oni dali, biti ćete proslijeđeni u idući krug i tada počinje head hunting na dobre programere.
Ovo je zanimljiva stranica ako želite promijeniti posao i možda remote raditi za američke i svjetske firme. Mnogi od njih koriste Codility za traženje talenata jer ih svuda u svijetu kronično nedostaje. Više nije dovoljno zapošljavati ljude iz geografske regije u kojoj se nalazi firma, nego iz cijelog svijeta.
Piše: B.P.
Ovo je super! Nisam ni znao da ima toliko stranica za natjecanje! Svakako ću probati većinu. Hvala …
Odličan teks, … malo više dajte programerskih tekstova, to je materija od koje ljudi mogu da se okoriste… posao, biznis..
Много добар текст, као и сајт. Чини ми се да има доста тога да се прочита (а и научи).