Les entretiens techniques sont connus pour leurs énigmes. Que vous soyez invité à écrire une arborescence binaire sur un tableau blanc, à expliquer un algorithme de tri ou à implémenter FizzBuzz sur 10 lignes ou moins, vous devez vous préparer à des questions de programmation techniques dans l’entretien moyen.
Mais ce n'est pas la seule chose à laquelle vous devriez être préparé.
La réalité est que de nombreux développeurs seront capables de résoudre des questions d’entrevue de programmation communes avec un écart minime entre les réponses. Alors, qu'est-ce qui vous distingue du prochain candidat? C'est exactement ce sur quoi nous allons nous concentrer dans ces cinq conseils.
1. Discutez de votre processus de raisonnement et de résolution de problèmes
La pire chose que vous puissiez faire quand on vous pose une question difficile est d’être totalement sans voix. Malheureusement, il est très facile de faire cela par accident. Lorsque vous rencontrez un problème qui nécessite une énergie mentale et une concentration considérables, il est probable que votre première tendance est de vous replier dans votre esprit. Bien que cela soit naturel, cela n’est pas très utile non plus pour l’intervieweur.
Le but des questions techniques est, en partie, de découvrir comment vous pensez résoudre les problèmes. Quel est votre processus? Comment décomposez-vous les différents composants? Comment arrivez-vous à une solution? Comment réagissez-vous lorsque vous essayez quelque chose qui ne fonctionne pas? Êtes-vous plus apte à expérimenter en code ou à dessiner quelque chose sur un tableau blanc?
Expliquez ce qui se passe dans votre tête lorsque vous résolvez le problème. Agissez comme si vous enregistriez votre voix pour publier en ligne afin d'apprendre aux autres comment résoudre ce problème. Même si vos enquêteurs vous donnent l’espace nécessaire pour réfléchir tranquillement, il peut être avantageux d’expliquer votre processus de pensée sans que cela ne vous incite à le faire. Cela les aide non seulement à comprendre vos compétences et votre pensée critique de manière plus approfondie, mais vous rend également plus mémorable.
2. Quoi de mieux que de résoudre un problème dans une interview technique? Le résoudre deux fois
Très peu de problèmes n'ont qu'une solution et tous les problèmes ont une infinité de solutions incorrectes. Donc, si vous vous concentrez sur un seul moyen de résoudre un problème, vous ratez une occasion majeure de prouver votre flexibilité et vos compétences.
Au lieu de simplement utiliser une solution connue ou de travailler dans une seule langue, ouvrez la discussion sur ce problème et résolvez-la pour différents scénarios. Par exemple, si vous êtes invité à programmer FizzBuzz, vous pouvez proposer de le faire en deux langues, ou en utilisant deux paradigmes différents, ou en prenant certaines contraintes de performance pour une solution et certaines contraintes esthétiques pour un autre.
En validant le fait que le problème peut avoir plusieurs solutions, vous montrez votre adaptabilité, votre flexibilité et votre prise de conscience, ce qui incitera vos enquêteurs à croire que vous serez en mesure de choisir la bonne solution parmi de nombreuses possibilités.
Bien sûr, ne vous laissez pas aller à la mer: il est un art de lire lorsque répondre à une question avec plusieurs solutions est excessif ou heureusement accueilli. En cas de doute, n'hésitez pas à demander à vos enquêteurs s'ils le souhaitent si vous prenez le temps de développer votre solution avec une option secondaire.
3. N'ayez pas peur de partager vos opinions, le cas échéant
Parfois, en résolvant des problèmes, vous prendrez des décisions entièrement fondées sur vos goûts et vos opinions. Et ce n'est pas grave, votre opinion intéresse les employeurs! Votre façon de penser et de réagir aux situations fait toute la différence pour la culture d’une entreprise. Avoir un avis est également un signe de leadership et de maturité technique en tant que développeur. Pour discuter de vos opinions, vous devez avoir évalué d’autres positions sur un sujet donné.
Rappelez-vous cependant que les opinions peuvent être très proches. Si vous n'êtes pas d'accord avec votre interlocuteur sur un sujet donné, ne vous inquiétez pas lorsque vous partagez ces informations. Bien qu'il soit bon d'avoir un point de vue, il est également important de noter que le partage n'est pas toujours nécessaire et que vous savez choisir vos batailles. Une bonne règle à suivre: ne partagez pas votre opinion à moins qu'on vous le demande.
4. Ne terminez jamais une réponse avec "Je ne sais pas"
Sauf si vous êtes confronté à un scénario «Kobayashi Maru», ne terminez jamais une question d'entretien avec «Je ne sais pas». Ce n'est pas une option sur le tas, alors cela ne devrait pas être une option dans l'entretien.
Bien sûr, je ne dis pas que vous devriez tout savoir. C'est impossible! Mais vous devriez montrer que vous avez une stratégie pour apprendre ce que vous devez savoir pour faire le travail. Essayez de répondre par «Je ne sais pas comment faire cela, mais voici comment je pourrais y arriver.» Cette réponse devrait aller au-delà du simple fait de dire «Je ferais une recherche sur Google». Vous feriez mieux d'expliquer la direction la plus probable sur laquelle vous voudriez enquêter.
Surtout, n'ayez pas honte! L'apprentissage est en grande partie le processus de détermination des choses que vous ne connaissez pas. Votre employeur ne s'attend pas à ce que vous soyez parfait, mais il s'attend à ce que vous fassiez preuve de diligence et d'intelligence et que vous ne cessiez jamais de résoudre un problème.
5. Toujours jouer pour l'équipe
À moins que vous ne soyez un développeur indépendant, votre travail sera toujours défini dans le contexte d'une équipe, et le succès de l'équipe est toujours primordial pour vous. Ainsi, votre entretien doit refléter le fait que vous n'êtes pas seulement préoccupé par la résolution de vos problèmes dans une journée donnée, mais plutôt que vous vous concentrez sur tout ce qui est nécessaire pour que l'équipe réussisse.
Alors, comment pouvez-vous communiquer cela dans une interview?
Ne discutez jamais de problèmes comme s'ils étaient dans un vide
Presque tous les projets ont pratiquement des besoins en ressources et des limites, montrez donc votre conscience du contexte du problème. Un problème qui est bien résolu, mais dont le budget a été dépassé, n’est pas vraiment la meilleure solution.
Montrez votre connaissance de l'expertise de l'équipe existante
Parfois, la meilleure réponse à une question consiste à demander aux autres membres de votre équipe de collaborer avec vous. Vous pouvez également faire référence à ces personnes dans les questions techniques: «Si on me présentait ce problème dans le contexte de notre équipe, je demanderais probablement ma solution également. »Cela montre que vous êtes prêt à vous fier à l'expertise des autres et que votre objectif est de trouver la meilleure solution.
Communiquez vos valeurs axées sur l'équipe de manière explicite
C’est une question suffisamment importante pour que vous deviez vous en sortir et le dire. Vous voulez vous assurer que vos employeurs sont pleinement conscients que votre objectif est d'aider l'entreprise à réussir, et pas seulement de rester assis à votre bureau et de coder toute la journée.
En fin de compte, votre travail de développeur ne consiste pas uniquement à coder. C'est être un joueur d'équipe, un chef de file et quelqu'un qui n'est jamais disposé à renoncer à un problème. Les entretiens techniques offrent l’opportunité non seulement de montrer que vous pouvez atteindre des objectifs ou d’écrire des algorithmes, mais aussi de vous démarquer de la concurrence et de montrer la valeur que vous apportez à un employeur.