De 10 mest populære kodingsutfordringsnettstedene [Oppdatert for 2020]

En fin måte å forbedre ferdighetene dine når du lærer å kode, er å løse kodingsutfordringer. Å løse forskjellige typer utfordringer og gåter kan hjelpe deg med å bli en bedre problemløser, lære komplikasjonene til et programmeringsspråk, forberede deg på jobbintervjuer, lære nye algoritmer og mer.

Nedenfor er en liste over noen populære kodingsutfordringsnettsteder med en kort beskrivelse av hva hver enkelt tilbyr.

1. TopCoder

TopCoder er en av de originale plattformene for konkurransedyktig programmering på nettet. Det gir en liste over algoritmiske utfordringer fra fortiden som du kan fullføre på egen hånd direkte online ved hjelp av deres kodeditor. Deres populære Single Round-kamper tilbys noen ganger per måned på et bestemt tidspunkt hvor du konkurrerer mot andre for å løse utfordringene raskest med best poengsum.

De topprangerte brukerne på TopCoder er veldig gode konkurranseprogrammerere og konkurrerer regelmessig i programmeringskonkurranser. Topprangerte bruker opprettholder sin egen blogg med tittelen Algorithms ukentlig av Petr Mitrichev hvor han skriver om kodingskonkurranser, algoritmer, matematikk og mer.

2. Coderbyte

Coderbyte tilbyr mer enn 200 kodingsutfordringer du kan løse direkte online på ett av 10 programmeringsspråk (sjekk ut dette eksemplet). Utfordringene spenner fra enkelt (å finne det største ordet i en streng) til hardt (skriv ut maksimal kardinalitetstilpasning i en graf).

De gir også en samling algoritmeveiledninger, introduksjonsvideoer og forberedelseskurs for intervju. I motsetning til HackerRank og andre lignende nettsteder, kan du se løsningene andre brukere tilbyr for enhver utfordring bortsett fra de offisielle løsningene som er lagt ut av Coderbyte.

3. Prosjekt Euler

Project Euler gir en stor samling utfordringer innen datavitenskap og matematikk. Utfordringene innebærer vanligvis å skrive et lite program for å finne løsningen på en smart matematisk formel eller ligning, for eksempel å finne summen av sifrene til alle tall som går foran hvert tall i en serie.

Du kan ikke direkte kode på nettstedet i en redaktør, så du må skrive en løsning på din egen datamaskin og deretter gi løsningen på deres nettside.

4. HackerRank

HackerRank gir utfordringer for flere forskjellige domener som algoritmer, matematikk, SQL, funksjonell programmering, AI og mer. Du kan løse alle utfordringene direkte på nettet (sjekk ut dette eksemplet). De gir en diskusjon og ledertavle for hver utfordring, og de fleste utfordringene kommer med en redaksjonell som forklarer mer om utfordringen og hvordan man skal nærme seg den for å komme med en løsning. Bortsett fra redaksjonen, kan du for øyeblikket ikke se løsningene til andre brukere på HackerRank.

HackerRank gir også muligheten for brukere å sende inn søknader og søke på jobber ved å løse bedriftssponserte kodingsutfordringer.

5. CodeChef

CodeChef er et indisk-basert konkurranseprogrammeringsnettsted som gir hundrevis av utfordringer. Du er i stand til å skrive kode i deres elektroniske redaktør og se en samling utfordringer som er delt inn i forskjellige kategorier, avhengig av ferdighetsnivået ditt (sjekk ut dette eksemplet). De har et stort fellesskap av kodere som bidrar til forumene, skriver opplæringsprogrammer og deltar i CodeChefs kodekonkurranser.

6. Exercism.io

Trening er et kodingsutfordringsnettsted som tilbyr 3100+ utfordringer som strekker seg over 52 forskjellige programmeringsspråk. Etter å ha valgt et språk du vil mestre, takler du kodingsutfordringene rett på maskinen din (Trening har sitt eget kommandolinjegrensesnitt som du kan laste ned fra GitHub).

Det er imidlertid litt annerledes enn andre utfordringsnettsteder, fordi du jobber med en mentor etter å ha fullført hver utfordring. Mentoren vurderer svarene dine på nettet og hjelper deg med å forbedre dem om nødvendig. Når svarene dine er godkjent og sendt inn, låser du opp flere utfordringer.

7. Kodevarer

Codewars gir en stor samling av kodingsutfordringer sendt og redigert av sitt eget samfunn. Du kan løse utfordringene direkte online i deres redaktør på ett av flere språk. Du kan se en diskusjon for hver utfordring, samt brukerløsninger.

8. LeetCode

LeetCode er en populær online dommer som gir en liste over 190+ utfordringer som kan hjelpe deg med å forberede deg på tekniske jobbintervjuer. Du kan løse utfordringene direkte på nettet på ett av 9 programmeringsspråk. Du kan ikke se andre brukeres løsninger, men du får statistikk for dine egne løsninger, for eksempel hvor raskt koden din gikk sammenlignet med andre brukeres kode.

De har også en Mock Interview-seksjon som er spesielt beregnet på forberedelse av jobbintervju, de er vert for sine egne kodekonkurranser, og de har en seksjon med artikler som hjelper deg med å forstå visse problemer bedre.

9. SPOJ

Sphere Online Judge (SPOJ) er en online dommer som gir over 20 000 kodingsutfordringer. Du kan sende inn koden din i en online redaktør. SPOJ er også vert for sine egne konkurranser og har et område for brukere å diskutere kodingsutfordringer. De gir for øyeblikket ingen offisielle løsninger eller redaksjoner som noen andre nettsteder gjør.

10. CodinGame

CodinGame er litt forskjellig fra de andre nettstedene, for i stedet for å bare løse kodingsutfordringer i en redaktør, tar du faktisk del i å skrive koden for spill du spiller direkte online. Du kan se en liste over spill som for øyeblikket tilbys her, og et eksempel på en her. Spillet kommer med en problembeskrivelse, testtilfeller og en redaktør der du kan skrive koden din på et av 20+ programmeringsspråk.

Selv om dette nettstedet er annerledes enn typiske konkurransedyktige programmeringsnettsteder som de som er nevnt ovenfor, er det fortsatt populært blant programmerere som liker å løse utfordringer og delta i konkurranser.

Denne listen var basert på noen få ting: mine egne erfaringer med bruk av nettsteder, noen Google-søk, Quora-innlegg og artikler som denne og denne. Jeg besøkte også noen fora og subreddits som r / learnprogramming for å se hvilke nettsteder som vanligvis ble anbefalt av brukerne der. Ansvarsfraskrivelse: Jeg jobber på Coderbyte, som er et av nettstedene nevnt ovenfor.