Bedste svar
Det virker næsten ubrugeligt at svare, for hvad mener du med “godt”? Hvad vil du opnå?
Hvis du vil blive ansat, kan det tænkes at være en god måde at blive ansat på, men det virker usandsynligt, medmindre du virkelig er en super god hot shot af en slags. Men det er svært at vide, hvordan du gør det. Jeg er ret sikker på, at der er bedre måder at finde et job på, hvis du ved, hvordan du koder godt og kan bevise det. Sæt for eksempel nogle gode, nyttige koder på github.
Jeg har brugt masser af tid der for nylig (i flere måneder nu). Som med enhver læringsindsats hjælper det med at klare dig selv, mens du gør det. Processen med at tjene grønne flueben og guldmønter og bedre badges kan være vanedannende, så pas på et uproduktivt plateau.
Folk kritiserer de daglige udfordringer, men er klar over at lave en daglig udfordring er også en kreativ proces, og kommentarerne sektionen er der for at hjælpe.
For bare at lære et sprog er der en arkadesektion, hvor du kan arbejde igennem problemer i dit eget tempo. Det ser ud til at rangordne folk bare efter færdiggørelsesorden, så det er ikke noget at være konkurrencedygtig om. Jeg fandt dette meget nyttigt til at blive mere fortrolig med PHP-funktioner og arrays, og jeg arbejder også på at bruge OO-metoder.
Jeg finder de daglige udfordringer meget spændende, interessante (på det tidspunkt) og udfordrende. Hvis du altid kan gøre det, er det for let. At læse beskrivelsen er en kunst. Nogle gange begynder jeg at kode for hurtigt, før jeg kender beskrivelsen korrekt, og så fortryder jeg det. Nogle gange tænker jeg også på en løsning, der ikke er korrekt, og begynder at kode det, før jeg har forstået, hvordan man løser problemet rigtigt. For nylig har der været nogle meget udfordrende problemer, der har brug for dynamiske programmeringsteknikker for at løse dem, og der var tre af dem, som jeg ikke kunne gøre inden for den tildelte tid.
Hvis du vil lave udfordrende gåder og børste op om kodningsevner i PHP eller C ++ eller Java eller MySQL eller Javascript, eller lær et fancy sprog som Haskell eller Python eller R eller Ruby osv., så vil jeg sige Codefights er en stor site at gå til.
Svar
Jeg har brugt begge platforme ret udstrakt til at forbedre min datastrukturer og algoritmeviden.
Hackerank-styrker
- Tonsvis, og jeg mener masser af spørgsmål og organiseret i spor. Vil du lære mere om, hvordan du bruger Regular Expressions / Java / SQL / Algorithms / Data Structures / Python / Math? Hvert af disse emner og mere har specifikke stier med specifikke underemner.
- Hvis du bruger disse sider til at få forberedelse af interviews, sender mange virksomheder deres kodningsudfordringer gennem Hacker-rang som bortset fra interviewprocessen , så det er godt at blive fortrolig. Expedia, GE, Goldman Sachs og Optiver for at nævne nogle få
- Du får næsten al funktionalitet (hvis ikke alle) gratis fra hjemmesiden. På Leetcode uden det betalte abonnement er der klare ulemper.
- For eksempel kan du ikke altid indsende din løsning med det samme på grund af, hvordan de kører løsningen for at placere sig i forhold til alle andre løsninger.
- Næsten alle problemangivelser har eksempler på 1 eller 2 testsager og svar og ret grundige forklaringer på, hvorfor svaret er som det er. Det er meget mindre almindeligt på Leetcode.
- Hvert spørgsmål, der er sendt på Hackerrank, har en verificeret løsning på fanen “Redaktionelt”. Ikke alle Leetcode-spørgsmål har et (skønt du let kan få svar på begge platforme ved at klikke på fanen “diskussioner”)
- Begge sider har synlige testcases, som du kan køre din kode med, inden du sender dem. Hackerrank gør et ret godt stykke arbejde med at gøre disse synlige til de almindelige sager, mens Leetcode næsten altid bruger en edge case til den synlige test.
- Hackerrack har vim-bindinger! (Hvis du er interesseret i det)
Leetcode Strengths
- Noget jeg elsker ved Leetcode er, at de har lige til punktet problemstillinger. Hackerrank har tendens til at have lidt lange introduktioner og trukket scenarier, der maskerer den aktuelle opgave.
- For eksempel: Hackerrank kunne være som “Sally elsker chokolade, men kun ønsker at spise chokolade med den laveste mængde natrium. Givet en matrix af natriumniveauer, returner den laveste chokolade med laveste natrium ”
- Leetcode-ækvivalent ville være“ Givet en række heltal, returner min-elementet ”
- Både Hackerrank og Leetcode sammenligner omkostningerne ved din algoritme ved at timing af løsningen med testcases. Når først din løsning er blevet godkendt, viser den den imidlertid mod alle godkendte løsninger på det samme programmeringssprog og procentdelen af, hvor mange løsninger du slår ud for hastighed.
- Testmiljøet er langt bedre. Når du indtaster en brugerdefineret testsag, kører den også den rigtige løsning, så du straks kan vide, om dine er rigtige eller forkerte.På Hackerrank kører din brugerdefinerede test sag kun din løsning.
- En anden ting, jeg elsker, for ethvert problem kræver kodningsgrænsefladen kun at arbejde med en foruddefineret funktionssignatur. I Hackerrank er det meget tid, du har til at håndtere input / output, og det kører streng matchende for at validere svaret, som kan blive lidt irriterende
- Seriøst … hvorfor jeg skulle udskrive “YES” eller “ NEJ ”når det hurtigere ækvivalente bare holder et boolsk objekt?
- Leetcode har den smarte “ Spørgsmål blev stillet af X Company med Y\% frekvens ”, som du kan få adgang til med abonnementet. Jeg synes personligt, at dette værktøj ikke er så nyttigt og giver et forkert indtryk af, at folk bare kan huske alle disse specifikke spørgsmål, når de først får et interview med X-firmaet.
Jeg kan personligt lide LeetCode bedre og i sidste ende kommer det ned til, hvad du bruger det til.
Ansvarsfraskrivelse : Dette er mine meninger om, hvad styrkerne og svagheder er. Mens nogle mennesker måske ser, at en svaghed virkelig er en styrke og omvendt.