Article original : How to Prepare for a Software Developer Interview

Par Martin Cartledge

Dans mon dernier article, j'ai partagé mes réflexions sur comment obtenir un entretien en tant que développeur logiciel. Cette semaine, je vais partager mes pensées sur la manière dont vous devriez vous préparer pour cet entretien une fois que vous l'avez obtenu.

Les entretiens techniques sont notoirement stressants et imprévisibles. Mais il existe des étapes que vous pouvez suivre pour atténuer beaucoup de ces sentiments.

Phases du processus d'entretien

La plupart des entretiens pour développeurs logiciels ont une structure similaire - c'est un peu comme la fondation moderne pour ces entretiens.

Vous trouverez généralement les phases suivantes dans votre processus d'entretien :

  • Entretien téléphonique initial
  • Entretien téléphonique technique
  • Entretien sur site

Examinons chacun de ces points plus en détail.

À quelles questions dois-je m'attendre ?

Les entretiens dans le secteur technologique sont loin d'être uniformes, mais j'aime à penser que c'est une chose positive. Cela rend les choses intéressantes et peut vous permettre de montrer vos compétences de manière nouvelle à chaque fois.

Cela inclut les questions que vous serez probablement amené à répondre lors de votre entretien, mais ne vous inquiétez pas. Il existe de nombreuses questions courantes qui vous aideront à vous préparer pour votre grand jour.

De mon point de vue, ces questions peuvent être divisées en deux catégories, spécifiques à l'entreprise et situationnelles (hypothétiques).

Questions spécifiques à l'entreprise

Selon la taille et le type d'entreprise pour laquelle vous passez un entretien, la manière dont ils mènent l'entretien peut différer. Je vous suggère d'utiliser des sites web tels que Blind ou Glassdoor pour obtenir des informations sur les sujets et questions spécifiques aux entretiens de l'entreprise.

Par exemple, The Interview Guys ont rédigé un excellent article qui discute des principales questions d'entretien d'Amazon.

Si vous passez un peu de temps à rechercher sur le web, vous devriez pouvoir trouver certaines questions qu'une entreprise donnée pose traditionnellement. Cela vous donnera un avantage dans votre préparation.

Questions situationnelles (hypothétiques)

Vous pouvez vous attendre à ce que ces questions abordent votre style de travail, vos réalisations récentes et votre compétence technique. Voici quelques sujets sur lesquels vous pouvez vous attendre à être interrogé :

  • Parlez-moi d'une fois où vous avez dû gérer un bug délicat. Comment l'avez-vous résolu ? Quel a été le résultat ?
  • Préférez-vous travailler en collaborant (en binôme) avec d'autres ou seul ?
  • Qu'aimez-vous dans le langage de programmation que vous utilisez ?
  • Quelles nouvelles fonctionnalités du langage utilisez-vous le plus et pourquoi ?
  • Décrivez le flux de travail typique de votre équipe pour un projet. Qu'aimez-vous à ce sujet ? Qu'est-ce que vous n'aimez pas ?

Rappelez-vous, restez positif autant que possible. Bien que l'intervieweur soit réellement intéressé par vos réponses, il recherche également tout signe de négativité ou de difficulté que vous pourriez apporter à la dynamique actuelle de leur équipe.

Essayez d'éviter de critiquer une technologie particulière que vous avez utilisée dans le passé. Au lieu de cela, tournez votre réponse de manière positive.

Par exemple, au lieu de dire « Je n'aime pas utiliser l'opérateur de décomposition en JavaScript, c'est trop confus », vous pouvez dire : « Je sais que l'opérateur de décomposition est une fonctionnalité plus récente de JavaScript, j'ai hâte d'en apprendre davantage et de savoir comment l'utiliser efficacement dans mon code. »

Maintenant que vous avez une bonne idée des questions courantes et des éléments à inclure dans vos réponses, plongeons dans chaque étape du processus d'entretien. La première étape est l'entretien téléphonique initial.

D'abord, « parlez-moi de vous »

Après avoir postulé et qu'une entreprise s'intéresse à vous, la première étape consiste généralement à planifier un entretien téléphonique. Il s'agit généralement d'une conversation assez détendue avec un membre des ressources humaines.

Vous pouvez vous attendre à ce qu'ils vous posent principalement des questions sur votre historique professionnel, ce que vous recherchez ensuite, et surtout, pourquoi vous postulez pour un poste dans leur entreprise.

Le fait que cela soit généralement plus facile que les autres phases du processus d'entretien ne signifie pas que vous ne devez pas vous y préparer. Voici quelques questions à préparer :

Parlez-moi un peu de vous

C'est le bon moment pour donner votre « pitch d'ascenseur ». Il s'agit probablement de l'une des premières questions qui vous sera posée et qui peut généralement donner le ton pour le reste de l'entretien.

Si vous avez tendance à parler vite, prenez une profonde inspiration avant de répondre et essayez de parler lentement et clairement. Voici quelques éléments que vous souhaitez mentionner dans votre réponse :

  • Éthique ou intérêts que vous partagez avec l'entreprise
  • Ce qui vous passionne dans le développement logiciel
  • Objectifs futurs que (espérons-le) cette entreprise peut aider à réaliser (c'est-à-dire, croissance technique et professionnelle)

Quel est un projet récent sur lequel vous avez travaillé et dont vous êtes fier ?

Comme pour la plupart de ces questions, l'intervieweur n'est pas uniquement curieux de vos réalisations techniques. Il recherche également des indices qui montrent que vous pouvez bien communiquer, que vous êtes fiable et que vous êtes quelqu'un qui s'entendrait bien avec les autres membres de l'équipe.

Essayez d'être enthousiaste et de répondre aux questions de manière complète, sans trop divaguer. Un cadre efficace pour répondre à ce type de questions est :

  • Donner un aperçu rapide du projet et du problème qu'il résout
  • Mentionner les technologies que vous avez utilisées dans ce projet
  • Communiquer toute métrique démontrant un impact positif (comme des métriques d'économie de temps, des contributeurs open-source, le nombre d'utilisateurs actifs)

Pourquoi cherchez-vous à quitter votre entreprise actuelle ?

Il s'agit peut-être de l'une des questions les plus délicates à répondre. Assurez-vous d'avoir une réponse solide préparée avant l'entretien, car elle peut en dire long sur un candidat assez rapidement.

Voici quelques choses que vous devriez éviter lorsque vous répondez à cette question :

  • Être négatif. Transformez tout facteur potentiellement négatif en un facteur positif. Par exemple, « Je m'ennuie et je ne suis pas satisfait du travail que je fais ici » peut être dit plutôt comme : « Je cherche un nouveau défi qui cultive ma croissance en tant que développeur et en tant qu'individu. »
  • Parler des collègues ou des managers actuels – gardez-les hors de la conversation
  • Discuter de la rémunération et des avantages

Je pense que l'une des meilleures réponses que vous pouvez donner à cette question est une réponse honnête – vous cherchez quelque chose de nouveau. C'est une réponse parfaitement raisonnable !

Les seuls éléments que je pourrais ajouter à cette réponse sont votre intérêt pour de nouveaux défis, votre enthousiasme pour l'entreprise, ou une technologie que vous savez que cette entreprise utilise.

Comment se préparer pour l'entretien téléphonique technique

D'accord, vous étiez enthousiaste, sociable et bien préparé pour votre entretien téléphonique. La prochaine étape de ce processus est généralement un entretien téléphonique technique.

Avant votre entretien téléphonique technique, il est important de vous assurer que vous savez quel langage de programmation vous allez utiliser.

Quel langage de programmation devrais-je utiliser ?

Avant de commencer à vous préparer pour les autres étapes du processus d'entretien, il serait prudent d'avoir une bonne idée du langage de programmation que vous allez utiliser pendant l'entretien.

En ce qui concerne cette question, j'ai quelques conseils assez simples : embrassez ce avec quoi vous êtes à l'aise, et restez fidèle à ce que vous connaissez.

Il est assez courant de vouloir utiliser (ou apprendre) plusieurs langages dans notre domaine. Mais, lors de la préparation d'un entretien, il est préférable de s'en tenir à un seul.

Cela vous aidera à passer de l'inquiétude concernant le langage que vous allez utiliser, à la réflexion sur les problèmes que vous avez résolus avec le langage avec lequel vous êtes le plus à l'aise.

Une fois que vous savez quel langage de programmation vous allez utiliser, vous êtes prêt à relever le défi de l'entretien téléphonique technique.

Discuter des réalisations techniques et des sujets de programmation de haut niveau

Lors d'un entretien téléphonique technique typique, vous aurez une conversation avec un membre senior de l'équipe que vous rejoindriez ou avec le manager de cette équipe. Vous pouvez vous attendre à ce qu'une grande partie de cette conversation soit axée sur deux choses :

  • Les problèmes récents que vous avez rencontrés dans votre poste actuel et les solutions que vous avez mises en œuvre pour les résoudre, et
  • La familiarité générale avec le langage (par exemple, quand souhaitez-vous utiliser un tableau au lieu d'une table de hachage (objet) ?)

Pour vous aider à vous préparer à cet entretien, je vous suggère de commencer à écrire les réponses à ces questions.

Personnellement, j'ai utilisé un document Excel ou Google Sheets composé de 3 colonnes : questions, réponses et notes. Vous constaterez que le fait d'écrire vos réponses vous aidera à formuler une réponse concise et percutante.

Il existe de nombreuses ressources en ligne qui listent les questions courantes d'entretien, pour les rôles de frontend, backend, ou full-stack.

Cela peut sembler beaucoup de travail au départ, mais faites-moi confiance – passer du temps à vous préparer et à convertir vos pensées en écriture vous aidera vraiment à structurer mentalement vos réponses.

D'accord, vous avez passé beaucoup de temps à vous préparer et vous avez impressionné votre intervieweur ! La prochaine étape à laquelle vous pouvez vous attendre est l'entretien « sur site ».

En quoi consiste l'entretien sur site ?

La dernière étape du processus d'entretien est généralement appelée l'entretien sur site. Il s'agit souvent de la partie la plus approfondie et la plus importante pour bien performer.

L'une des principales questions auxquelles l'entreprise aimerait avoir une bonne réponse est : comment cette personne travaille-t-elle ? La réponse à cette question est généralement échoée à travers plusieurs niveaux, personnel, technique et professionnel.

Les entreprises recherchent cette réponse en donnant au candidat divers exercices, techniques et interpersonnels, pour évaluer vos compétences et votre adéquation avec leur entreprise.

Selon l'entreprise, cet entretien peut inclure divers éléments, mais voici quelques-uns des plus courants :

  • Programmation en binôme
  • Devoirs à faire à la maison
  • Exercices sur tableau blanc

Exceller lors de votre session de programmation en binôme

L'une des méthodes les plus courantes pour évaluer vos compétences est de programmer en binôme avec un membre de l'équipe avec laquelle vous pourriez travailler.

Cette session dure généralement de 20 à 30 minutes et le problème qui vous est donné est généralement quelque chose que vous verrez sur le poste dans cette entreprise.

Voici quelques points à garder à l'esprit si vous avez une session comme celle-ci :

  • Essayez de rester calme et rappelez-vous que vous êtes ici pour une raison, ils vous apprécient et voient du potentiel en vous.
  • Communiquez à voix haute autant que possible, même si vous pensez parler trop. Il est préférable de trop communiquer dans ces exercices que de rester assis en silence à taper sur le clavier.
  • N'ayez pas peur de poser des questions, ils sont de votre côté ! L'intervieweur a probablement omis des détails critiques exprès pour tester vos compétences de communication tout en travaillant avec d'autres développeurs.

En fin de compte, essayez de garder à l'esprit que cette entreprise voit du potentiel en vous sur le plan personnel et technique. Soyez vous-même et soyez confiant !

Si l'entreprise n'inclut pas d'exercice de programmation en binôme dans son processus, un autre exercice courant consiste à vous donner un projet ou une série de problèmes à résoudre par vous-même.

Réussir votre devoir à faire à la maison

Si l'entreprise souhaite évaluer votre travail à travers le prisme de la manière dont vous travaillez en tant qu'individu, elle pourrait vous demander de compléter un devoir à faire à la maison.

Cela peut aller de la réalisation d'exercices chronométrés sur HackerRank à la réalisation d'un petit projet avec des instructions écrites de l'intervieweur lui-même.

Quelle que soit la forme du devoir à faire à la maison, voici quelques points que je pense que vous devriez garder à l'esprit pour augmenter vos chances de succès :

  • Assurez-vous d'être dans un endroit sans distraction pour toute la durée allouée
  • Éloignez tous les appareils susceptibles de vous distraire
  • Lisez toutes les instructions des problèmes, puis relisez-les

Si votre devoir est chronométré et que vous pensez ne pas avoir assez de temps pour le terminer, écrivez des commentaires tout au long du devoir avec les étapes suivantes que vous entreprendriez si vous aviez plus de temps.

Pour être honnête, beaucoup de ces devoirs sont censés prendre plus de temps que le temps prévu pour les compléter.

L'intervieweur est toujours principalement concentré sur la manière dont vous communiquez, et non sur le fait que vous pouvez écrire du code le plus rapidement, ou résoudre chaque algorithme que vous voyez.

Maîtriser l'exercice sur tableau blanc

Parfois, une entreprise préfère examiner vos compétences techniques et votre capacité à décomposer des problèmes complexes de manière plus abstraite. La manière la plus courante de tester un candidat de cette façon est de lui faire compléter un exercice sur tableau blanc.

Cette méthode d'entretien peut être la plus discutée et la plus redoutée. Si l'on vous demande d'utiliser un tableau blanc pour résoudre une question, rappelez-vous ceci : ils sont (généralement) bien plus intéressés par la manière dont vous communiquez votre processus de résolution de problème, et non par le fait que vous pouvez résoudre le problème.

Si le problème qu'ils vous donnent semble vraiment difficile, ce n'est pas parce qu'ils essaient de vous piéger. Ils veulent avoir une idée de la manière dont vous abordez un problème difficile. Si vous ne parvenez pas à résoudre le problème, cela ne signifie pas que vous avez gâché votre chance.

Si vous gardez ces points à l'esprit pendant cet exercice, cela augmentera vos chances d'impressionner votre intervieweur :

  • Répétez la question à l'intervieweur
  • Posez des questions de clarification sur les cas limites
  • Confirmez les résultats optimaux du problème
  • Écrivez votre code de manière lisible
  • Communiquez chaque étape que vous entreprene

Si vous avez répondu à la question avec succès à la fin de la session, demandez à votre intervieweur si c'était la solution qu'ils obtenaient couramment. Si ce n'est pas le cas, demandez ce que d'autres candidats ont fait ou ce que vous auriez pu faire différemment. Cela montre que vous êtes engagé et curieux.

Si vous n'avez pas répondu à la question avec succès, écrivez des commentaires tout au long du code sur les endroits où vous pourriez continuer à chercher la solution si vous aviez plus de temps. Encore une fois, beaucoup de ces sessions ne sont pas uniquement axées sur l'obtention de la réponse « correcte », mais sur l'obtention d'une bonne idée de la manière dont vous abordez de nouveaux problèmes.

Pratiquer l'entretien, sans la pression

Comme je l'ai mentionné précédemment, les entretiens sont difficiles et peuvent être difficiles à préparer. Cependant, je suis fermement convaincu que la meilleure façon d'assurer une plus grande chance de succès est de pratiquer, pratiquer, pratiquer.

Avez-vous déjà pratiqué une grande présentation pour l'école devant des amis ou de la famille ? Vous avez peut-être encore été nerveux, mais cela aide certainement à vous sentir plus à l'aise pour parler de votre sujet.

L'entretien est également une présentation, et le concept des répétitions est tout aussi important. Dans le monde de 2020, la plupart des entretiens sont réalisés à distance, ce qui rend les entretiens simulés plus réalistes.

Si vous connaissez quelqu'un qui travaille actuellement dans le secteur du logiciel, je lui demanderais s'il serait prêt à consacrer une heure ou deux par semaine pour effectuer ces entretiens simulés avec vous. S'il travaille actuellement dans un rôle similaire à celui pour lequel vous passez un entretien, c'est encore mieux !

Quelques autres options sont Pramp et CodeInterview. Ces sites vous permettent de planifier un entretien et de choisir un focus principal (sujet), une langue et un domaine d'expertise (frontend, backend, etc.).

Ces plateformes vous offrent également plus de flexibilité, afin que vous n'ayez pas à vous soucier de planifier du temps avec quelqu'un que vous connaissez personnellement.

Les entretiens sont stressants, mais je suis convaincu qu'à mesure que vous en passerez plus, votre confiance et votre niveau de confort augmenteront.

Dois-je bachoter la veille ?

Au fil des jours, vous vous sentez plus confiant. Vous êtes fatigué de la préparation, mais excité à l'idée de montrer à cette entreprise ce dont vous êtes capable. C'est enfin la veille de l'entretien – quelle est la meilleure utilisation de votre temps ?

Il peut être tentant pour les candidats de bachoter autant de problèmes Leetcode ou de questions de tableau blanc que possible la veille. Mais je crois que la meilleure chose que vous puissiez faire pour votre esprit est de vous reposer.

Célébrez votre réussite, obtenir des entretiens n'est pas une tâche facile. Soyez gentil avec vous-même. Détendez-vous et passez la journée à faire toute activité qui vous apporte de la joie et (idéalement) vous détend.

Cela peut sembler contre-intuitif, mais je pense que c'est la meilleure chose à faire. Vous aurez besoin que votre cerveau fonctionne bien lors de votre entretien. Par conséquent, lui donner du repos la veille est exactement ce dont il a besoin.

En résumé

Si vous lisez ceci parce que vous allez commencer à vous préparer pour un entretien, félicitations ! J'espère que mes conseils pourront vous aider dans votre préparation et votre état d'esprit à l'approche de votre grand jour.

En fin de compte, rappelez-vous de prendre une profonde inspiration, de vous détendre et d'avoir confiance en vous. Quiconque vous interviewe voit du potentiel dans vos compétences. Vous allez y arriver !