
J’ai récemment effectué une session de recrutement de 3 élèves pour un organisme de formation. Ce dernier souhaitait développer et mettre en place un intranet capable de gérer les notes des étudiants et des emplois du temps. Laissez moi conter dans les colonnes de ZT les questions et points abordés, et les retours obtenus.
Premier contact entre le candidat et le recruteur : le CV. Bien que corrects, ils comportaient quelques perles. Pour commencer, une utilisation assez litigieuse du terme « ingénieur », pour une école qui ne propose absolument pas des formations et des diplômes d’ingénieurs. Je retiendrai aussi l’approximation suivante :
Base de données : Oracle (MySQI, Pl/SQL certifié 1Z0-007)
Étrange utilisation des parenthèses, n’est-ce pas ?
Question 1 : le jeu des 15 erreurs
Passons ensuite aux questions techniques. Je commence par fournir un code hideux, écrit par mes soins, tant au niveau du comportement de la fonction que du code en lui même. Je demande alors au candidat de me trouver un maximum de choses qui ne vont pas, qu’on pourrait changer, qu’il ne faudrait pas faire, dont on pourrait discuter. L’objectif n’est pas tant de trouver TOUS les écarts, mais au moins de montrer ce à quoi on accorde de l’importance. Voici le code en question, admirez plutôt :
<?
// fonction qui calcule la vitesse maximale
// en fonction du type de la voiture passé en paramètre
function calcul_vitesse_maximale($voiture)
{
// si le type est "sport"
if ($voiture->getType() == "sport") {
$max = 230;
}
// si le type vaut "1980"
if ($voiture->getType() == "1980") {
$max = "120";
}
else
{
$max = "inconnu";
}
mysql_query("update from voitures where id="$voiture->getId" set max=$max);
return($max);
}
?>
Je considère qu’il y a facilement 15 « erreurs », ou au moins points à discuter. Certains sont carrément des gorritudes. Je vous invite à essayer de touver un maximum de choses par le biais des commentaires, je laisserai la solution dans un prochain billet.
Et bien, quelle ne fût pas ma surprise de découvrir que les candidats avaient un mal fou à trouver ne serait-ce qu’un seul point discutable. À l’exception d’un candidat, qui paradoxalement avait beaucoup moins de pratique que les autres (pour ne pas dire presque aucune), qui a tout de même remonté 3 points importants. Inquiétant, pour des élèves « ingénieurs » et développeurs en Bac+4. La réponse la plus surprenante ? La voici : « Oh vous savez, j’ai l’habitude de travailler sur du code bien plus laid que ça ! »
Question 2 : Simulateur de grand mère
L’organise recruteur ne possède absolument aucune connaissance technique. J’étais donc à la recherche d’un stagiaire capable de vulgariser au mieux les termes, questions et démarches techniques. Je demande donc aux candidats de m’expliquer un mot technique comme si j’étais leur grand-mère. Voici un extrait de conversation type :
- Pouvez-vous m’expliquer le mot « framework » ?
- Hum.. un quoi ?
- Un framework. Comme Zend, symfony, ou Struts
- Jamais entendu parler…
- Bon.. peut-être pouvez-vous m’expliquer ce qu’est un design pattern ?
- Ha.. ça me dit quelque chose, mais en mathématiques…
- Un ORM alors peut être ?
- …
Et je vous jure que je n’exagère pas du tout. Pas évident de faire un exercice de vulgarisation dans ces conditions… Du coup, j’ai laissé de côté mes autres questions :
- Vous utilisez un système de versionning ?
- Vous pourriez m’écrire la fonction factorielle en récursif ? en itératif ? (Amaury si tu passes par là…)
- Quels types d’attaques connaissez-vous ?
- Vous aimez le Nutella ?
Le but de ce billet était bien évidemment de montrer comment une école qui prétend au titre d’école d’ingénieur en informatique peut envoyer des étudiants avec peu de background technique pour un stage en Bac +4. Ces étudiants avaient bien entendu d’autres qualités qui leurs sont propres : bon relationnel, bonne gestion de projet, pour ne citer que les principales. La solution de l’exercice1 au prochain billet !






Abonnement Fil RSS