Meilleure réponse
Il semble presque inutile de répondre, car quentendez-vous par «bien»? Que voulez-vous accomplir?
Si vous voulez être embauché, cela pourrait être un bon moyen de vous faire embaucher, mais cela semble peu probable, à moins que vous ne soyez vraiment un super bon tireur. Mais il est difficile de savoir comment vous feriez. Je suis presque sûr quil existe de meilleures façons de trouver un emploi si vous savez bien coder et pouvez le prouver. Par exemple, mettez du bon code utile sur github.
Jy ai passé beaucoup de temps récemment (depuis des mois maintenant). Comme pour tout effort dapprentissage, cela aide à vous gérer pendant que vous le faites. Le processus consistant à gagner des coches vertes, des pièces dor et de meilleurs badges peut créer une dépendance, alors méfiez-vous dun plateau improductif.
Les gens critiquent les défis quotidiens, mais réalisent que faire un défi quotidien est aussi un processus créatif, et les commentaires La section est là pour vous aider.
Pour simplement apprendre une langue, il existe une section Arcade où vous pouvez résoudre les problèmes à votre propre rythme. Il semble classer les gens simplement par ordre d’achèvement, ce n’est donc pas quelque chose de compétitif. Jai trouvé cela très utile pour me familiariser avec les fonctions et les tableaux PHP et je travaille également sur lutilisation des méthodes OO.
Je trouve les défis quotidiens très excitants, intéressants (à lépoque) et difficile. Si vous pouvez toujours le faire, c’est trop facile. La lecture de la description est un art. Parfois, je commence à coder trop vite avant de connaître correctement la description, puis je le regrette. Parfois aussi, je pense à une solution qui n’est pas correcte et je commence à la coder avant d’avoir compris comment résoudre correctement le problème. Récemment, il y a eu des problèmes très difficiles qui nécessitent des techniques de programmation dynamique pour les résoudre, et il y en a trois que je nai pas pu faire dans le temps imparti.
Si vous voulez faire des énigmes difficiles et rafraîchir sur les compétences de codage en PHP ou C ++ ou Java ou MySQL ou Javascript, ou apprendre un langage sophistiqué comme Haskell ou Python ou R ou Ruby etc. alors je dirais que Codefights est un génial site où aller.
Réponse
Jai utilisé les deux plates-formes de manière assez intensive pour renforcer mes connaissances en matière de structures de données et dalgorithmes.
Forces de Hackerank
- Des tonnes, et je veux dire des tonnes, de questions et organisées en pistes. Vous voulez savoir comment utiliser les expressions régulières / Java / SQL / Algorithmes / Structures de données / Python / Math? Chacun de ces sujets et dautres ont des chemins spécifiques avec des sous-sujets spécifiques.
- Si vous utilisez ces sites pour préparer les entretiens, de nombreuses entreprises envoient leurs défis de codage via le classement Hacker comme faisant partie du processus dentrevue. , il est donc bon de se familiariser. Expedia, GE, Goldman Sachs et Optiver pour nen nommer que quelques-uns
- Vous obtenez presque toutes les fonctionnalités (sinon toutes) du site Web gratuitement. Sur Leetcode sans abonnement payant, il y a des inconvénients certains.
- Par exemple, vous ne pouvez pas toujours soumettre votre solution tout de suite, en raison de la façon dont ils exécutent la solution pour se classer par rapport à toutes les autres solutions.
- Presque toutes les déclarations de problème ont des exemples de 1 ou 2 cas de test et des réponses et des explications assez détaillées sur les raisons pour lesquelles la réponse est la telle quelle est. Cest beaucoup moins courant sur Leetcode.
- Chaque question publiée sur Hackerrank a une solution vérifiée dans longlet « Éditorial ». Toutes les questions Leetcode nen ont pas (bien que vous puissiez facilement obtenir une réponse sur les deux plates-formes en cliquant sur longlet «discussions»)
- Les deux sites ont des cas de test visibles pour exécuter votre code avant de le soumettre. Hackerrank fait un très bon travail pour rendre ces cas visibles les cas courants, tandis que Leetcode utilise presque toujours un cas de bord pour le test visible.
- Hackerrack a des liaisons vim! (Si vous aimez ça)
Points forts de Leetcode
- Ce que jaime chez Leetcode, cest quils ont des énoncés de problème qui vont droit au but. Hackerrank a tendance à avoir des introductions un peu longues et des scénarios dessinés qui masquent la tâche réelle.
- Par exemple: Hackerrank pourrait être comme « Sally aime le chocolat mais seulement veut manger du chocolat avec la plus faible quantité de sodium. Étant donné un tableau de niveaux de sodium, retournez le chocolat le plus bas avec le moins de sodium. »
- L’équivalent Leetcode serait« Étant donné un tableau d’entiers, retournez lélément min ”
- Hackerrank et Leetcode comparent les coûts dexécution de votre algorithme en chronométrant la solution avec des cas de test. Cependant, une fois que votre solution a été approuvée, elle la répertorie par rapport à toutes les solutions approuvées dans le même langage de programmation et le pourcentage de solutions que vous avez battues pour la vitesse.
- Lenvironnement de test est bien supérieur. Lorsque vous entrez un scénario de test personnalisé, il exécute également la bonne solution afin que vous puissiez immédiatement savoir si votre scénario est correct ou faux.Sur Hackerrank, exécuter un cas de test personnalisé nexécute que votre solution.
- Une autre chose que jaime, pour chaque problème, linterface de codage ne nécessite que de travailler avec une signature de fonction prédéfinie. Dans Hackerrank, la plupart du temps, vous devez gérer les entrées / sorties, et il exécute une correspondance de chaîne pour valider la réponse, ce qui peut devenir un peu ennuyeux
- Sérieusement … pourquoi je devrais afficher « OUI » ou » NON « quand léquivalent le plus rapide est simplement de garder un objet booléen?
- Leetcode a cette fantaisie » Une question a été posée par la société X avec une fréquence de Y\% « , auquel vous pouvez accéder avec labonnement. Personnellement, je pense que cet outil nest pas si utile et donne la fausse impression que les gens peuvent simplement mémoriser toutes ces questions spécifiques une fois quils ont un entretien avec lentreprise X.
Personnellement, jaime mieux LeetCode et, en fin de compte, cela dépend de lutilisation que vous en faites.
Clause de non-responsabilité : voici mes opinions sur les points forts et les faiblesses sont. Alors que certaines personnes peuvent considérer quune faiblesse est vraiment une force et vice versa.