La migliore risposta
Sembra quasi inutile rispondere, perché cosa intendi per “buono”? Cosa vuoi ottenere?
Se vuoi essere assunto, potrebbe essere plausibilmente un buon modo per essere assunto, ma sembra improbabile, a meno che tu non sia davvero un super bravo ragazzo di qualche tipo. Ma è difficile sapere come faresti. Sono abbastanza sicuro che ci siano modi migliori per trovare un lavoro se sai programmare bene e puoi dimostrarlo. Ad esempio, metti del codice buono e utile su GitHub.
Ho passato molto tempo lì di recente (da mesi ormai). Come con qualsiasi attività di apprendimento, aiuta a gestire te stesso mentre lo fai. Il processo per guadagnare segni di spunta verdi e monete doro e badge migliori può creare dipendenza, quindi fai attenzione a un plateau improduttivo.
Le persone criticano le sfide quotidiane, ma si rendono conto che fare una sfida quotidiana è anche un processo creativo, e i commenti la sezione è lì per aiutarti.
Per imparare una lingua, cè una sezione Arcade dove puoi lavorare sui problemi al tuo ritmo. Sembra classificare le persone solo in ordine di completamento, quindi non è qualcosa su cui essere competitivi. Lho trovato molto utile per acquisire maggiore familiarità con le funzioni e gli array PHP e sto lavorando anche sulluso dei metodi OO.
Trovo che le sfide quotidiane siano molto eccitanti, interessanti (al momento) e stimolante. Se puoi sempre farlo, allora è troppo facile. Leggere la descrizione è unarte. A volte inizio a scrivere codice troppo velocemente prima di conoscere correttamente la descrizione e poi me ne pento. Inoltre a volte penso a una soluzione che non è corretta e inizio a codificarla prima di aver capito come risolvere il problema nel modo giusto. Recentemente ci sono stati alcuni problemi molto impegnativi che richiedono tecniche di programmazione dinamica per risolverli, e ce nerano tre che non potevo fare nel tempo a disposizione.
Se vuoi fare puzzle impegnativi e rispolverare sulle capacità di codifica in PHP o C ++ o Java o MySQL o Javascript, o impara un linguaggio stravagante come Haskell o Python o R o Ruby ecc. allora direi che Codefights è un fantastico sito a cui andare.
Risposta
Ho utilizzato entrambe le piattaforme in modo abbastanza estensivo per rafforzare le mie strutture di dati e la conoscenza degli algoritmi.
Punti di forza di Hackerank
- Tonnellate, e intendo tantissime, di domande e organizzate in Tracce. Vuoi sapere come usare le espressioni regolari / Java / SQL / Algorithms / Data Structures / Python / Math? Ognuno di questi argomenti e altro ha percorsi specifici con argomenti secondari specifici.
- Se utilizzi questi siti per preparare il colloquio, molte aziende inviano le loro sfide di codifica attraverso il rango di hacker come parte del processo di intervista , quindi è bene acquisire familiarità. Expedia, GE, Goldman Sachs e Optiver per citarne alcuni
- Ottieni quasi tutte le funzionalità (se non tutte) dal sito web gratuitamente. Su Leetcode senza labbonamento a pagamento, ci sono chiari inconvenienti.
- Ad esempio, non puoi sempre inviare la tua soluzione subito, a causa di come eseguono la soluzione per classificarsi rispetto a tutte le altre soluzioni.
- Quasi tutte le affermazioni di problemi hanno esempi di 1 o 2 casi di test e risposte e spiegazioni piuttosto approfondite del perché la risposta è così comè. Questo è molto meno comune su Leetcode.
- Ogni domanda pubblicata su Hackerrank ha una soluzione verificata nella scheda “Editoriale”. Non tutte le domande Leetcode ne hanno una (sebbene tu possa ottenere facilmente una risposta su entrambe le piattaforme facendo clic sulla scheda “discussioni”)
- Entrambi i siti hanno casi di test visibili con cui eseguire il codice prima dellinvio. Hackerrank fa un buon lavoro nel rendere quelli visibili i casi comuni, mentre Leetcode utilizza quasi sempre un caso limite per il test visibile.
- Hackerrack ha i vincoli vim! (Se ti piace)
Punti di forza di Leetcode
- Una cosa che mi piace di Leetcode è che hanno affermazioni dirette al punto del problema. Hackerrank tende ad avere presentazioni un po lunghe e scenari elaborati che mascherano lattività effettiva.
- Ad esempio: Hackerrank potrebbe essere come “Sally ama il cioccolato ma solo vuole mangiare cioccolato con la minor quantità di sodio. Dato un array di livelli di sodio, restituisci il cioccolato più basso con il sodio più basso “
- Lequivalente Leetcode sarebbe” Dato un array di numeri interi, restituisci lelemento min “
- Sia Hackerrank che Leetcode confrontano i costi del tempo di esecuzione del tuo algoritmo cronometrando la soluzione con i casi di test. Tuttavia, una volta che la tua soluzione è stata approvata, la elenca rispetto a tutte le soluzioni approvate nello stesso linguaggio di programmazione e la percentuale di quante soluzioni hai battuto per velocità.
- Lambiente di test è di gran lunga superiore. Quando inserisci un caso di test personalizzato, viene eseguita anche la soluzione corretta in modo da poter sapere immediatamente se il tuo è giusto o sbagliato.Su Hackerrank, lesecuzione di un test case personalizzato esegue solo la tua soluzione.
- Unaltra cosa che amo, per ogni problema, linterfaccia di codifica richiede solo di lavorare con una firma di funzione predefinita. In Hackerrank, la maggior parte del tempo hai a disposizione per gestire linput / output ed esegue la corrispondenza delle stringhe per convalidare la risposta che può diventare un po fastidiosa
- Scherzi a parte … perché dovrei stampare “SÌ” o ” NO “quando lequivalente più veloce è semplicemente mantenere un oggetto booleano?
- Leetcode ha quella fantasia ” La domanda è stata posta da X Company con frequenza Y\% “, a cui puoi accedere con labbonamento. Personalmente penso che questo strumento non sia così utile e dà la falsa impressione che le persone possano semplicemente memorizzare tutte quelle domande specifiche una volta che ottengono unintervista con la società X.
Personalmente preferisco LeetCode e, in ultima analisi, dipende da cosa lo usi.
Dichiarazione di non responsabilità : queste sono le mie opinioni sui punti di forza e le debolezze sono. Mentre alcune persone possono vedere che una debolezza è davvero un punto di forza e viceversa.