100+ Questions d’entretien de codage pour les programmeurs

image_credit- Coderust 3.0 : Préparation plus rapide aux entretiens de codage avec des défis interactifs & Visualisations

Les entretiens de codage sont une chose tellement importante dans la vie d’un programmeur qu’il ne peut pas y échapper. C’est le premier obstacle qu’ils doivent franchir pour obtenir le poste de développeur de logiciels qu’ils souhaitent tout au long de leur scolarité et de leurs études.

Pour aggraver la situation, vous trouverez que tant de gens sur Internet disant que l’entretien de codage est imparfait, que le processus d’embauche des programmeurs est nul et ainsi de suite, mais vous n’avez pas besoin de leur prêter attention, pas du moins au début de votre carrière.

Ils ont peut-être raison, mais ils sont à l’intérieur du train dans lequel vous essayez de monter. Peu importe, combien ils critiquent les entretiens de codage et le processus d’embauche des programmeurs, beaucoup d’entre eux sont passés par le même chemin pour arriver là où ils sont.

Nous savons tous que le système d’entretien de codage n’est pas parfait et beaucoup essaient de le changer mais jusqu’à ce qu’il soit changé, vous devez suivre ses règles pour entrer dans le système. C’est quelque chose que les développeurs expérimentés doivent gérer, en tant que développeur junior, votre priorité devrait être de passer l’entretien de codage et d’obtenir le travail que vous voulez.

En tant qu’auteur d’un blog Java et d’une publication Medium, je reçois beaucoup de requêtes liées aux problèmes de codage et à la façon de les traiter et c’est pourquoi je continue à écrire des articles comme celui-ci qui ont aidé beaucoup de programmeurs directement et indirectement dans leur carrière.

Dans cet article, je vais partager avec vous le top 100 des problèmes d’entretien de codage des entretiens d’embauche de programmation que chaque programmeur devrait connaître.

Maintenant que, j’ai dissipé la confusion que l’entretien de codage est important et que vous ne devriez pas distraire, passons au travail réel. La grande question est de savoir ce qu’il faut préparer pour les entretiens de codage ?

Eh bien, la chose la plus importante à préparer est les problèmes de codage basés sur la structure de données comme les problèmes de codage basés sur les tableaux, les problèmes de chaînes, les problèmes de listes liées, les problèmes d’arbres binaires, etc.

En dehors des questions basées sur la structure des données, la plupart des entretiens d’embauche en programmation demandent également des questions basées sur l’algorithme, la conception, la manipulation des bits et la logique générale, que je décrirai dans cette section.

Il est important que vous pratiquiez ces concepts car parfois ils deviennent délicats à résoudre dans l’entretien réel. Les avoir pratiqués auparavant vous permet non seulement de vous familiariser avec eux, mais aussi de vous donner plus de confiance pour expliquer la solution à l’interviewer.

L’un des principaux problèmes avec les problèmes de codage est qu’il y a des centaines et des milliers de problèmes de codage sur les entretiens, il y a même des sites comme LeetCode, HackerRank, Codewars, Topcoder, freeCodeCamp, HackerEarth qui forment les programmeurs pour les entretiens de codage avec beaucoup de questions difficiles, ce qui parfois dépasse tout simplement un débutant à la recherche d’un emploi.

Je crois en la simplicité et aux 10% d’efforts qui produisent 90% des résultats et c’est pourquoi j’ai rassemblé les 100 meilleurs problèmes de codage qui ne sont pas trop difficiles et aussi fréquemment demandés lors de vrais entretiens.

La résolution de ces problèmes ne vous donne pas seulement de la confiance mais vous aide aussi à reconnaître certains des modèles algorithmiques les plus courants qui vous aideront aussi à résoudre certains problèmes inédits lors de vrais entretiens.

Ressources pour les entretiens de codage

La sélection de bonnes ressources est très importante pour réussir vos entretiens de codage. Si vous avez choisi une mauvaise ressource alors plus que de l’argent, vous perdrez un temps précieux dont vous avez besoin pour la préparation, donc passez un peu de temps à rechercher une bonne ressource.

Si vous avez besoin de recommandations, voici quelques-unes de mes ressources éprouvées pour apprendre en profondeur la structure de données et les algorithmes pour les entretiens de codage:

  • Structures de données et algorithmes : Deep Dive Using Java pour les développeurs Java. Apprenez-en plus sur les tableaux, les listes liées, les arbres, les tables de hachage, les piles, les files d’attente, les tas, les algorithmes de tri et les algorithmes de recherche
  • Algorithmes et structures de données en Python pour ceux qui aiment Python
    Un guide pour mettre en œuvre les algorithmes les plus récents à partir de zéro : tableaux, listes liées, algorithmes de graphe et tri
  • JavaScript Algorithms and Data Structures Masterclass par Colt_Steele pour les programmeurs JavaScript. Le Bootcamp d’entretien manquant en informatique et en codage. Apprenez tout ce dont vous avez besoin pour réussir des entretiens de codage difficiles.

  • Mastering Data Structures & Algorithmes utilisant C et C++ pour ceux qui sont bons en C/C++
  • Structures de données en Java : An Interview Refresher by The Educative Team pour rafraîchir les concepts importants de structure de données et d’algorithmes en Java. Ce cours contient une revue détaillée de toutes les structures de données courantes et fournit des détails au niveau de l’implémentation en Java pour permettre aux lecteurs d’être bien équipés.
  • Grokking the Coding Interview : Patterns for Coding Questions par Fahim ul Haq et The Educative Team
    C’est comme le méta-cours pour les entretiens de codage, qui ne vous enseignera pas comment résoudre un problème de codage mais, au contraire, vous enseignera comment résoudre un type particulier de problèmes de codage en utilisant des patterns. Maîtrisez ces 15 patterns sous-jacents aux questions d’entretien, et vous serez capable d’affronter tout ce que vous rencontrerez lors de l’entretien

Et, si vous préférez les livres, il n’y a pas mieux que le Cracking The Coding Interview, de Gayle Laakmann McDowell qui présente 189+ questions de programmation et leur solution. Un bon livre pour se préparer aux entretiens d’embauche en programmation en peu de temps. Btw, je gagnerai également de l’argent si vous achetez l’une de ces ressources mentionnées ici.

Quelques conseils pour les entretiens de codage

  1. Il n’y a pas de meilleur moyen de réussir les entretiens de codage que de pratiquer autant de problèmes de codage que possible. Cela va non seulement entraîner votre esprit à reconnaître les modèles algorithmiques dans les problèmes, mais aussi vous donner la confiance nécessaire pour résoudre le problème que vous n’avez jamais vu auparavant.
  2. Mes deuxièmes conseils sont d’apprendre sur autant de structure de données et d’algorithmes que possible. Il s’agit d’une extension du conseil précédent, mais il implique également la lecture et pas seulement la pratique. Par exemple, si vous connaissez la table de hachage, vous pouvez aussi beaucoup de problèmes basés sur les tableaux et les compteurs facilement. La même chose est vraie pour l’arbre et le graphe.
  3. Choisir la bonne structure de données est une partie très importante du développement de logiciels et de l’entretien de codage et à moins et jusqu’à ce que vous les connaissiez, vous ne serez pas en mesure de choisir.
  4. Chronométrez-vous – les candidats qui résolvent les problèmes d’entretien dans le temps imparti et rapidement sont plus susceptibles de bien réussir l’entretien, donc vous devriez également vous chronométrer.
  5. Pensez à des cas limites et exécutez votre code à travers eux. Certains bons cas limites pourraient être l’entrée vide, une entrée bizarre ou une entrée vraiment grande pour tester les conditions limites et les limites.
  6. Après avoir résolu le problème, essayez de l’expliquer à un ami ou à des collègues comment est également intéressé par les problèmes de codage. Cela vous permettra de savoir si vous avez vraiment compris le problème ou non. Si vous pouvez l’expliquer facilement, cela signifie que vous avez compris. De plus, la discussion fait travailler votre esprit et vous pourriez proposer une solution alternative et être capable de trouver certaines failles dans vos algorithmes existants.
  7. Un autre conseil utile pour exceller dans les entretiens de codage est de se présenter à l’entretien de codage et à beaucoup d’entre eux. Vous vous trouverez en train de vous améliorer après chaque entretien et cela vous aide également à obtenir plusieurs offres qui vous permettent en outre de mieux négocier et d’obtenir ces 30K à 50K supplémentaires que vous laissez généralement sur une table si vous n’avez qu’une seule offre en main.
  8. Btw, Si vous êtes prêt pour l’entretien de codage, alors vous pouvez également passer le quiz de TripleByte et aller directement au tour final des entretiens avec les meilleures entreprises technologiques comme Coursera, Adobe Acrobat, Dropbox, Grammarly, Uber, Quora, Evernote, Twitch, et bien d’autres. Je ne connaissais pas Triplebyte avant, mais ils rendent un grand service aux demandeurs d’emploi. Un grand merci à eux.

Top 100 Coding Problems from Programming Job interviews

Sans perdre plus de votre temps, voici ma liste de 100 problèmes de codage fréquemment posés lors d’entretiens d’embauche en programmation. Afin d’obtenir la plupart de cette liste, je suggère de résoudre réellement le problème.

Faites-le vous-même, peu importe si vous êtes bloqué car c’est la seule façon d’apprendre. Après avoir résolu quelques problèmes, vous gagnerez en confiance. Je vous suggère également de regarder la solution lorsque vous êtes coincé ou après avoir résolu le problème, de cette façon vous apprenez à comparer différentes solutions et comment aborder un problème sous un angle différent.

  1. Comment un algorithme de tri à bulles est-il mis en œuvre ? (solution)
  2. Comment est mis en œuvre un algorithme de tri par fusion ? (solution)
  3. Comment compte-t-on l’occurrence d’un caractère donné dans une chaîne de caractères ? (solution)
  4. Comment imprimer le premier caractère non répété d’une chaîne de caractères ? (solution)
  5. Comment convertir une chaîne de caractères donnée en int comme l’atoi() ? (solution)
  6. Comment implémenter un algorithme de tri par seau ? (solution)
  7. Comment implémenter un algorithme de tri par comptage ? (solution)
  8. Comment supprimer les doublons d’un tableau en place ? (solution)
  9. Comment inverser un tableau en place en Java ? (solution)
  10. Comment supprimer les doublons d’un tableau sans utiliser de bibliothèque ? (solution)
  11. Comment est implémenté un algorithme de tri radix ? (solution)
  12. Comment échanger deux nombres sans utiliser la troisième variable ? (solution)
  13. Comment vérifier si deux rectangles se recouvrent l’un l’autre ? (solution)
  14. Comment concevoir un distributeur automatique ? (solution)
  15. Comment trouver le nombre manquant dans un tableau d’entiers donné de 1 à 100 ? (solution)
  16. Comment trouver le nombre en double sur un tableau d’entiers donné ? (solution)
  17. Comment trouver les numéros en double dans un tableau s’il contient plusieurs doubles ? (solution)
  18. Différence entre un algorithme de tri stable et instable ? (réponse)
  19. Comment est mis en œuvre un algorithme de tri rapide itératif ? (solution)
  20. Comment trouver le plus grand et le plus petit nombre dans un tableau d’entiers non triés ? (solution)
  21. Comment inverser une liste chaînée en place ? (solution)
  22. Comment ajouter un élément au milieu de la liste chaînée ? (solution)
  23. Comment trier une liste chaînée en Java ? (solution)
  24. Comment trouver toutes les paires d’un tableau d’entiers dont la somme est égale à un nombre donné ? (solution)
  25. Comment implémenter un algorithme de tri par insertion ? (solution)
  26. Comment supprimer les doublons d’un tableau donné en Java ? (solution)
  27. Comment supprimer le caractère en double d’une chaîne de caractères ? (solution)
  28. Comment trouver le caractère qui apparaît le plus dans une chaîne de caractères donnée ? (solution)
  29. Comment trier un tableau d’entiers en place en utilisant l’algorithme quicksort ? (solution)
  30. Comment inverser une chaîne de caractères donnée en place ? (solution)
  31. Comment imprimer les caractères en double d’une chaîne de caractères ? (solution)
  32. Comment vérifier si deux chaînes de caractères sont des anagrammes l’une de l’autre ? (solution)
  33. Comment trouver toutes les permutations d’une chaîne de caractères ? (solution)
  34. Comment inverser une chaîne donnée en utilisant la récursion ? (solution)
  35. Comment vérifier si une chaîne donnée est un palindrome ? (solution)
  36. Comment trouver la longueur de la plus longue sous-chaîne sans répéter les caractères ? (solution)
  37. Donnée une chaîne de caractères str, Comment trouver la plus longue sous-chaîne palindrome dans str ? (solution)
  38. Comment vérifier si une chaîne de caractères ne contient que des chiffres ? (solution)
  39. Comment enlever le Nième Nœud de la fin d’une liste chaînée ? (solution)
  40. Comment fusionner deux listes chaînées triées ? (solution)
  41. Comment convertir une liste triée en un arbre de recherche binaire ? (solution)
  42. Comment trouver les caractères en double dans une chaîne donnée ? (solution)
  43. Comment compter un nombre de voyelles et de consonnes dans une chaîne donnée ? (solution)
  44. Comment inverser des mots dans une phrase donnée sans utiliser de méthode de bibliothèque ? (solution)
  45. Comment vérifier si deux chaînes de caractères sont une rotation l’une de l’autre ? (solution)
  46. Comment convertir un tableau d’octets en String ? (solution)
  47. Comment supprimer un caractère donné de String ? (solution)
  48. Comment trouver l’élément central d’une liste singulièrement liée en un seul passage ? (solution)
  49. Comment vérifier si une liste chaînée donnée contient un cycle ? Comment trouver le noeud de départ du cycle ? (solution)
  50. Comment inverser une liste chaînée ? (solution)
  51. Comment inverser une liste singulièrement liée sans récursion ? (solution)
  52. Comment supprimer les noeuds en double dans une liste chaînée non triée ? (solution)
  53. Comment trouver la longueur d’une liste singulièrement liée ? (solution)
  54. Comment trouver le troisième noeud à partir de la fin dans une liste singulièrement liée ? (solution)
  55. Comment trouver la somme de deux listes chaînées en utilisant Stack ? (solution)
  56. Quelle est la différence entre tableau et liste chaînée ? (réponse)
  57. Comment supprimer les doublons d’une liste chaînée triée ? (solution)
  58. Comment trouver le nœud où commence l’intersection de deux listes singulièrement liées. (solution)
  59. Etant donné une liste chaînée et une valeur x, partitionnez-la de telle sorte que tous les noeuds inférieurs à x viennent avant les noeuds supérieurs ou égaux à x. (solution)
  60. Comment vérifier si une liste chaînée donnée est un palindrome ? (solution)
  61. Comment supprimer tous les éléments d’une liste chaînée d’entiers qui correspond à une valeur donnée ? (solution)
  62. Comment mettre en oeuvre un arbre de recherche binaire ? (solution)
  63. Comment effectuer une traversée de préordre dans un arbre binaire donné ? (solution)
  64. Comment parcourir un arbre binaire donné en préordre sans récursion ? (solution)
  65. Comment effectuer une traversée en ordre dans un arbre binaire donné ? (solution)
  66. Comment imprimer tous les nœuds d’un arbre binaire donné en utilisant une traversée en ordre sans récursion ? (solution)
  67. Comment implémenter un algorithme de traversée post-ordre ? (solution)
  68. Comment traverser un arbre binaire en postorder traversal sans récursion ? (solution)
  69. Comment sont imprimées toutes les feuilles d’un arbre de recherche binaire ? (solution)
  70. Comment compter un nombre de nœuds feuilles dans un arbre binaire donné ? (solution)
  71. Comment effectuer une recherche binaire dans un tableau donné ? (solution)
  72. Comment permuter deux nombres sans utiliser la troisième variable ? (solution)
  73. Comment vérifier si deux rectangles se recouvrent l’un l’autre ? (solution)
  74. Comment concevoir un distributeur automatique ? (solution)
  75. Comment implémenter un cache LRU dans votre langage de programmation préféré ? (solution)
  76. Comment vérifier si un nombre donné est un palindrome ? (solution)
  77. Comment vérifier si un nombre donné est un nombre Armstrong ? (solution)
  78. Comment trouver tous les facteurs premiers d’un nombre donné ? (solution)
  79. Comment vérifier si un nombre donné est positif ou négatif en Java ? (solution)
  80. Comment trouver le plus grand facteur premier d’un nombre entier donné ? (solution)
  81. Comment imprimer tous les nombres premiers jusqu’à un nombre donné ? (solution)
  82. Comment imprimer le triangle de Floyd ? (solution)
  83. Comment imprimer le triangle de Pascal ? (solution)
  84. Comment calculer la racine carrée d’un nombre donné ? (solution)
  85. Comment vérifier si un nombre donné est un nombre premier ? (solution)
  86. Comment additionner deux nombres sans utiliser l’opérateur plus en Java ? (solution)
  87. Comment vérifier si un nombre donné est pair/impair sans utiliser l’opérateur Arithmétique ? (solution)
  88. Comment imprimer une structure pyramidale donnée ? (solution)
  89. Comment trouver le plus haut monde répétitif d’un fichier donné en Java ? (solution)
  90. Comment inverser un nombre entier donné en Java ? (solution)
  91. Comment convertir un nombre décimal en binaire en Java ? (solution)
  92. Comment vérifier si une année donnée est une année bissextile en Java ? (solution)
  93. Pouvez-vous implémenter un Algorithme de recherche binaire sans récursion ? (solution)
  94. Différence entre un algorithme de tri stable et instable ? (réponse)
  95. Qu’est-ce que l’Algorithme de recherche en première profondeur pour un arbre binaire ? (solution)
  96. Comment est implémenté un algorithme de tri rapide itératif ? (solution)
  97. Comment implémente-t-on un algorithme de tri par insertion ? (solution)
  98. Comment met-on en œuvre un algorithme de tri par fusion ? (solution)
  99. Quelle est la différence entre les algorithmes de tri par comparaison et sans comparaison ? (réponse)
  100. Comment mettre en œuvre les algorithmes de tamisage d’Eratosthène pour les nombres premiers ? (solution)

Ces nombreuses questions devraient suffire mais si vous avez besoin de plus de questions de codage de ce type, vous pouvez vous aider de livres comme Cracking The Code Interview, de Gayle Laakmann McDowell qui présente 189+ questions de programmation et leur solution. Un bon livre pour se préparer aux entretiens d’embauche en programmation en peu de temps.

Maintenant vous êtes prêt pour l’entretien de codage

Ce sont certaines des questions les plus courantes en dehors de la structure de données et des algorithmes qui vous aident à faire vraiment bien dans votre entretien.

J’ai également partagé beaucoup de ces questions sur mon blog, donc si vous êtes vraiment intéressé, vous pouvez toujours y aller et les rechercher.

Ces questions communes de codage, de structure de données et d’algorithme sont celles que vous devez connaître pour réussir un entretien avec n’importe quelle entreprise, grande ou petite, pour n’importe quel niveau de travail de programmation.

Si vous cherchez un emploi de programmation ou de développement de logiciels en 2019, vous pouvez commencer votre préparation avec cette liste de questions de codage et si vous êtes prêt pour l’entretien, alors vous pouvez également répondre au quiz de TripleByte et passer directement au tour final des entretiens avec les meilleures entreprises technologiques comme Coursera, Adobe, Dropbox, Grammarly, et bien d’autres.

Cette liste fournit de bons sujets à préparer et permet également d’évaluer votre préparation pour connaître vos points forts et vos points faibles.

Une bonne connaissance de la structure de données et des algorithmes est importante pour réussir les entretiens de codage et c’est là que vous devriez concentrer la plupart de votre attention.

Apprentissage supplémentaire
Structures de données et algorithmes : Deep Dive Using Java
10 livres pour préparer les entretiens d’embauche en programmation technique/codage
10 livres sur les algorithmes que chaque programmeur devrait lire
Top 5 Data Structure and Algorithm Books for Java Developers
From 0 to 1 : Structures de données & Algorithmes en Java
Analyse de la structure de données et des algorithmes – Entretien d’embauche
20+ problèmes de codage basés sur les chaînes de caractères à partir d’entretiens
20+ problèmes de listes liées à partir d’entretiens
20+ problèmes de base basés sur les algorithmes à partir d’entretiens

Notes de clôture

Merci, Vous êtes arrivé à la fin de l’article … Bonne chance pour votre entretien de programmation ! Ce ne sera certainement pas facile, mais en suivant ces questions d’algorithme de recherche et de tri, vous êtes un pas plus près que les autres. Au fait, plus vous résolvez de questions en pratique, meilleure sera votre préparation.

Alors, si vous pensez que 100 problèmes de codage ne sont pas suffisants et que vous avez besoin de plus, consultez ces 50 questions de programmation supplémentaires pour les entretiens téléphoniques et ces livres et cours pour une préparation plus approfondie.

Tout le meilleur pour votre entretien de codage.

Autres articles que vous pourriez aimer:

.

Laisser un commentaire