Jedna od najzastupljenijih tema na tehničkim intervjuima su algoritmi i strukture podataka.
Napravila sam listu sajtova na kojima ja vežbam i koje sam koristila da se spremam za intervjue, a dodala sam i neke koji meni nisu toliko legli, ali sam čula da su mnogima pomogli.
Pa da počnemo. :)
Otkrila sam ga još davne 2015. godine kada sam vežbala za razna algoritamska takmičenja i od tada mu se vraćam svaki put kad mi zatreba (ili kada mi je dosadno).
Na Hackerrank-u imaš mogućnost da se usavršavaš u mnogim oblastima, neke od njih su: Algoritmi, Strukture Podataka, Matematika, Baze Podataka, Veštačka Inteligencija, Regex…
Probleme rešavaš u jeziku po izboru (podržano je preko 20 jezika) i za svaki problem možeš da vidiš njegovu težinu kao i procenat uspešnosti.
Ono što je takođe kul, je to što postoji deo Discussions gde možeš sa drugima da diskutuješ oko problema na koji naiđeš, kao i da postoji Editorial - u kome se nalazi rešenje zadatka.
Samo obrati pažnju, ukoliko se odlučiš da otključaš Editorial pre nego što si uspešno rešio/la zadatak, nećeš dobiti poene za njega. :)
Ako si na samom početku učenja, za tebe je 30 Days of Code tutorial u kome se upoznaješ sa svim osnovnim pojmovima u programiranju, počev od tipova podataka, preko sortiranja pa sve do regexa i testiranja.
Uz svaki zadatak koji rešavaš imaš dostupan i video na tu temu, pa zbog toga ovo rado preporučujem svim početnicima. :)
Ako već imaš dobre osnove i želiš da se pripremaš za intervju za praksu ili posao, postoji sjajan Interview preparation kit u kome ćeš naći zadatke odvojene po oblastima koje se najčešće javljaju na tehničkom intervjuu.
Mali bonus je serija video snimaka “Cracking the coding interview” (ovo je inače jedna od najboljih i najpopularnijih knjiga za pripremu za intervjue) u kome objašnjenja dobijaš direktno od njene autorke - Gayle. :)
Na Hackerranku postoji i odeljak Compete na kome se nalaze aktivna i prošla takmičenja, pa možeš i tu da se oprobaš, možda i osvojiš neku nagradu.
Otkriću ti jednu malu tajnu, dok sam aktivno radila Hackerrank challenge, kontaktirao me je Team Lead iz jedne velike korporacije sa pozivom na intervju, baš preko ove platforme (i to iz Srbije)! Tako da, samo napred, nikad ne znaš šta te sutra čeka! :)
Ukoliko imaš bilo kakva pitanja ili ne možeš da se snađeš na HackerRanku slobodno mi piši u komentarima, ovo je definitivno moja omiljena platforma za vežbanje.
Kada ti dosadi klasično rešavanje zadataka ili ako voliš da igraš igrice, ovo je savršen sajt za tebe.
CodinGame ti pruža da odmah vidiš rezultate tvog rada - bukvalno.
Ako je zadatak o avionima koji pucaju planine, to ćeš moći odmah da vidiš. Imaš opciju da pojedinačno puštaš Test Case po Test Case da bi mogao tačno da uvidiš gde ti je greška u kodu, ako je ima.
Ono što je super, je što pre rešavanja zadatka imaš naglašeno o kojoj se oblasti radi kao i neke teorijske materijale odakle možeš više da naučiš o tome.
Ovako izgleda rešavanje zadatka:
CodinGame nudi mnoga takmičenja, a Clash of Code je zanimljiv način da se testiraš kako radiš pod pritiskom. Imaš par minuta da rešiš jedan lakši zadatak, dok se takmičiš sa drugima u tačnosti i brzini.
Ne znam za tebe, ali ja često ne razmišljam isto kad imam vremena i kad mi sat kuca nad glavom.
Nakon dosta odrađenih takmičenja i vežbanja, uspela sam dosta ovo da popravim ali uvek može još da se radi na tome. Ako imaš problem sa tremom, od srca ti preporučujem ovaj način vežbanja, i ako si uporan/a sigurna sam da ćeš napredovati i pobediti! :)
Petlja je prepuna korisnih materijala od početnog do naprednog nivoa.
Mislim da ovo nije postojalo kada sam ja učila programiranje, ali ako jeste, žao mi je što sam tek skoro čula za njih.
Ako si apsolutni početnik, preporučujem ti da počneš da prelaziš oblasti od 6. razreda osnovne škole gde možeš da naučiš osnove programiranja uz Python.
Ono što je super je što imaju i zadaci, i teorija, i video lekcije, a na kraju možeš da testiraš svoje znanje u online testovima i saznaš na licu mesta koje rupe u znanju imaš.
Nemoj da ti bude glupo što krećeš od osnovne škole, slobodno uroni u materijale i istražuj, a ako si neku oblast već savladao/la, slobodno je preskoči.
Ako već imaš dobre osnove, predlažem kurs Uvod u algoritme na kome ćeš se upoznati sa najbitnijim algoritmima i strukturama podataka, a dalje biraj po svojoj volji.
Na Petlji takođe imaš mogućnost da radiš zadatke, kačiš svoja rešenja i vidiš da li su dobra.
Pored osnovnih i naprednih algoritamskih kurseva, Petlja nam takođe nudi i kurseve JavaScript-a, C#, C++ i analize podataka.
Pronađi kurs po tvojoj meri i počni da vežbaš već danas!
Sličan princip kao HackerRank - takmičenja, zadaci i tutoriali. Ono što je kul kod LeetCode-a je što imaju Mock Interview gde možete da vidite zadatke koje je neka kompanija stvarno davala na intervjuima.
Više je okrenut ka ljudima koji se pripremaju za intervju, ali ima i dosta tutoriala na razne teme pa može biti koristan i početnicima.
Ako ne znaš odakle da počneš, CodeChef je napravio super listu sa materijalima ovde, bilo da si apsolutni početnik ili želiš da se pripremaš za intervju.
Super platforma za pripremu za intervjue. Zadaci su malo teži, pa ne bih preporučila apsolutnim početnicima.
Uz svaku oblast ima i jedan dokument sa teorijskim objašnjenjima te oblasti.
Ostaviš svoj email i svaki dan ti stiže po jedan programerski zadatak za koji je potrebno do sat vremena da se reši. Ovo je super način da stekneš naviku da svaki dan odvojiš malo vremena da radiš na sebi.
Postoji još gomila sajtova na kojima možeš da vežbaš, neki od primera su i CodeWars, CoderByte, Exercism, TopCoder, …
Realno kad pogledaš svi ovi sajtovi su dosta slični. Nećeš pogrešiti da odabereš bilo koji od njih. Najbitnije je da pronađeš onaj koji odgovara tebi i tvom načinu rada.
Bitno! Ako ti se Easy problemi čine preteško, nemoj da odustaješ, to je skroz normalno na početku. Po mom mišljenju, dovoljno je da sa razumevanjem pređeš većinu Easy problema i imaćeš već dovoljno znanja za početnika. Zato ne odustaj i samo napred.
Sada bih volela da u komentarima čujem tebe:
- Koju od ovih platformi ćeš prvo da isprobaš?
- Da li sam možda zaboravila da pomenem tvoju omiljenu platformu?
1 komentar