• 4 hours
  • Easy

Free online content available in this course.

course.header.alt.is_video

course.header.alt.is_certifying

Got it!

Last updated on 4/24/23

Préparez-vous aux discussions techniques

Première étape de la phase des tests techniques, la discussion technique se veut un échange entre le candidat et un ou deux développeurs de l’entreprise.

Proche d’une discussion que vous pourriez avoir avec des collègues, elle a pour but principalement de briser la glace, et de vous découvrir en tant que candidat. C’est souvent le premier contact que les développeurs ont avec le candidat potentiel.

Bien qu’assez peu formalisée, elle permet aux recruteurs de rapidement former un avis sur le candidat. La préparer et anticiper les questions vous permettra d’appréhender cette étape plus sereinement.

Gardez en tête les objectifs de la discussion technique

De manière générale, les discussions techniques abordent toutes les mêmes concepts. Autrement dit, une fois que vous en avez réalisé une ou deux, vous commencerez à comprendre ce qui est attendu, tant en termes d’attitude que de sujets de conversation.

L’idée de la discussion technique est donc de parler :

  • de concepts généraux d’informatique ;

  • de votre langage (JavaScript, Python, etc.) et de votre spécialité (front-end, back-end, etc.) ;

  • de vos expériences ;

  • des problèmes que vous avez rencontrés.

Le premier objectif de la discussion technique est donc simplement d’en apprendre un peu plus sur vous. :)

Parler d'ingénierie informatique (concepts généraux d’informatique)

Le premier point abordé lors d’une discussion technique est souvent en relation avec les bases de l’informatique. On ne parle donc ici pas de langage spécifique ni de spécialité, mais plus de concepts généraux aux sciences de l’informatique.

Comme toujours, la complexité de la discussion dépendra de votre séniorité : en fonction du poste visé, les développeurs qui vous recrutent n’attendent pas tout à fait la même réponse. À la fin de ce chapitre, je vous donne quelques ressources pour vous aider à préparer la discussion technique, et pour en apprendre un peu plus sur votre fascinant métier :-).

Pour cette partie donc, les questions peuvent aussi bien porter sur l’éditeur de texte que vous utilisez, que sur l’allocation de mémoire ou encore sur des design patterns. Ça peut sembler simple comme sujet mais là encore, ça permet d’en apprendre un peu plus sur le candidat.

Parler de son langage/sa spécialité

L’idée va être de savoir si vous maîtrisez les éléments essentiels de votre métier.

Son langage

Pour un développeur JavaScript, on peut lui demander :

  • quels gestionnaires de librairie il utilise ;

  • d’expliquer ce que sont les task runners, et leur mode de fonctionnement ;

  • ce qu'est l’ES6, et ce qui change par rapport à l’ES5.

Autre exemple, pour un développeur Python, on pourra lui demander :

  • pourquoi il est si important de créer un environnement virtuel en Python ;

  • ce qu’est Anaconda, ou Panda ;

  • comment bien gérer les dates en Python.

Sa spécialité

Puis, une fois parlé de votre langage, vient le moment où vous aurez des questions sur votre spécialité :

  • pour un développeur front-end, par exemple, on pourra lui poser des questions sur l’optimisation (pour qu’un site web se charge plus vite), sur la gestion des compatibilités navigateurs ou sur des bibliothèques graphiques en JavaScript ;

  • pour un développeur back-end, ce sera l’occasion de lui parler de versionnage d’API, et d’architectures à mettre en place pour créer une back-end robuste ;

  • pour un développeur mobile, enfin, ce sera l’occasion de parler d’optimisation du cache et de persistance des données.

Le plus important ici est de comprendre les problématiques de chacune des spécialités, et de savoir en parler ; n développeur front-end ne rencontrant pas les mêmes problèmes qu’un développeur back-end et n’utilisant souvent pas les mêmes librairies.

Partager ses expériences

Parler de ses expériences en entretien me semble quelque chose d’assez logique. Après tout, vous êtes là pour parler de vous, et de que vous avez fait avant de postuler dans l’entreprise de vos rêves. :)

Sachez parler aussi bien de vos expériences professionnelles, autrement dit d’un stage ou d’un emploi, que de vos expériences personnelles, par exemple, si vous avez travaillé sur des projets open source sur votre temps libre.

Vous pouvez, par exemple, décider de parler de votre projet personnel : quelles technologies avez-vous utilisées ? Pourquoi ? Quels problèmes avez vous rencontrés ? Etc.

L’idée de cette partie va être de parler des choix technologiques que vous avez faits, mais aussi de donner un retour d’expérience par rapport à ces derniers.

Échanger autour de problèmes rencontrés et des solutions mises en place

En lien avec la partie ci-dessus sur les expériences du candidat, il va être question ici d’en savoir un peu plus sur les difficultés que vous avez rencontrées lors de vos projets, et sur les solutions que vous avez mises en place.

Il s'agit certainement d'une des parties les plus importantes de la discussion technique, notamment parce qu’elle permet aux recruteurs de :

  • se faire une idée de ce que vous avez réellement vu, que ce soit durant votre formation, votre stage ou vos expériences professionnelles différentes ;

  • voir comment vous arrivez à prendre du recul sur ce que vous produisez ;

  • savoir ce que vous en avez retenu, et donc ce que vous referez, et surtout ce que vous ne referez pas.

Si vous vous rappelez du mail que nous avons envoyé à la personne que nous n’avons pas retenue, c’est justement ce qui a pêché dans son entretien : cette personne n’a pas réussi à expliquer clairement ce qu’elle avait fait et le problème qu’elle avait rencontré. Elle est restée évasive, et c’est quelque chose qui se voit très vite en entretien. Pensez donc à être factuel.

Projetez-vous dans les conditions réelles d'une discussion technique

Maintenant que nous avons vu les objectifs de cette discussion, je vais vous présenter son cadre de réalisation, à savoir où la discussion technique se passe et dans quelles conditions.

Où se passe cette discussion ?

Elle se déroule soit dans les locaux de l’entreprise, soit en visioconférence. Cela dépend de votre éloignement de l’entreprise.

Par exemple, si vous habitez sur Paris et que vous souhaitez rejoindre une entreprise au Canada, il y a fort à parier que vous allez faire une visioconférence. Comme pour toute bonne visioconférence, pensez à être dans une pièce calme et éclairée.

Qui participe ?

Vous l’avez peut-être déjà compris, cette discussion se déroule généralement avec deux développeurs de l’entreprise. Souvent un développeur lead ou senior, accompagné d’un développeur soit junior, soit “midnior”.

Gardez en tête que vous allez devoir expliquer et vulgariser vos connaissances aux deux personnes. :)

Combien de temps dure une discussion technique, en général ?

Entre 30 minutes et 1 h 30. J’y reviendrais plus tard, mais sachez que plus la discussion technique dure dans le temps, plus c’est bon signe pour vous.

Respectez des bonnes pratiques

Voici une vidéo ci-dessous, dans laquelle je présente les bonnes pratiques pour réussir une discussion technique.

Faites des schémas pour expliquer des notions complexes

Savoir faire des schémas est, selon moi, l’une des compétences de base à avoir pour un développeur. Réaliser des schémas, que ce soit en entretien ou sur votre lieu de travail, vous permet d’expliquer des notions complexes.

Ils permettent de montrer que vous avez bien compris de quoi on parle, et également d’éviter les quiproquos. On vous demandera assez souvent de réaliser un schéma en entretien (pour expliquer Redux, par exemple).

L’avantage, c’est que vous pouvez travailler ça lors de votre préparation : Internet fourmille de schémas intéressants que vous pouvez utiliser, en entretien ou pour votre connaissance personnelle.

Admettez quand vous ne savez pas

On se dit souvent qu’en entretien, on doit tout savoir sur tout. Qu'on doit connaître sur les bouts des doigts les technologies utilisées et qu’on ne peut pas ne pas savoir quelque chose. C’est faux !

Savoir ne pas savoir vous met souvent dans une posture d’ouverture vis-à-vis des recruteurs. Vous acceptez de ne pas connaître telle ou telle notion, mais vous souhaitez l’apprendre.

Faisons le point rapidement, ce que l’on demande le plus souvent à un stagiaire ou à un développeur junior, c’est :

  • d’être là pour apprendre et pour progresser ;

  • de connaître les notions “de base” de sa spécialité ;

  • de poser des questions.

Dès l’entretien, n’hésitez donc pas à dire que vous ne savez ou ne comprenez pas. Ce sera souvent une porte ouverte vers une digression qui pourra vous apprendre de nouvelles choses. 

Communiquez votre passion

Commençons par une petite mise en situation. :)

Vous êtes recruteur et vous êtes actuellement en train de faire passer un entretien à un futur stagiaire. Votre société est, en effet, en train de grossir, et elle aimerait qu’un stagiaire intègre votre équipe pour renforcer vos effectifs.

Le matin même, vous avez fait un entretien avec un autre stagiaire. Ce dernier n’était pas mauvais, plutôt bon techniquement et à l’aise avec un certain nombre de notions.

Problème : il ne semblait pas habité par une passion et ne semblait pas avoir envie d’apprendre.

Cet après-midi, vous faites un entretien avec un autre stagiaire : il est moins technique que le premier, mais semble “en vouloir” et montre bien sa passion.

Qui choisissez-vous ?

Personnellement, je préférerais le stagiaire passionné ! Je sens que je vais pouvoir lui apprendre plus de choses, et dans de meilleures conditions. Je sens aussi qu’il ira plus loin, et que je vais avoir envie de travailler avec lui et de le faire progresser.

Pour avoir été confronté à cette situation, soit dans le cadre où j’étais le stagiaire moins bon mais plus passionné, soit dans le cadre où je devais choisir entre deux candidats, comprenez bien que la passion est quelque chose de palpable et qui a une réelle importance lors d’un entretien.

La capacité à communiquer une passion dépend certes des individus, mais essayez de faire un effort dessus. Cela peut vraiment vous permettre de changer la donne.

Adoptez une posture d’apprentissage

Corollaire du point ci-dessus, essayez de montrer que vous êtes dans un processus et une posture d’apprentissage. Montrez que la critique n’est pas quelque chose qui vous gêne, puisqu’elle vise à vous faire progresser en tant que développeur.

Posez des questions, intéressez-vous à ce que fait l’entreprise, aux technologies qu’elle utilise, et demandez des feedbacks, même en entretien.

Par exemple, si on vous parle d’une technologie pour améliorer le référencement, le Server Side Rendering par exemple, et que vous ne savez pas ce que c’est. Posez des questions et essayez de rebondir dessus : c’est certainement l’un des meilleurs moyens pour que l’entretien se passe bien.

Mettez en avant vos soft skills et votre parcours

Pour les personnes qui n’ont pas suivi un cursus classique type école d’ingénieur, et j’en fais partie, sachez mettre en avant ce qu’on appelle les soft skills.

Qu'est-ce qu'un soft skill ?

Ce sont toutes les compétences non techniques que peut avoir une personne. On peut, par exemple, citer l’empathie, la gestion du temps ou l’adaptabilité.

De plus en plus, le recrutement de développeurs se fait sur les soft skills. On ne veut plus simplement un expert technique, sauf pour des postes de senior et non de lead ; on veut des personnes qui soient capables de communiquer avec les autres équipes de l’entreprise.

Il est loin, le cliché du développeur qui code dans sa cave. Aujourd’hui, être développeur, c’est être capable de vulgariser ses connaissances, tant aux autres développeurs qu’aux personnes non techniques.

Évitez certains comportements rédhibitoires

Maintenant que nous avons vu ce qu’il faut faire pendant la discussion technique, voyons ensemble ce que je vous déconseille de faire. :)

Ne soyez pas prétentieux

En top 1 des choses à ne pas faire en entretien, être prétentieux. Je pense que c'est certainement l’une des choses les plus éliminatoires.

Il y a un véritable équilibre à trouver entre ce que vous avez été capable de faire durant votre précédent emploi ou durant votre stage, et comment vous le présentez.

Comme je vous le disais plus haut, sachez rester factuel, tout en ne dénigrant pas les équipes avec lesquelles vous avez travaillé (tant pour les équipes techniques que non techniques).

Ne soyez pas sur la défensive

Autre point important, essayez au maximum de ne pas être sur la défensive. Je sais que vous pouvez penser que votre travail et que votre niveau sont jugés lors d’un entretien. Dans un sens, c’est vrai.

Cela dit, voyez plutôt ça comme un bilan de compétences. Vous réalisez l’entretien, certes pour être recruté, mais aussi pour avoir une idée de votre niveau et ce qui vous manque peut-être.

C’est donc le moment d’être totalement honnête avec vous (et vous pouvez le faire dès la préparation) :

  • Qu’est-ce que vous savez faire ?

  • Quels sont vos softs skills ?

  • Qu’est-ce qui vous différencie d’un autre candidat ?

Posez-vous ces questions lors de la préparation de l’entretien. Cela vous permettra de ne pas être déstabilisé, ni sur la défensive, le jour J.

Ne manquez pas de curiosité

Il arrive parfois qu’en entretien, on s'aperçoive qu’un développeur n’est pas très intéressé par ce qu’il fait ; et le pire, c’est que cela se voit très vite.

Montrez que devenir développeur vous intéresse !

Ne soyez pas trop vague sur vos expériences

En tant que développeur, nous apprenons constamment, que ce soit via des cours (comme celui-ci ;-)), des projets en étude (comme ce que vous réalisez peut-être avec OpenClassrooms) ou des projets en entreprise. C’est le ciment de votre apprentissage, et vous devez être capable de prendre du recul là-dessus.

En prenant du recul, vous pourrez expliquer ce que vous avez fait en étant factuel.

Il n’y a donc rien de pire qu’un candidat restant dans le vague à propos de ce qu’il a fait précédemment. Car, pour le recruteur, cela veut peut-être dire que le candidat n’a pas “fait grand-chose”.

Soyez factuel, donnez des exemples précis, dites ce qui a marché, ce qui n’a pas marché et pourquoi.

J’ai passé 1 h 30 en discussion, est-ce mauvais signe ?

En fait, c’est généralement un très bon signe ! Je vous disais plus haut qu’une discussion technique dure généralement entre 30 et 45 minutes.

Si vous commencez à voir que le temps est en train de s’allonger et que vous êtes plus sur une durée d'une heure, voire une heure et demi, c’est très bon signe. Cela veut dire que les développeurs qui vous font passer la discussion prennent du plaisir à parler avec vous, et cela veut potentiellement dire qu’ils se voient bien travailler avec vous.

Deux autres bons signes sont :

  • si les développeurs essayent de vous apprendre des choses. Autrement dit, vous avez suivi les conseils dont je vous ai parlé plus haut concernant l’importance du “je ne sais pas”, et vos interlocuteurs y ont été sensibles. Eh bien, il se peut très bien que ces derniers soient déjà en train de vous former en vous expliquant de nouvelles notions, et c’est un excellent signe pour vous ;

  • si les développeurs sont réceptifs à vos questions techniques. Si vous posez des questions techniques quant à l’architecture du produit : pourquoi avoir choisi React Native plutôt qu’une solution Swift/Kotlin par exemple. Si ces derniers répondent de façon complète à vos questions, il y a fort à parier que cette discussion se passe très bien. Vous montrez que vous vous intéressez à l’entreprise, et que vous vous projetez dedans ; si bien que les développeurs ont envie d’en discuter avec vous.

Bien se préparer à la discussion

Comme pour tout, la préparation est souvent l’étape essentielle à la réussite. Une préparation régulière à ce type d’entretien peut vous permettre de passer cette étape sereinement.

Voici une liste de conseils pour vous aider à la préparer :

Parlez développement à d’autres développeurs

Que vous soyez encore en étude, chez OpenClassrooms par exemple, ou que vous soyez en poste, il est important que vous parliez régulièrement à d’autres développeurs. Utilisez tous les outils à votre disposition pour le faire : mails, chats, Facebook, etc.

Vous pouvez parlez avec eux de sujets très variés, tels que des technologies que vous utilisez ou que vous avez envie d’utiliser, ou des cours que vous avez suivis (comme le mien :-)).

Allez à des meet-up

Suivant votre lieu de résidence, vous pouvez avoir plus ou moins de facilité à vous rendre à des meet-up locaux. Pour les personnes habitant de grandes villes comme Paris, Marseille, Lyon, Nantes, etc., des meet-up sont organisés chaque semaine dans toutes les spécialités possibles.

Ne vous rendez pas forcément à tous, mais essayez d’en faire un par mois et sur une technologie qui vous intéresse.

Renseignez-vous sur les technologies que l’entreprise utilise

Alors, attention, histoire vraie ! Nous avons récemment eu besoin de nouveaux développeurs dans notre équipe au travail. Nous avons naturellement rédigé une fiche de poste précisant que nous cherchions un développeur NodeJS et nous avons commencé à accueillir les candidats.

Eh bien, figurez-vous que de nombreux candidats n’avaient même pas pris la peine de regarder la fiche de poste et ne connaissaient pas les technologies que nous utilisons. Pire encore, un candidat nous a même dit détester le JavaScript (alors que la fiche de poste mentionnait qu’on recherchait un développeur JavaScript). Carton rouge !

Ne pas tout connaître sur les technologies qu’une entreprise utilise, c’est une chose, mais ne pas faire l’effort de connaître la base de l’annonce en est une autre. Alors, avant d’aller en entretien, renseignez-vous !

Entraînez-vous à expliquer des notions complexes à vos proches

Savoir expliquer une notion complexe à quelqu’un de non technique est certainement l’un des meilleurs moyens de briller en entretien ! C’est d’ailleurs souvent le moment de faire des schémas. ;)

Si vous n’avez pas d’exemples en tête, vous pouvez penser à :

  • expliquer ce qu’est une API à votre grand-mère ;

  • présenter Redux à votre copain ou à votre copine ;

  • expliquer la différence entre HTML, CSS et JavaScript à votre petit frère.

Vulgariser des notions complexes et s'exercer à les expliquer est aussi un bon moyen de mieux retenir les notions et connaissances que vous avez abordées pendant votre formation. C’est donc une méthode gagnant/gagnant. 

Suivez des blogs

Internet est, aujourd’hui, rempli de blogs et de posts techniques de développeurs cherchant à partager leur expérience. C’est une excellente nouvelle pour vous, pour préparer les entretiens mais aussi pour continuer à vous former.

Si certains articles sont plutôt dédiés à la découverte ou à l’explication d’une technologie particulière, de nombreux autres ont été écrits pour vous aider à préparer vos entretiens de recrutement. :)

Si vous ne savez pas par où commencer, voici une liste de blogs à suivre :

  • Chaîne medium du FreeCodeCamp - ressource anglophone. De nombreux blog posts sur tous les concepts et langages. Le niveau va de débutant à intermédiaire ;

  • Blog d'Eric Elliott - ressource anglophone. Important nom de la scène JavaScript. Le niveau est de intermédiaire à avancé ;

  • Blog de Trey Huffine - ressource anglophone. Principalement du JavaScript. Tous niveaux ;

  • Blog de Dan Abramov - ressource anglophone - Blog du créateur de Redux. Là encore principalement JavaScript - Tous niveaux ;

  • AlsaCréations - ressource francophone - principalement sur de l’intégration et du développement front-end.

  • Cet excellent article de Toptal pour vous aider à préparer la discussion technique :) - ressource anglophone.

Petit rappel, si vous ne comprenez pas forcément tout ce qui se dit dans les articles, c’est normal : il y en a pour tous les niveaux. Sachez donc comprendre le sens général de ce qui se dit dans ces articles et, par la suite, au fil de vos lectures, vous allez en comprendre de plus en plus.

Regardez des conférences sur YouTube

Si vous êtes plutôt vidéo, YouTube regorge de vidéos dédiées au développement informatique.

Voici une liste de chaînes YouTube que vous pouvez suivre :

Dernier point avant de conclure. Comme vous pouvez le constater, je donne beaucoup de ressources anglophones. Ce n’est pas forcément parce que je n’aime pas les ressources francophones, c’est simplement parce que l’anglais est la langue de l’informatique.

De nombreux auteurs et/ou experts techniques sont anglophones et ne parlent pas un mot de français. Vous allez donc devoir apprendre à lire l’anglais technique. :honte:

En bref

  • La discussion technique est souvent la première étape du processus de recrutement. Elle s’effectue habituellement avec un ou deux développeurs de l’entreprise.

  • Généralement de 30 à 45 minutes, elle peut parfois durer 1 h/1 h 30, et c’est souvent un très bon signe.

  • Elle porte autant sur des concepts généraux d’informatique que sur des concepts relatifs à votre spécialité.

  • Pour la préparer le mieux possible, lisez régulièrement des articles et regardez régulièrement des vidéos.

Example of certificate of achievement
Example of certificate of achievement