Sjajan način da poboljšate svoje vještine prilikom učenja kodiranja je rješavanje izazova kodiranja. Rješavanje različitih vrsta izazova i zagonetki može vam pomoći da postanete bolji rješavač problema, naučite zamršenosti programskog jezika, pripremite se za razgovore za posao, naučite nove algoritme i još mnogo toga.
Ispod je popis nekih popularnih web mjesta s izazovima kodiranja s kratkim opisom svake od njih.
1. TopCoder

TopCoder je jedna od originalnih platformi za konkurentno programiranje na mreži. Pruža popis algoritamskih izazova iz prošlosti koje možete sami riješiti izravno na mreži pomoću njihovog uređivača koda. Njihove popularne pojedinačne runde utakmice nude se nekoliko puta mjesečno u određeno vrijeme kada se natječete protiv drugih da biste najbrže riješili izazove s najboljim rezultatom.
Najbolje rangirani korisnici na TopCoderu vrlo su dobri natjecateljski programeri i redovito se natječu na programskim natjecanjima. Najbolje rangirani korisnik održava vlastiti blog Petr Mitrichev pod nazivom Algoritmi, gdje piše o natjecanjima u kodiranju, algoritmima, matematici i još mnogo toga.
2. Koderbajt

Coderbyte pruža više od 200 izazova kodiranja koje možete riješiti izravno na mreži na jednom od 10 programskih jezika (pogledajte ovaj primjer). Izazovi se kreću od lakog (pronalaženje najveće riječi u nizu) do tvrdog (ispis maksimalnog podudaranja kardinalnosti grafa).
Oni također pružaju zbirku vodiča za algoritme, uvodne video zapise i tečajeve za pripremu intervjua. Za razliku od HackerRank-a i drugih sličnih web stranica, vi možete vidjeti rješenja koja drugi korisnici nude za bilo koji izazov, osim službenih rješenja koja je objavio Coderbyte.
3. Projekt Euler

Projekt Euler nudi veliku kolekciju izazova u području informatike i matematike. Izazovi obično uključuju pisanje malog programa za pronalaženje rješenja pametne matematičke formule ili jednadžbe, poput pronalaženja zbroja znamenki svih brojeva koji prethode svakom broju u nizu.
Ne možete izravno kodirati na web mjestu u uređivaču, pa ćete rješenje trebati napisati na vlastitom računalu, a zatim ga pružiti na njihovom web mjestu.
4. HackerRank

HackerRank nudi izazove za nekoliko različitih domena kao što su algoritmi, matematika, SQL, funkcionalno programiranje, AI i još mnogo toga. Sav izazov možete riješiti izravno na mreži (pogledajte ovaj primjer). Oni pružaju raspravu i ploču s najboljim rezultatima za svaki izazov, a većina izazova dolazi s uvodnikom koji objašnjava više o izazovu i kako mu pristupiti kako bi se došlo do rješenja. Osim uvodnika, trenutno ne možete vidjeti rješenja drugih korisnika na HackerRank-u.
HackerRank također pruža mogućnost korisnicima da predaju prijave i prijave se na poslove rješavajući izazove kodiranja koje sponzorira tvrtka.
5. CodeChef

CodeChef je web mjesto za natjecateljsko programiranje sa sjedištem u Indiji koje nudi stotine izazova. Možete napisati kod u njihov mrežni uređivač i pregledati zbirku izazova koji su podijeljeni u različite kategorije ovisno o vašoj razini vještine (pogledajte ovaj primjer). Imaju veliku zajednicu kodera koji doprinose forumima, pišu vodiče i sudjeluju u CodeChefovim natjecanjima u kodiranju.
6. Vježbanje.io

Vježba je web mjesto s izazovima kodiranja koje nudi 3100+ izazova na 52 različita programska jezika. Nakon odabira jezika koji želite svladati, s izazovima kodiranja rješavate se izravno na vašem stroju (Exercism ima vlastito sučelje naredbenog retka koje možete preuzeti s GitHub-a).
Međutim, malo se razlikuje od ostalih web stranica s izazovima, jer radite s mentorom nakon što obavite svaki izazov. Mentor pregledava vaše odgovore na mreži i pomaže vam da ih poboljšate ako je potrebno. Nakon što vaši odgovori budu odobreni i poslani, otključavate još izazova.
7. Kodovi

Codewars nudi veliku kolekciju izazova za kodiranje koje je poslala i uredila njihova vlastita zajednica. Izazove možete riješiti izravno na mreži u njihovom uređivaču na jednom od nekoliko jezika. Možete pogledati raspravu o svakom izazovu, kao i korisnička rješenja.
8. LeetCode

LeetCode je popularni internetski sudac koji nudi popis od 190+ izazova koji vam mogu pomoći u pripremi za tehničke razgovore za posao. Izazove možete riješiti izravno putem interneta na jednom od 9 programskih jezika. Ne možete vidjeti rješenja drugih korisnika, ali pružaju vam se statistika za vlastita rješenja, poput brzine rada vašeg koda u usporedbi s kodom drugih korisnika.
Oni također imaju odjeljak Mock Interview koji je posebno namijenjen pripremi za razgovor za posao, oni organiziraju vlastita natjecanja u kodiranju i imaju odjeljak za članke koji će vam pomoći da bolje razumijete određene probleme.
9. SPOJ

Sphere Online Judge (SPOJ) mrežni je sudac koji nudi preko 20 tisuća izazova u kodiranju. Kôd možete poslati u mrežnom uređivaču. SPOJ također organizira vlastita natjecanja i ima prostor za korisnike da razgovaraju o izazovima kodiranja. Trenutno , međutim, ne pružaju nikakva službena rješenja ili uvodnike kao neke druge web stranice.
10. CodinGame

CodinGame se malo razlikuje od ostalih web stranica, jer umjesto da jednostavno rješavate izazove kodiranja u uređivaču, zapravo sudjelujete u pisanju koda za igre koje igrate izravno na mreži. Popis trenutno ponuđenih igara možete vidjeti ovdje, a primjer jedne ovdje. Igra dolazi s opisom problema, test slučajevima i uređivačem u kojem možete napisati svoj kôd na jednom od 20+ programskih jezika.
Iako se ova web stranica razlikuje od tipičnih web stranica s natjecateljskim programiranjem, kao što su gore spomenute, i dalje je popularna među programerima koji uživaju u rješavanju izazova i sudjelovanju u natjecanjima.
Ovaj se popis temeljio na nekoliko stvari: mojim vlastitim iskustvima korištenja web stranica, nekim Google pretraživanjima, Quora postovima i člancima poput ovog i ovog. Također sam posjetio neke forume i podredite, kao što je r / learnprogramming, kako bih vidio koje web stranice obično preporučuju tamošnji korisnici. Izjava o odricanju odgovornosti: Radim u Coderbyteu, jednom od gore spomenutih web mjesta.