Article original : Coding Interview Prep – Free Resources to Help You Ace Your Interviews

Par Evan SooHoo

Comme le dit RealToughCandy, tout le monde veut une "solution tout-en-un" en matière d'apprentissage.

Elle utilise ce terme pour décrire Educative.io, mais Educative.io coûte 60 $ par mois, sauf si vous optez pour son forfait annuel. Ce n'est donc pas une ressource gratuite, ce qui signifie qu'elle n'est pas accessible à tous.

Si l'argent n'était pas un problème, vous pourriez acheter une copie de Cracking the Coding Interview, souscrire à un abonnement LeetCode Premium et vous inscrire pour accéder à Grokking the Coding Interview avant de planifier quelques entretiens simulés.

Maintenant, des sites comme LeetCode sont intéressants car ils offrent une excellente ressource gratuitement. Une grande partie des questions de LeetCode sont gratuites, la section des discussions fournit des solutions gratuites où les meilleurs codes/explications sont votés en haut, et la plateforme elle-même peut exécuter des centaines de cas de test en quelques secondes.

Beaucoup de gens soutiennent que LeetCode Premium n'en vaut pas la peine, bien que des auteurs comme Yangshun Tay ne soient pas d'accord. Ce qui m'intéresse chez LeetCode, ce n'est pas leur option premium, mais le fait qu'ils rendent tant de leur service disponible sans elle.

Tout cela étant dit, il existe un certain nombre de ressources gratuites de qualité que vous pouvez utiliser pour vous préparer à vos entretiens de codage. Passons en revue mes préférées.

Meilleures ressources gratuites pour la préparation aux entretiens de codage

Sans plus attendre, voici les meilleures ressources gratuites que j'ai trouvées pour la préparation aux entretiens de codage :

Articles de freeCodeCamp

Le guide de 30 minutes pour réussir votre prochain entretien de codage est un article gratuit disponible sur FreeCodeCamp. La moitié de la valeur ici réside dans les listes curatées de questions LeetCode pour correspondre à chaque sujet majeur.

Voici un autre guide excellent (et complet) qui se concentre sur les entretiens JavaScript et passe en revue tous les bases JS que vous devez connaître. Il inclut des tonnes d'exemples de code et aborde le matériel de manière accessible.

Cracking the Coding Interview

Cracking the Coding Interview reste l'une des meilleures ressources pour la préparation aux entretiens, même en 2021. J'ai entendu certaines personnes dire qu'il n'est plus suffisant, mais j'ai eu deux entretiens de codage qui étaient tirés du livre presque mot pour mot.

Malheureusement, ce n'est pas une ressource gratuite... mais voici un forum LeetCode qui mappe chaque question de CTCI à une question LeetCode.

La raison pour laquelle cela est acceptable est que ce ne sont pas des mappings parfaits. Par exemple, le problème de compression de chaîne de LeetCode n'est pas exactement le même que son équivalent CTCI car il a une contrainte supplémentaire. Il est en fait plus difficile que la version CTCI.

Si vous choisissez d'acheter Cracking the Coding Interview, les solutions sont toutes librement disponibles sur GitHub. Elles sont dans plusieurs langages de programmation, au cas où vous ne seriez pas un développeur Java.

McDowell elle-même a construit le dépôt et a commis la partie Java, il est donc très peu probable que le dépôt soit supprimé pour violation de copyright.

BaseCS

BaseCS est une excellente collection d'articles expliquant les fondamentaux de l'informatique, des tables de hachage aux algorithmes de tri, avec des illustrations personnalisées, des analogies bien écrites et des explications légères.

Le meilleur de tout, chaque article est gratuit et sans le paywall de Medium. Sans cela, Joshi aurait probablement pu empocher des centaines, sinon des milliers de dollars de tous ses lecteurs.

Educative.io

Le cours Educative.io sur les 14 modèles de codage n'est pas gratuit, mais un résumé est disponible sur HackerNoon et écrit par un cofondateur d'Educative.io... probablement comme un geste de bonne volonté, ou un "échantillon gratuit".

Questions LeetCode triées par modèle de programmation

Voici un post public LeetCode qui mappe les 14 modèles de codage à des listes respectives de problèmes LeetCode.

InterviewNoodle – toujours en développement

Arslan Ahmad construit une collection consolidée d'articles de préparation aux entretiens sur Medium appelée InterviewNoodle. Il y a quelques semaines, j'aurais écrit que cette ressource est très incomplète, mais il a ajouté tellement de contenu que je pense maintenant qu'il pourrait vouloir la diviser en sections.

Cela, comme Educative.io, est censé être une "solution tout-en-un". Le fait qu'Arslan Ahmad soit le fondateur de Design Gurus a augmenté mon respect pour lui de manière exponentielle, car cela signifie qu'il tente de construire une version gratuite d'un cours Educative qui lui rapporte de l'argent.

Actuellement, les pages Medium de cette publication ne sont pas bloquées par un paywall. Cela pourrait être une coïncidence, mais pour l'instant, c'est une excellente ressource.

Le reste de cet article couvrira des ressources supplémentaires, bien que celles ci-dessus soient mes préférées.

Ressources supplémentaires pour la préparation aux entretiens de codage

Un guide pour les entretiens

Si vous ne savez pas à quoi vous attendre lors d'un entretien de codage, le "guide de 30 minutes" de freeCodeCamp lié ci-dessus est un excellent "guide". Cependant, il est plutôt long – même s'il ne faut que 30 minutes pour le lire, il faudrait beaucoup plus de temps pour réellement le réviser et passer par sa section "Conseils généraux".

Cela pourrait être exactement ce que vous cherchez si vous voulez être très minutieux. Mais quelles autres options avez-vous ?

"Confessions from a Big Tech Hiring Manager" est ma vidéo préférée. Elle est de "Pragmatic Engineer" et parle du processus d'entretien.

Cette vidéo contient des conseils utiles et pratiques, mais elle transmet aussi la bonne attitude. Il soutient que vous devriez considérer chaque entretien raté comme une opportunité d'apprentissage.

Autres articles de préparation aux entretiens

"Si l'ingénierie logicielle est en demande, pourquoi est-il si difficile d'obtenir un emploi en ingénierie logicielle ?" Il s'agit d'un aperçu ironique du processus d'entretien de codage.

Si vous le lisez, vous devriez probablement ignorer l'histoire de la "compression de chaîne", qui n'ajoute pas grand-chose à l'article.

L'autre côté de l'entretien d'ingénieur logiciel est une sorte de suite à l'article ci-dessus, résumant et répondant aux pensées de Pragmatic Engineer.

Les réponses que j'ai reçues d'un candidat développeur logiciel qui m'ont fait l'embaucher est un article qui offre plus d'informations sur la perspective de l'intervieweur, mais contrairement aux deux précédents, il est derrière le paywall de Medium.

À quoi ressemble le processus d'entretien, en bref ?

Si l'on me demandait de résumer toutes les ressources ci-dessus pour vous, voici ce que je partagerais :

  • Je dirais que vous avez généralement entre 30 minutes et une heure pour résoudre une question de codage.
  • Vous avez généralement le choix du langage de programmation comme C++, Python, Java ou JavaScript, mais pas toujours... dans certains cas, vous n'avez pas le choix.
  • En dehors de la partie codage, ils sont libres de vous poser à peu près n'importe quoi, des questions spécifiques au langage aux projets préférés, mais tout entretien avec une partie codage tend à être dominé par celle-ci.

Et voici quelques conseils généraux à considérer : vous allez avoir affaire à des personnes qui peuvent être assez fatiguées des entretiens. Souriez si vous pouvez. Essayez de montrer de l'enthousiasme. Ayez une conversation et essayez de parler à l'intervieweur comme vous le feriez si vous faisiez de la programmation en binôme, mais s'il était plus senior.

Comment commencer votre préparation aux entretiens

Je pense que pour la plupart des gens qui commencent ce processus de préparation aux entretiens, LeetCode est assez difficile. Voici deux problèmes de départ possibles, bien que le meilleur point d'entrée soit admis Cracking the Coding Interview.

  • FizzBuzz sur LeetCode. Je le recommande car il ne devrait pas nécessiter de préparation supplémentaire pour l'entretien et vous aidera à vous familiariser avec la plateforme LeetCode.
  • Voici un article sur FizzBuzz sur InterviewNoodle pour que vous puissiez en apprendre davantage.
  • Jewels and Stones sur LeetCode. Si vous n'êtes pas capable de résoudre cela dès la première tentative, alors vous devrez apprendre une technique utile dans de nombreux problèmes d'entretien de codage.

Apprendre les hashmaps

Il existe de nombreuses autres structures de données que les hashmaps, mais je les vois si souvent dans les entretiens de codage que je pense qu'ils méritent leur propre section.

  • Valid Anagram est un autre bon "point de départ" LeetCode. Il ne nécessite pas nécessairement un hashmap, mais quelque chose qui agit comme un hashmap.
  • Voici Nick White résolvant Valid Anagram
  • Voici Alex Lee utilisant des hashmaps en Java. Il n'explique pas les détails internes de leur fonctionnement, mais il fournit des conseils pratiques sur la façon de les utiliser.

Que faire après avoir couvert les bases

Après avoir commencé à vous préparer et être à l'aise avec les bases, je me référerais aux ressources ci-dessus.

Le Guide de 30 minutes et Cracking the Coding Interview (encore une fois, il existe des mappings gratuits de problèmes LeetCode si vous ne possédez pas Cracking the Coding Interview) couvrent tous deux les fondamentaux de l'informatique. Et 14 coding patterns va un peu plus loin.

Réflexions finales

Il reste encore beaucoup de travail à faire en matière de ressources de préparation aux entretiens de codage. Il est relativement facile pour moi de simplement pointer vers de bonnes ressources dans un article d'agrégation, mais fournir des critiques complètes ou ma propre ressource nécessiterait un ordre de grandeur d'efforts supplémentaire. Je n'en suis pas encore là.

Pour l'instant, il y a certainement un manque. Le contenu le plus complet, à mon avis, peut être trouvé dans Cracking the Coding Interview et ce cours Educative.io. Et cela sans mentionner la pléthore de ressources qu'une personne avec beaucoup d'argent pourrait se permettre, des coachs, aux bootcamps d'entretiens de codage, aux entretiens simulés coûteux dans lesquels les intervieweurs fournissent des commentaires détaillés.

Le fait que les personnes derrière Educative.io et son cours sur les "modèles d'entretiens de codage" aient fait des efforts pour fournir des ressources gratuites, comme InterviewNoodle et un article HackerNoon, compte beaucoup pour moi.

Personnellement, je n'utilise pas vraiment des sites comme GeeksforGeeks ou des ressources d'entretien sur GitHub écrites exclusivement en markdown. Il serait très utile de construire une plateforme avec des explications détaillées de style blog et des plateformes de codage intégrées, mais à ce stade, vous recréeriez essentiellement Educative.io.

Medium présente un cas intéressant : certains des meilleurs écrivains peuvent être trouvés ici, mais ils sont incités à mettre des choses derrière un paywall. En théorie, n'importe qui peut publier des articles sans paywall sur Medium comme l'a fait BaseCS. Mais peu d'écrivains de Medium semblent le faire encore.

Nous avons besoin de plus d'articles de haute qualité. Nous avons besoin de listes de problèmes de pratique qui sont continuellement mises à jour. Nous avons besoin de grands créateurs de contenu YouTube, comme Nick White, pour continuer à fournir des explications claires des problèmes.

Les efforts de BaseCS ont été largement réussis, et mon seul vœu est qu'il ait continué à produire du contenu... mais tout cela a été produit par une seule personne avec un emploi à temps plein, un podcast, une chaîne YouTube, et apparemment aucune compensation de Medium.

Tout le monde n'a pas le même niveau d'accès aux ressources éducatives pour les entretiens de codage, donc j'admire les personnes qui ont fait tout ce qui était en leur pouvoir pour créer des alternatives gratuites.

Yangshun Tay, auteur de "Le guide de 30 minutes pour réussir votre prochain entretien de codage", m'a envoyé un e-mail personnel quelques mois après la publication de cet article et a partagé d'autres ressources utiles.

  • Voici un lien vers le site principal du Tech Interview Handbook, qui contient des guides approfondis et structurés qui peuvent vraiment vous aider à vous préparer aux entretiens.
  • De plus, il a publié Grind75 qui génère des plans d'étude basés sur le temps restant, ce qui pourrait également intéresser vos lecteurs.

Le Tech Interview Handbook compte actuellement environ 69 000 étoiles sur GitHub, et le site est la chose la plus proche que j'ai vue d'une ressource gratuite "tout-en-un" pour les entretiens d'ingénieurs logiciels.

Grind75 est conçu pour être une meilleure version de Blind75, une liste populaire que Yangshun a également créée et qui a reçu 3200 votes positifs sur une discussion LeetCode.

J'espère que cela vous aidera ! Bonne préparation.