26 points par GN⁺ 2025-03-06 | 9 commentaires | Partager sur WhatsApp
  • Le processus de recrutement est détesté par tout le monde : les responsables du recrutement, les recruteurs et les candidats
  • L’entretien technique est l’une des étapes les plus redoutées, et la plupart des personnes interrogées le détestent
  • Dans le travail réel, il s’agit souvent surtout de connecter des API simples, alors qu’en entretien on voit fréquemment des questions sur des théories complexes et des algorithmes
    • Comme lorsque le développeur de Homebrew, utilisé selon l’article par 90 % des ingénieurs de Google, a été recalé en entretien parce qu’il n’a pas su inverser un arbre binaire au tableau

Les changements de ces dernières années (facteurs qui neutralisent l’entretien)

  • Lors d’entretiens à distance, il y a eu des cas où des candidats coupaient leur caméra et engageaient un remplaçant
  • Il y a aussi eu des cas de travailleurs nord-coréens tentant de décrocher un emploi à l’aide de vidéos deepfake
  • Avec l’arrivée d’outils de codage automatisé comme GitHub Co-pilot et Cursor, ainsi que de LLM comme Claude ou OpenAI, les problèmes de code de base et les questions-réponses deviennent faciles à résoudre
  • L’IA peut désormais intervenir depuis la rédaction du CV jusqu’aux candidatures de masse et aux entretiens vidéo, mais cet article se concentre sur l’entretien technique lui-même

Les bases de l’entretien technique

Presque toutes les entreprises qui recrutent des développeurs ont un processus légèrement différent, mais qui ressemble globalement à ceci

  • Exercice préalable sur Hackerrank
    • Sert de filtre pour recruter des développeurs juniors ou des stagiaires
    • Les problèmes peuvent être résolus librement en ligne
  • Fondamentaux d’informatique (Comp Sci Fundamentals)
    • Questions sur les structures de données, les algorithmes, le Big O, etc.
    • Souvent destiné aux développeurs juniors
  • Entretien de code
    • Évalue la capacité à écrire du vrai code et à le faire fonctionner
    • Vérifie l’usage de base du langage et la capacité de résolution de problèmes à partir d’un exemple de petit projet
  • Architecture / design
    • Cible davantage les développeurs seniors que les juniors
    • Évalue la conception système, la scalabilité, les bases de données et la conception d’API

L’usage de l’IA en entretien

  • À cause de l’IA, le rôle de filtre des exercices préalables comme ceux de Hackerrank s’est fortement affaibli
  • Les fondamentaux d’informatique et les entretiens de code suivent la même tendance : le niveau de difficulté de nombreuses questions reste dans le champ de réponse des LLM, qui les résolvent facilement
  • Les entretiens d’architecture / design restent encore relativement préservés, mais à long terme, si l’IA continue de progresser, ce domaine pourrait lui aussi être menacé

Quelles sont nos options ?

  • 1. Arrêter les entretiens techniques à distance
    • Si l’intervieweur observe directement à côté du candidat, il devient difficile d’utiliser l’IA
      • En supposant que toutes les autres étapes soient validées, cela peut se transformer en entretien de code en présentiel
  • 2. Utiliser un logiciel de type Pearson Vue
    • Installer un programme de surveillance avec supervision par caméra
    • Ce n’est pas parfait, car plusieurs méthodes de contournement sont déjà connues (il existe même des subreddits dédiés au sujet)
  • 3. Ignorer le problème
    • S’appuyer sur une simple demande morale du type « n’utilisez pas l’IA »
    • Au final, cela avantage ceux qui utilisent l’IA, ce qui rend plus difficile pour les entreprises de sélectionner les bons candidats
  • 4. Autoriser l’usage de l’IA
    • Évaluer non plus seulement les compétences de code, mais aussi la capacité à bien écrire des prompts pour les LLM et à refactorer
    • Dans cette phase transitoire, il faut aussi disposer d’assez de compétences en code pour corriger soi-même les erreurs de sortie de l’IA
  • 5. Approche hybride
    • Une méthode mixte consistant par exemple à vérifier d’abord à distance les capacités d’utilisation de l’IA, puis à effectuer une validation finale hors ligne

Solutions possibles

  • À long terme, les approches 4 et 5 semblent les plus réalistes
  • Même avec une politique de RTO, on ne peut pas faire venir tous les candidats éloignés en présentiel, donc il faut trouver une méthode efficace
  • Changer le format même de l’entretien est une autre option
    • Aujourd’hui, les entretiens de code se limitent souvent à de petites tâches du niveau FizzBuzz ou implémentation d’une calculatrice
    • Avec l’assistance de l’IA, on peut multiplier la difficulté des exercices par 10 ou plus et évaluer le processus de création d’une application complète
    • On peut aussi tenter un entretien plus long, d’environ 2 heures, mêlant architecture et code
  • Dans ce type de format, on peut demander de construire l’application, de la faire évoluer et d’implémenter des fonctionnalités supplémentaires
    • À mesure que la base de code grossit, cela permet de vérifier si le candidat peut garder une cohérence d’ensemble et de mesurer des compétences plus profondes que de simples réponses de surface
  • Ce type de processus permet d’évaluer les points suivants
    • La maîtrise de base d’outils comme git et les IDE
    • La capacité à formuler efficacement des prompts pour les LLM et à programmer de façon à obtenir de meilleures sorties
      • La capacité à comprendre et assembler les sorties des LLM pour produire un code maintenable
      • La capacité à livrer, dans un temps limité, une application d’une certaine taille avec un niveau minimal de scalabilité
    • La capacité à maintenir une qualité et une logique cohérentes
  • Cette approche d’évaluation globale pourrait devenir une alternative aux entretiens de code à l’ère de l’IA

Summary

  • Les entretiens techniques devraient connaître de grands changements dans un avenir proche
  • Pour l’instant, l’usage de l’IA peut encore sembler relativement lent ou facile à repérer, mais il pourrait devenir de plus en plus discret
  • Scénarios possibles à mesure que cela évolue
    • Le taux de réussite pourrait augmenter, tandis que les cas d’échec pendant la période réelle de travail (probation) pourraient se multiplier
    • La pression sur les développeurs juniors pour suivre très tôt le niveau d’exigence technique élevé des entreprises pourrait encore s’accentuer
  • Si l’usage de l’IA pour réussir les entretiens FAANG se généralise, la vitesse du changement pourrait encore s’accélérer

9 commentaires

 
scheee 2025-03-07

Je crains qu’au lieu de réduire le décalage entre les entretiens techniques et le travail réel, on fasse porter le chapeau à l’IA.

 
whitelips 2025-03-07

Je ne sais pas si c’est à cause de ce changement, mais l’entreprise où je travaille fait du live coding pendant l’entretien, sans exercice préalable.

 
cnaa97 2025-03-06

Là où je travaille, nous nous dirigeons désormais vers une politique qui autorise l’usage de l’IA lors des entretiens techniques... Comme l’input détermine l’output, l’idée est plutôt d’évaluer la capacité à poser les bonnes questions.

 
cronex 2025-03-06

Je pense qu'on peut utiliser l'IA.
Mais il faut ensuite s'approprier à 100 % le résultat produit ainsi.
Si j'étais recruteur, je donnerais un exercice de code en ligne, puis lors de l'entretien en face à face, je demanderais au candidat d'expliquer ce code. Bien sûr, je poserais aussi des questions supplémentaires.
Si le candidat n'est même pas capable d'expliquer le code qu'il a soumis, qu'il l'ait écrit lui-même ou que l'IA l'ait écrit, ni de répondre aux questions à son sujet, alors il faut le recaler.

 
bbulbum 2025-03-06

> Une forme d’évaluation qui, au lieu des compétences en programmation, mesure la capacité à bien rédiger des prompts pour les LLM et les compétences en refactorisation

J’ai l’impression que ces compétences vont devenir importantes.

 
alucard 2025-03-06

Le problème, ce n’est pas l’IA, mais plutôt le fait que les exercices d’entretien reposaient jusque-là sur un format bancal du genre « trouvez la réponse optimale, et tout ira bien ». N’est-ce pas simplement ce problème qui apparaît enfin au grand jour ? Dans le travail réel, on ne va de toute façon pas se priver d’utiliser l’IA, alors pourquoi l’interdire ? haha Quel que soit le moyen employé, l’essentiel est d’obtenir un résultat. En revanche, il faut effectivement évaluer en toute transparence la manière dont ce moyen a été utilisé.

 
jamsya 2025-03-06

Je suis d’accord. Avec l’arrivée de l’IA, les tests de code bancals et déconnectés du travail réel seront naturellement éliminés par le marché, et les entreprises qui adopteront de meilleures méthodes de recrutement attireront les meilleurs talents.
C’est un affrontement intéressant entre la lance et le bouclier.

 
xguru 2025-03-06

Programme de triche pour les entretiens Leetcode
C'est un bon exemple de cas de triche à l'IA dans les entretiens techniques évoqué dans cet article.

 
GN⁺ 2025-03-06
Avis Hacker News
  • Le meilleur processus d’entretien comprenait du pair programming avec un membre de l’équipe et un entretien téléphonique. En quelques minutes, il était possible de savoir si un candidat pouvait bien faire le travail, et ce processus a permis de constituer l’équipe la plus productive de plus de 20 ans de carrière

    • Le problème vient de la nécessité de processus extensibles et d’un fort débit, qui a abîmé une grande partie de la culture logicielle
    • L’état d’esprit du type « nous devons traiter des centaines de candidats et les métriques du processus comptent plus que les résultats » est le problème
  • Les revues de code sont très utiles comme outil d’évaluation

    • Il est important de demander au candidat de relire du code
    • Un junior, un mid-level, un senior ou un staff ne verront pas du tout les mêmes choses dans la même base de code
    • À mesure que le code généré par l’IA se généralise, il devient important de choisir des développeurs capables de revoir efficacement la qualité et la justesse du code
    • Dans une entreprise YC, quelqu’un a passé un entretien dont le premier tour consistait en une revue de code, ce qui l’a conduit à créer une application open source
  • Vers 2005, dans une PME, on lui a demandé de faire du code sur tableau blanc, sans possibilité d’utiliser un ordinateur

    • Lorsqu’il a demandé pourquoi utiliser un tableau blanc, on lui a répondu qu’ils imitaient les bonnes pratiques de Google
    • Il a finalement codé sur le tableau blanc, mais a précisé qu’il accepterait de recommencer si on lui fournissait un ordinateur
    • Il est finalement parti ailleurs
  • L’entreprise A devrait se demander pourquoi elle n’embauche pas l’IA si l’IA peut résoudre toutes les questions d’entretien technique

    • Il peut être nécessaire d’évaluer si un ingénieur sait implémenter une fonctionnalité, et l’on peut demander au candidat, pendant l’entretien, de réfléchir à une demande de fonctionnalité type
    • Souvent, l’entreprise ne comprend pas clairement la valeur d’un ingénieur, ce qui rend difficile l’évaluation de la valeur du candidat
  • Comme technique de recrutement pour éviter l’IA, on demande aux développeurs juniors d’apporter du code et de l’expliquer

    • On discute de ce qu’ils changeraient, de la manière dont ils le changeraient, de l’utilisation éventuelle de patterns, etc.
    • Pour les développeurs seniors, on donne du code complexe à analyser en temps réel
    • Utiliser l’IA pour raccourcir les tâches quotidiennes est acceptable, mais il faut être capable de réfléchir de manière critique au résultat
  • En tant qu’intervieweur, dans une entreprise non-FAANG, on utilise un processus d’entretien simple

    • On pose des questions sur le CV du candidat, ses attentes, ses capacités, puis on lui demande de montrer du code qu’il a écrit
    • Ce processus est rapide et efficace
  • Le marché de l’emploi actuel est chaotique, donc il semble que trouver un poste restera difficile jusqu’à ce qu’on se cogne au mur

    • Quelqu’un a 26 ans d’expérience mais n’est pas parfait, et tricher ne fonctionne pas vraiment
  • Utiliser des problèmes Leetcode intermédiaires/avancés pendant 30 à 45 minutes en entretien ne permet de révéler que deux types de personnes

    • Celles qui abordent le problème à partir de zéro et celles qui connaissent déjà la solution
    • Ne pas connaître l’algorithme de Kadane revient à devoir aborder le problème depuis le début
    • On ne connaît pas la meilleure méthode d’entretien, mais on a un style personnel préféré
    • Les questions d’entretien devraient avoir des cas de test, devenir progressivement plus complexes, se concentrer sur les structures de données et donner au candidat l’occasion de faire des compromis et de prendre des décisions
  • Le problème n’est pas l’IA, mais le fait que les entreprises ne savent pas comment sélectionner correctement les candidats

    • Elles n’appliquent même pas les bases de la psychométrie
    • Le meilleur processus de sélection consiste à faire réellement travailler la nouvelle personne pendant quelques semaines
  • Lors du dernier entretien, on a demandé au candidat de réaliser une tâche en utilisant des outils, y compris l’IA

    • Il a suivi un processus similaire dans un entretien de live coding
    • Utiliser des outils pour vérifier les compétences et les bonnes pratiques est un choix naturel