Comment interviewer des développeurs juniors

Juniors

Lorsqu’il s’agit de faire évoluer votre équipe d’ingénierie logicielle, il y a de nombreux avantages à embaucher des développeurs juniors, qu’ils soient issus d’un milieu universitaire ou autodidactes

Cependant, votre organisation doit être prête à faire appel à ce type de ressources. De plus, il peut être difficile d’interviewer des développeurs juniors. Voici un aperçu de la meilleure façon d’utiliser les compétences d’un ingénieur logiciel junior ainsi que de ce qu’il faut rechercher chez les candidats.

Le rôle d’un ingénieur junior au sein d’une organisation

Il existe de nombreuses bonnes raisons pour lesquelles les entreprises devraient embaucher des développeurs juniors

Vous voudrez peut-être élargir votre équipe pour inclure des développeurs moins expérimentés, malgré la difficulté d’identifier des candidats potentiels et le temps dont vous avez besoin pour les embaucher. Vous constaterez peut-être même qu’il est plus facile d’embaucher de bons développeurs juniors que d’embaucher de bons développeurs seniors, qui sont souvent plus à l’aise dans leurs rôles actuels.

Bien qu’ils puissent avoir besoin de conseils, dans l’ensemble, ces types de développeurs sont désireux d’apprendre et de développer leurs compétences. Ils peuvent apporter beaucoup à une organisation grâce à leur énergie et à l’enthousiasme qu’ils ont à développer leurs compétences dans le but de faire progresser leur carrière.  

Déchargez-vous des tâches moins complexes

L’embauche de développeurs juniors permet à votre équipe de se décharger de tâches plus subalternes et de projets plus simples des développeurs seniors. Cela libère ces ressources seniors pour qu’elles puissent se concentrer sur des questions plus difficiles et réfléchir à la conception et à l’architecture globales de votre produit. Les développeurs juniors peuvent prendre en charge des tâches telles que le dépannage des bogues, la collaboration avec le support ou la maintenance générale. 

De plus, ils peuvent travailler sur des tâches moins critiques pour l’ingénierie, telles que l’aide au développement d’outils internes ou le support des pages Web de l’entreprise. Pour plus d’idées sur les tâches à accomplir pour les ingénieurs logiciels juniors, consultez cette liste des responsabilités des ingénieurs logiciels juniors et ce modèle d’emploi pour les développeurs de logiciels juniors.

Développez votre infrastructure et vos processus

Souvent, la construction de votre infrastructure opérationnelle est négligée en raison des frais généraux liés à leur mise en place et de l’impact sur les livrables à court terme, en particulier lorsque vous n’avez qu’une poignée de développeurs. Cependant, de tels processus auront de nombreux avantages à long terme sur la stabilité de votre base de code et votre capacité à livrer selon un calendrier prévisible. 

Le fait de disposer de plus de ressources vous permet de développer des éléments tels que l’instrumentation de votre CI/CD ou de mettre en œuvre des tests unitaires, fonctionnels et d’automatisation plus approfondis. De plus, vous pouvez mettre en place davantage de processus autour du développement, tels que les revues de code et la programmation en binôme. Tout cela devrait être bien dans les capacités des programmeurs plus juniors pour aider à la mise en œuvre, avec les conseils appropriés.

Êtes-vous prêt à embaucher des programmeurs juniors ?

Lorsque vous envisagez la possibilité d’embaucher des programmeurs juniors, vous devez tenir compte d’un certain nombre de facteurs.

Votre équipe possède-t-elle les compétences managériales nécessaires ?

Tout d’abord, vous devez disposer de ressources ayant des compétences en matière de gestion et comprendre qu’une partie de leur temps sera consacrée à l’attribution de tâches, au suivi des progrès et à la réponse aux questions sur la base de code ou les problèmes généraux de programmation. 

Certaines des compétences en gestion requises pour maintenir les projets sur la bonne voie ne sont peut-être pas du ressort de vos développeurs plus expérimentés. Vous ne voudrez peut-être même pas qu’ils passent des cycles sur ce genre de tâches, de sorte que des chefs de projet dédiés seront nécessaires. À tout le moins, vous voudrez vous assurer que vos développeurs principaux ont une formation appropriée en gestion. Ce type de formation se fait en termes d’outils (création de diagrammes de Gantt ou organisation de sprints de code), mais aussi de développement de compétences interpersonnelles qui leur permettent de garder les ressources qui travaillent sous leurs ordres concentrées et productives.

Pour plus d’idées liées à la gestion, consultez notre article sur les 5 façons de gérer les jeunes développeurs.

Avez-vous des employés qui peuvent agir à titre de mentors ?

Vous devriez également avoir des développeurs seniors qui peuvent guider le développement et encadrer les programmeurs juniors sur les meilleures pratiques. Bien que ces professionnels plus expérimentés aient un coût, vous bénéficierez grandement de leur expertise et de leur capacité à orienter les recrues les plus vertes dans la bonne direction. 

Même si un développeur junior coûte moins cher à un taux horaire, vous ne voulez pas qu’il tourne en rond ou qu’il passe du temps à la fois au développement, à l’assurance qualité et à la gestion à réimplémenter le code. Au minimum, vous voudrez vous assurer que vos développeurs seniors effectuent des révisions de code et veillent à ce que les conventions soient appliquées, mais il existe de nombreuses approches sur la façon d’encadrer les développeurs juniors.

Encadrez vos développeurs juniors que vous devez

Types de développeurs juniors

Lorsque vous embauchez des développeurs juniors, gardez à l’esprit que ces types de candidats peuvent provenir d’horizons différents. Vous pouvez les considérer comme tombant vaguement dans l’une des deux grandes catégories.

Être conscient de ces deux types de développeurs peut vous aider à adapter votre processus de sélection et vos questions d’entrevue

Comme autre option, vous pouvez également envisager d’embaucher des stagiaires en technologie - voir nos 5 conseils pour recruter des stagiaires en technologie.

Jeunes diplômés 

Un type courant de développeur junior que vous embauchez peut-être sont les jeunes diplômés d’établissements universitaires. Ces candidats doivent maîtriser les concepts informatiques tels que les structures de données et les algorithmes. Ce type de connaissance peut être important pour écrire un code efficace, plus robuste et moins susceptible de vous obliger à faire face à des problèmes de performances. 

Cependant, vous constaterez peut-être que ce type de recrue manque d’expérience pratique et que les projets sur lesquels ils ont travaillé peuvent manquer de complexité. Ils peuvent également être moins habitués à travailler avec une équipe d’ingénieurs, en particulier dans un environnement Agile.

Développeurs autodidactes

Il est également probable que vous rencontriez davantage de développeurs autodidactes au cours de votre processus d’embauche.

La programmation a toujours été un domaine où les passionnés et les amateurs ont excellé, et vous n’avez pas nécessairement besoin d’embaucher quelqu’un avec un diplôme en informatique (Bill Gates était, après tout, un décrocheur). Vous pouvez même trouver qu’un diplôme plus avancé ne signifie pas nécessairement un candidat de meilleure qualité.

Il existe un ensemble toujours croissant d’opportunités pour les individus de développer la maîtrise du code en dehors des institutions académiques plus traditionnelles grâce à l’apprentissage en ligne. Coursera, par exemple, permet d’accéder à des cours en ligne et CodinGame permet aux développeurs de tester et de développer leurs compétences. 

Les candidats ayant ce type d’expérience sont susceptibles d’avoir un grand enthousiasme pour la programmation. Ils peuvent également avoir beaucoup plus d’expérience pratique en s’engageant dans des projets open source, ce qui pourrait leur donner une longueur d’avance sur des questions pratiques telles que la création de branches et la fusion de code. Néanmoins, vous devez être conscient du fait que ces candidats peuvent avoir des lacunes dans leurs connaissances théoriques et les meilleures pratiques de développement.

Ce que tout programmeur junior devrait savoir

Même si vous les interviewez pour un poste de programmeur plus junior, vos candidats doivent tout de même posséder des connaissances et des compétences essentielles. Vous voudrez également qu’ils aient les traits de caractère plus standard que vous recherchez généralement chez toute recrue, comme de solides compétences en communication. 

Connaissances fondamentales en programmation

Pour commencer, vos recrues potentielles doivent être familiarisées avec les bases des langages avec lesquels vous vous développez principalement. Bien qu’il faille s’attendre à ce qu’une formation « sur le tas » soit nécessaire, les candidats doivent tout de même disposer d’une base de connaissances de base qui leur permet de lire et d’écrire du code dans ce langage ou dans un langage proche. Assurez-vous simplement que votre processus de sélection et vos questions d’entrevue sont axés sur la couverture de ces principes fondamentaux et ne disqualifient pas automatiquement les candidats pour manque de connaissances sur des concepts plus avancés.

Vos recrues potentielles doivent avoir une certaine connaissance des domaines problématiques courants tels que le développement Web. La maîtrise des technologies web telles que HTML devrait être un « must have » par exemple. Plus ils peuvent parler à d’autres technologies telles que CSS et JavaScript, mieux c’est.

Aptitude au dépannage 

Vous devez sonder l’expérience des candidats en matière de résolution de bogues et leur connaissance des processus de développement tels que l’intégration et le déploiement continus. À tout le moins, vous voudrez évaluer leur intérêt pour ce genre de tâches, car c’est souvent le type de travail que vous voudrez leur faire commencer à faire au fur et à mesure que vous les familiariserez avec votre base de code.

Plus important encore, vos candidats doivent avoir de solides compétences en résolution de problèmes et être capables de penser logiquement. Cela inclut la capacité de décomposer les problèmes en problèmes de composants plus petits. 

Le processus d’entrevue pour les programmeurs juniors

Présélection des candidats juniors

Lorsque vous évaluez les candidats, un grand gain de temps est d’effectuer une première sélection à l’aide de CodinGame. Notre outil vous permet d’adapter vos questions aux langages de programmation que vous utilisez. 

Vous pouvez couvrir les bases dans vos questions d’entretien avec les développeurs pour valider les compétences des candidats. De plus, vous n’avez pas besoin de prendre du temps à vos autres développeurs et de les laisser se concentrer uniquement sur l’entretien avec les candidats qui répondent à certains critères de seuil. 

Une fois que votre groupe de candidats a terminé sa sélection , vous pouvez voir un rapport sur eux et leurs classements relatifs.

Entretiens interactifs de codage en direct

Une fois que vous avez sélectionné les candidats à interviewer, vous pouvez mener des entretiens de codage interactifs en direct à l’aide de CoderPad

Les entretiens de codage en direct sont considérés comme la meilleure option par les candidats et les recruteurs : 78 % des développeurs et 79 % des recruteurs déclarent qu’un entretien de codage en direct est leur format d’entretien préféré. 

De plus, 74 % des développeurs pensent que les entretiens de codage en direct sont le meilleur moyen de mettre en valeur leurs compétences. Ce type d’entretien permet à votre équipe d’avoir une idée de la façon dont elle interagit avec le candidat.

Meilleures pratiques pour les entretiens de codage en direct

Bien que les entretiens en personne comportent leur lot de problèmes (les candidats trouvent le lieu, etc.), il peut également y avoir des problèmes avec les entretiens en ligne. Il peut s’agir de problèmes techniques ou de mauvaises interprétations.

Évitez les problèmes techniques

Vous devez être prêt à faire face à des difficultés techniques (telles que des connexions Internet instables, des outils peu fiables, etc.). En fait, les « difficultés techniques » figurent dans le top 3 des difficultés rencontrées par les développeurs et les recruteurs lors d’un entretien en ligne (CodinGame & CoderPad Tech Hiring Survey). 

Une astuce pour garantir une expérience fiable et fluide est de communiquer à votre candidat bien à l’avance qu’il a besoin d’accéder à une connexion Internet fiable. D’autres difficultés techniques peuvent être évitées en utilisant CoderPad. Les candidats n’ont pas besoin de télécharger ou de configurer quoi que ce soit sur leur ordinateur, ils ont juste besoin d’accéder à une URL vers le bac à sable CoderPad.

Bac à sable CoderPad
Votre bac à sable CoderPad : un environnement performant basé sur un navigateur

Évaluer les soft skills

Une question plus difficile est de savoir comment s’assurer que vous parvenez à évaluer de manière adéquate les « compétences non techniques » d’un développeur. Selon notre enquête tech 2022, 30 % des développeurs ont du mal à démontrer leur personnalité et leurs soft skills à distance. Afin de contourner ce problème, il existe certaines stratégies que vous pouvez utiliser pendant l’entretien lui-même. 

Choisissez de bons exemples de problèmes

En général, vous devez donner au candidat l’occasion de démontrer à quel point il comprend un problème et peut vous l’expliquer, à la fois en termes de contexte et d’attentes quant à la façon dont il devrait être résolu (par exemple, le résultat attendu et les conditions d’erreur de traitement). 

Une chose qui aide est de trouver des moyens d’ajouter un peu de légèreté aux exemples travaillés. Ne rendez pas les scénarios trop secs - donnez à la personne interrogée une chance de montrer sa personnalité. Il est également utile que les exemples soient concrets et fondés dans des termes familiers à la personne interrogée. Bien qu’il soit important de voir si votre recrue potentielle peut saisir les concepts qui sont importants pour le domaine de problème dans lequel elle travaillera, dans le but de tester sa maîtrise de concepts de programmation tels que l’abstraction et l’héritage, il n’y a pas de mal à jeter quelques animaux flous dans le mélange lors de la définition de vos problèmes.

Évaluez la façon dont vous travaillez ensemble

Pendant que vous discutez avec le candidat, dites-lui clairement que vous travaillez à résoudre le problème ensemble. Ceci est particulièrement important lors de l’embauche de développeurs juniors, pour lesquels vous devez vous sentir à l’aise de jouer un rôle de mentor. Vous manquez une occasion d’apprendre quel type de relation de travail vous pourriez avoir ensemble si vous vous contentez de regarder le candidat se débattre.

Donnez des indices et interrogez le candidat sur son processus de réflexion, en particulier lorsqu’il semble bloqué ou semble s’égarer dans son approche. Ils peuvent être nerveux à l’idée de vous demander de clarifier quelque chose qui n’a peut-être pas été communiqué clairement, c’est donc aussi une chance pour vous d’améliorer votre propre technique d’entretien.  

Dynamisez votre entretien

Pour obtenir une évaluation complète d’un candidat, il est utile de faire preuve d’adaptabilité pendant le processus d’entretien. Dans le contexte du problème sur lequel ils travaillent, proposez des pistes alternatives pour voir comment le candidat s’adapte à l’évolution des circonstances. Essayez de savoir s’ils peuvent tenir compte des cas limites et de la gestion des erreurs, ainsi que du « chemin heureux ». 

S’ils semblent s’enfoncer dans un terrier de lapin, voyez si vous pouvez leur faire comprendre pourquoi la solution sur laquelle ils travaillent n’est peut-être pas idéale en leur donnant des indices sur les problèmes qu’ils pourraient rencontrer en conséquence. Souvent, une question qui commence par l’expression « et si ? » est une invite utile, mais soyez également prêt à vous lancer et à écrire vous-même une ligne de code comme si vous étiez de la programmation par les pairs. 

Donnez des devoirs à vos candidats

Enfin, il est bon d’offrir aux candidats la possibilité de faire un travail à faire à la maison afin d’évaluer la façon dont ils gèrent un problème qui peut être plus important que ce qui peut être traité lors d’une session d’entretien en direct. Vous pouvez également voir si le candidat s’en sort mieux sans la pression d’un entretien en direct, où il peut être trop préoccupé par le fait de faire bonne impression. 

Pour plus d’idées sur la meilleure façon d’aborder l’embauche à distance, veuillez consulter notre article sur l’embauche à distance.

VOUS AVEZ DU MAL À EMBAUCHER DES DÉVELOPPEURS QUALIFIÉS ?

Il existe une meilleure façon de tester les compétences en codage.

Photo d'Eric Philips

Éric Philips

Eric Phillips a travaillé en tant qu’ingénieur logiciel et architecte dans le développement de la pile complète ainsi que dans la création de frameworks d’intégration et d’API pour les logiciels d’entreprise. Il est en fait diplômé en géographie (de toutes choses) de l’Université du Minnesota, bien que ces jours-ci, une grande partie de son attention et de sa passion soit l’écriture de chansons.