De 10 mest populære kodningsudfordringswebsteder [Opdateret til 2020]

En god måde at forbedre dine færdigheder, når du lærer at kode, er ved at løse kodningsudfordringer. Løsning af forskellige typer udfordringer og gåder kan hjælpe dig med at blive en bedre problemløsning, lære det indviklede i et programmeringssprog, forberede dig på jobinterviews, lære nye algoritmer og meget mere.

Nedenfor er en liste over nogle populære kodningsudfordringswebsteder med en kort beskrivelse af, hvad hver enkelt tilbyder.

1. TopCoder

TopCoder er en af ​​de originale platforme til konkurrencedygtig programmering online. Det giver en liste over algoritmiske udfordringer fra fortiden, som du kan udføre på egen hånd direkte online ved hjælp af deres kodeditor. Deres populære Single Round Matches tilbydes et par gange om måneden på et bestemt tidspunkt, hvor du konkurrerer mod andre for at løse udfordringer hurtigst med den bedste score.

De toprangerede brugere på TopCoder er meget gode konkurrenceprogrammerere og konkurrerer regelmæssigt i programmeringskonkurrencer. Den bedst rangerede bruger vedligeholder sin egen blog med titlen Algoritmer ugentligt af Petr Mitrichev, hvor han skriver om kodningskonkurrencer, algoritmer, matematik og meget mere.

2. Coderbyte

Coderbyte tilbyder mere end 200 kodningsudfordringer, du kan løse direkte online på et af 10 programmeringssprog (se dette eksempel). Udfordringerne spænder fra let (at finde det største ord i en streng) til hårdt (udskriv den maksimale kardinalitetsmatchning i en graf).

De leverer også en samling af algoritmetutorials, introduktionsvideoer og forberedelseskurser til interviews. I modsætning til HackerRank og andre lignende websteder er du i stand til at se de løsninger, som andre brugere giver til enhver udfordring bortset fra de officielle løsninger, der er indsendt af Coderbyte.

3. Projekt Euler

Project Euler giver en stor samling af udfordringer inden for datalogi og matematik. Udfordringerne involverer typisk at skrive et lille program for at finde ud af løsningen på en smart matematisk formel eller ligning, såsom at finde summen af ​​cifre af alle tal, der går forud for hvert nummer i en serie.

Du kan ikke direkte kode på webstedet i en editor, så du bliver nødt til at skrive en løsning på din egen computer og derefter give løsningen på deres hjemmeside.

4. HackerRank

HackerRank giver udfordringer til flere forskellige domæner såsom algoritmer, matematik, SQL, funktionel programmering, AI og mere. Du kan løse al udfordringen direkte online (se dette eksempel). De giver en diskussion og leaderboard for hver udfordring, og de fleste udfordringer kommer med en redaktionel, der forklarer mere om udfordringen, og hvordan man nærmer sig den for at komme med en løsning. Bortset fra redaktionelt kan du i øjeblikket ikke se andre brugers løsninger på HackerRank.

HackerRank giver også brugerne mulighed for at indsende ansøgninger og ansøge om job ved at løse virksomhedssponserede kodningsudfordringer.

5. CodeChef

CodeChef er et indisk-baseret konkurrencepræget websted, der giver hundredvis af udfordringer. Du er i stand til at skrive kode i deres online editor og se en samling udfordringer, der er opdelt i forskellige kategorier afhængigt af dit færdighedsniveau (se dette eksempel). De har et stort samfund af kodere, der bidrager til foraene, skriver tutorials og deltager i CodeChefs kodningskonkurrencer.

6. Exercism.io

Motion er et kodende udfordringswebsted, der tilbyder 3100+ udfordringer, der spænder over 52 forskellige programmeringssprog. Efter at have valgt et sprog, som du gerne vil mestre, tackler du kodningsudfordringerne lige på din maskine (Motion har deres egen kommandolinjegrænseflade, som du kan downloade fra GitHub).

Det er dog lidt anderledes end andre udfordringswebsteder, fordi du arbejder med en mentor efter at have gennemført hver udfordring. Mentoren gennemgår dine svar online og hjælper dig med at forbedre dem, hvis det er nødvendigt. Når dine svar er godkendt og sendt, låser du op for flere udfordringer.

7. Kodevarer

Codewars giver en stor samling af kodningsudfordringer indsendt og redigeret af deres eget samfund. Du kan løse udfordringerne direkte online i deres editor på et af flere sprog. Du kan se en diskussion for hver udfordring samt brugerløsninger.

8. LeetCode

LeetCode er en populær online dommer, der giver en liste over 190+ udfordringer, der kan hjælpe dig med at forberede dig til tekniske jobinterviews. Du kan løse udfordringerne direkte online på et af 9 programmeringssprog. Du er ikke i stand til at se andre brugers løsninger, men du får statistik over dine egne løsninger, f.eks. Hvor hurtigt din kode kørte sammenlignet med andre brugeres kode.

De har også et Mock Interview-afsnit, der er specifikt til forberedelse af jobinterview, de er vært for deres egne kodningskonkurrencer, og de har et afsnit med artikler, der hjælper dig med bedre at forstå visse problemer.

9. SPOJ

Sphere Online Judge (SPOJ) er en online dommer, der leverer over 20.000 kodende udfordringer. Du er i stand til at indsende din kode i en online editor. SPOJ er også vært for deres egne konkurrencer og har et område, hvor brugerne kan diskutere kodningsudfordringer. De leverer i øjeblikket ingen officielle løsninger eller redaktionelle som nogle andre hjemmesider gør.

10. CodinGame

CodinGame er lidt anderledes end de andre websteder, for i stedet for blot at løse kodningsudfordringer i en editor, deltager du faktisk i at skrive koden til spil, du spiller direkte online. Du kan se en liste over spil, der aktuelt tilbydes her, og et eksempel på et her. Spillet leveres med en problembeskrivelse, testcases og en editor, hvor du kan skrive din kode på et af 20+ programmeringssprog.

Selvom dette websted er anderledes end typiske konkurrencedygtige programmeringswebsteder som dem, der er nævnt ovenfor, er det stadig populært blandt programmører, der nyder at løse udfordringer og deltage i konkurrencer.

Denne liste var baseret på et par ting: mine egne oplevelser ved hjælp af webstederne, nogle Google-søgninger, Quora-indlæg og artikler som denne og denne. Jeg besøgte også nogle fora og subreddits som r / learnprogramming for at se, hvilke websteder der normalt blev anbefalet af brugerne der. Ansvarsfraskrivelse: Jeg arbejder på Coderbyte, som er et af ovennævnte websteder.