Nous embauchons actuellement un développeur junior pour m'aider, car j'ai plus de projets que je ne peux en gérer actuellement. Je n'ai jamais embauché quelqu'un qui n'était pas un ami ou du moins une connaissance. J'ai un entretien téléphonique avec le seul candidat qui m'a vraiment marqué (sur papier), mais je ne l'ai jamais fait auparavant.
Nos projets sont tous des applications Web hautement évolutives et gourmandes en données qui traitent des millions de transactions par heure, sur plusieurs serveurs et clients. Pour être spécifique à la langue/à la pile, nous utilisons ASP.Net MVC2, WebForms et C # 4, MSSQL 2008 R2, tous exécutés sur Windows Server 2008 R2
Que dois-je lui demander? Comment dois-je structurer l'appel téléphonique?
Renseignez-vous sur les blogs technologiques qu'ils lisent, demandez ce que le demandeur trouve intéressant dans la technologie actuelle et pourquoi.
Essentiellement, pour une entrevue téléphonique, vous voulez savoir s'il s'agit d'une personne passionnée par la technologie et la programmation et intéressée à en apprendre et à en savoir plus.
Comme il s'agit d'un junior, vous ne pouvez pas vous attendre à ce qu'ils connaissent de nombreux sujets avancés, mais vous voulez être sûr qu'ils peuvent penser comme un programmeur - donnez-leur un problème simple et demandez-leur de vous expliquer comment ils pourraient le résoudre. Cela vous donnera un aperçu de la façon dont ils pensent et résolvent les problèmes.
J'adopte une approche ouverte pour les entretiens téléphoniques, mais pour mettre une certaine structure, je demande généralement à la personne de parler du curriculum vitae qu'elle a soumis. Souvent, la façon dont ils parcourent leur curriculum vitae soulèvera d'autres questions et vous comprendrez mieux à quoi ils ressemblent.
L'autre chose à laquelle penser lors de l'entretien téléphonique est de demander: Puis-je travailler avec cette personne? Sont-ils énergiques? Ennuyeux? Précis?
Codez avec eux.
Vous devriez certainement faire les trucs d'entrevue habituels. Mais je n'embauche personne sans faire une session de programmation en binôme avec eux.
Mon approche: je prendrai 2-3 heures et un problème de jouet (par exemple, "Construisons Twitter v 0.1" pour un développeur full-stack, ou "Implémentons List from primitives" pour une personne back-end). Nous allons nous asseoir sur le même ordinateur et nous verrons comment y faire face. J'écrirai le premier test unitaire et je dirai "fais ça". J'écrirai peut-être les deux prochains tests pour les aider à démarrer. Et puis je les laissais généralement courir, en ne sautant qu'occasionnellement. Comme nous arrivons à court de temps, je vais les arrêter et leur demander où ils le prendraient ensuite, et ce qu'ils voudraient faire avant de le pousser en direct.
Ce que je recherche:
What's your Stack Overflow account name?
L'une des meilleures façons de savoir à quoi ressemblera le code de quelqu'un est de le voir de première main. L'une des meilleures façons de le faire est via SO.
Sinon, des questions standard s'appliquent. Renseignez-vous sur les situations difficiles et comment elles les ont surmontées. Demandez quelles sont les nouvelles langues qu'ils apprennent ou envisagent d'apprendre, et pourquoi. Demandez-leur ce que IDE ils utilisent, et pourquoi l'ont-ils choisi? Quel contrôle de source?
Vous pouvez apprendre beaucoup en posant des questions ouvertes qui pourraient ne pas se rapporter à un projet spécifique, mais leur permettre à la place de travailler avec vous sur leur processus de réflexion.
Une chose que je n'ai pas vue ici dans ma lecture rapide est la nécessité de leur poser des questions sur:
1 - Volonté d'apprendre
2 - Capacité d'auto-apprentissage vs formation formelle
3 - Exemple de quelque chose qu'ils ont appris par le passé
4 - Un exemple de zones avec lesquelles ils ne sont pas à l'aise
5 - Question générale de haut niveau comme "si vous êtes chargé de créer une application Web sur ... quelles tâches doivent être effectuées et qui devrait les effectuer" - Cela devrait vous donner une idée de leurs connaissances actuelles sur le processus de développement - Il n'a pas besoin d'être précis, mais au moins vous connaîtrez leur point de vue tel qu'il est aujourd'hui.
Parlez-moi d'un projet sur lequel vous avez travaillé dans le passé
C'est une excellente question pour les interviews à mon avis, par téléphone ou autrement. S'ils peuvent parler intelligemment d'un projet sur lequel ils ont travaillé, il est probable qu'ils "l'obtiennent". Vous embauchez un développeur de niveau junior, il n'est donc pas important qu'ils soient encore un expert, mais ils devraient au moins comprendre leur domaine suffisamment bien pour en parler. Habituellement, les personnes que vous voudrez embaucher n'auront aucun mal à courir avec cela, tandis que les personnes dont vous voudrez peut-être vous éloigner répondront en quelques phrases ou moins.
Que faites-vous pour rester à jour?
Dans une industrie en constante évolution, je pense qu'il est important pour eux de rester à jour. Ce n'est pas la question la plus importante que je pose dans une interview, mais s'ils ne peuvent rien dire, ce n'est pas un bon signe.
Dites-moi comment vous écririez un cours de vélo
Peut-être une meilleure question pour un entretien en personne afin qu'ils puissent réellement écrire un pseudo-code, mais je pense que cela pourrait aussi fonctionner pour un entretien téléphonique ... Décrivez un vélo (il a des poignées, des roues, etc. Quelqu'un le monte. ) et demandez-leur de décrire comment ils modéliseraient la ou les classes. Rien de révolutionnaire ici, mais s'ils luttent avec cette question, ils sont probablement encore TROP juniors pour être un atout.
Il existe de nombreux bons conseils d'entrevue déjà écrits, mais je ne pense pas que vous puissiez pourvoir ce poste jusqu'à ce que vous sachiez exactement ce qu'ils vont faire au jour le jour. Si votre première pensée était: "Quoi que j'aie besoin d'eux pour faire". Arrête. Trouvez un morceau de code spécifique à réviser. Choisissez le meilleur et le pire code pour eux et voyez s'ils connaissent la différence. Donnez-leur des domaines sur lesquels travailler pour un premier projet rapide qui pourrait avoir été négligé.
J'espère que vous avez embauché le meilleur programmeur, mais tout le monde a des domaines dans lesquels ils sont meilleurs/plus expérimentés que les autres. Profitez-en et définissez leur rôle en conséquence.
Oh, et embauchez quelqu'un avec une histoire de faire avancer les choses.
Lorsque vous êtes en tête-à-tête avec le développeur, vous pouvez le connaître et vérifier s’il est honnête avec vous.
Pour ce faire, vous pouvez lui poser la question suivante pour savoir comment honnête il est vraiment
S'ils ont fait des certifications, comme une certification Microsoft, vérifiez avec eux s'ils ont vraiment étudié et effacé.
Certains développeurs juniors qui ont fait leurs projets de dernière année, n'auraient pas fait le projet par eux-mêmes, c'est-à-dire que leurs amis devaient l'avoir fait pour eux, etc.
L'honnêteté joue un rôle très important, lorsque le développeur junior est chargé de projets confidentiels.
Si vous pensez que vous pouvez leur faire confiance, vous pouvez donner un questionnaire sur les technologies pour lesquelles ils sont recrutés, suivi d'un texte pratique avec un scénario pour vérifier s'ils ont la capacité logique, c'est-à-dire pour vérifier s'ils ont un contact constant dans la programmation.
Le PDG de Sandglaz, Nada Aldahleh, a récemment écrit un blog à ce sujet, basé sur sa propre expérience d'embauche de développeurs pour sa startup. Voici quelques-unes des choses qu'elle recherche:
Et, bien sûr, le test de programmation, qui ne devrait pas être composé de la question Fizz Buzz. Une mission réelle qui peut être effectuée en quelques heures à votre bureau serait le meilleur type de test.
Vous pouvez lire plus de ses conseils ici: http://blog.sandglaz.com/how-to-interview-and-hire-junior-developers/