Article original : How to Ace Your Coding Interview – Advice from a Senior Software Engineer

Par Daniel Chae

Les entretiens techniques sont l'une des parties les plus stressantes de l'obtention d'un emploi dans la tech.

Vous ne savez pas quelles questions l'interviewer va vous poser. Et si vous n'aviez aucune idée de la manière de résoudre le problème devant vous ? Et si vous perdiez vos moyens et donniez l'impression de ne pas savoir ce que vous faites ?

De nombreux aspirants programmeurs se mettent dans tous leurs états en essayant de mémoriser chaque question d'entretien de codage. Vous et moi savons que cette approche n'est pas viable. Je suis ici pour vous dire qu'il existe un moyen plus simple.

J'ai récemment discuté avec mon amie Michelle, qui est Senior Software Engineer chez Stitch Fix (une entreprise récemment entrée en bourse). Elle a partagé les types de qualités qu'elle recherche chez les développeurs qu'elle interviewe.

Honnêtement, ces qualités pourraient vous surprendre. Je vous promets qu'elles n'incluent pas la mémorisation de questions et de solutions d'entretiens de codage.

Le reste de cet article détaillera les qualités que Michelle recherche chez les candidats développeurs. Je traduirai chacune de ces qualités en comportements clés lors de l'entretien. Ensuite, je vous dirai comment vous pouvez les mettre en œuvre dans vos propres entretiens. Commençons.

Qualités à avoir avant l'entretien de codage

Image

Quand je me suis assis avec Michelle, une partie de moi imaginait que j'allais obtenir un code secret pour craquer l'entretien de codage. Je pensais entendre l'algorithme ultime pour résoudre tous les problèmes existants.

Bien que nous sachions qu'un algorithme universel n'existe pas, elle a partagé quelque chose d'encore mieux : comment créer un Framework mental pour l'entretien.

Le succès ne consiste pas à mémoriser chaque problème et sa solution. Il s'agit plutôt d'apprendre à résoudre des problèmes.

En tant que développeur, il n'y aura pas de réponse toute faite de type LeetCode. C'est là que les Frameworks mentaux sont incroyablement utiles. Ils créent juste assez de certitude dans la résolution de problèmes pour surmonter un problème apparemment ambigu.

Voici les composants clés de Michelle pour construire un Framework de mentalité redoutable pour votre entretien de codage.

Soyez curieux

Image

L'un des plus grands conseils de Michelle pour les candidats développeurs est d'être curieux. Clarifiez le problème et posez des questions. Partagez toutes les pensées que vous avez sur le problème auquel vous faites face. Les intervieweurs ne cherchent pas seulement la bonne solution. Ils veulent voir comment vous réfléchissez.

La meilleure façon de montrer comment vous réfléchissez est de poser des questions. Disons qu'un interviewer vous demande de vérifier si une chaîne contient des chiffres. Vous devriez clarifier la question avec vos propres mots, quelque chose comme :

"Donc je dois trouver un moyen de vérifier si un ensemble de caractères contient des chiffres ?"

En disant cela, vous donnez aux intervieweurs un aperçu de votre logique. Vous leur montrez également que vous vous intéressez au problème.

Et n'ayez pas peur de poser des questions de suivi. En utilisant le même exemple ci-dessus, voici quelques questions que vous pouvez poser :

"Est-ce que les nombres que je recherche contiennent des décimales ?"

"Dois-je trier les caractères d'une manière ou d'une autre avant de les vérifier ?"

Soyez ouvert aux suggestions

Image

Une chose qu'il est facile d'oublier est que les intervieweurs veulent que vous réussissiez. La plupart des intervieweurs veulent fournir des commentaires et des suggestions en temps réel aux candidats. Mais les candidats adoptent souvent une approche non verbale et isolée lors de l'entretien de codage.

Une façon d'être plus ouvert aux suggestions est d'engager la conversation avec votre interviewer. Verbalisez votre logique et emmenez-les avec vous dans votre parcours de résolution de problèmes.

Nous utiliserons le même problème que ci-dessus. Voici quelques façons de verbaliser votre logique dès le départ :

"Donc je vais devoir établir un moyen de séparer les caractères des chiffres, n'est-ce pas ?"

"Je pense à itérer à travers l'ensemble des caractères d'un bout à l'autre."

"Je veux un moyen programmatique d'itérer à travers les caractères, mais de m'arrêter aux chiffres."

Plus vous fournissez d'informations, plus votre interviewer se sentira enclin à vous aider.

Travaillez de manière collaborative

Image

Cela va de pair avec ce qui précède. L'idée qu'un développeur travaille de manière isolée et seul est un mythe. Vous disposez d'outils de contrôle de version et de gestion de projet qui nécessitent une collaboration.

Vous devriez verbaliser votre approche, poser d'excellentes questions et impliquer votre interviewer. Vous arriverez à la solution beaucoup plus rapidement. Mais vous montrerez également à votre interviewer que vous pouvez collaborer efficacement avec d'autres développeurs.

Voici quelques façons d'impliquer votre interviewer :

"Est-ce qu'une boucle for serait trop simple/complexe pour cette solution ?"

"À quel point est-il important d'établir s'il y a des floats ou non ?"

"Y a-t-il un type de solution que vous avez en tête ?"

Soyez prêt à vous lancer

Image

Enfin, Michelle a suggéré que les candidats développeurs devraient simplement se lancer. C'est-à-dire, viser le succès que vous voulez voir.

L'un des cas les plus fréquents pour les candidats est qu'ils se figent. Bien que cela soit compréhensible, personne n'est gagnant dans cette situation. Vous ne pouvez pas montrer à quel point vous êtes incroyable et l'interviewer ne peut pas vous aider. Voici ce que Michelle a dit pour « simplement se lancer » :

Même si vous devez écrire votre implémentation en pseudocode, c'est mieux que d'être trop nerveux pour essayer. Mettre quelque chose sur le tableau/Coderpad invitera à la discussion, donnera une chance de partager vos pensées et une opportunité d'apprendre.

N'ayez pas peur d'échouer ! Cela signifie simplement que vous êtes un pas plus proche de la réussite. :)

« Simplement se lancer » peut signifier beaucoup de choses. Cela dit, voici quelques exemples de ce à quoi cela peut ressembler :

  • Écrire du pseudocode sur le tableau blanc, sur papier ou sur Coderpad
  • Notez exactement où vous êtes bloqué dans votre logique
  • Verbalisez la solution que vous aimeriez pouvoir trouver

Utilisez le Framework de mentalité pour réussir votre entretien de codage !

Image

Les entretiens de codage peuvent être effrayants et il y a toujours la peur de se figer. Une partie de cette peur vient du fait de ne pas savoir quelles questions vont tomber.

La bonne nouvelle est que vous n'avez plus besoin de mémoriser les questions et les solutions de codage. Au lieu de cela, construisez un Framework de mentalité avec les comportements clés de l'entretien que vous avez lus aujourd'hui.

Vous voulez être curieux et ouvert aux suggestions. Vous devriez travailler en collaboration avec votre interviewer. Soyez prêt à viser le succès que vous voulez voir. Bon entretien !

Si vous voulez voir plus de contenu de ce type, abonnez-vous à ma newsletter sur Course to Hire. Je vous aiderai à apprendre à coder et à percer dans la tech. N'hésitez pas à m'ajouter également sur LinkedIn.

P.S. – si vous souhaitez entrer en contact avec Michelle, contactez-moi sur Course to Hire ou LinkedIn et je pourrai faire les présentations.