Depuis que je suis en charge des technologies chez LVL, une de mes tâches est d’assister les ressources humaines dans le processus d’embauche de nouveaux programmeurs. Je me rappelle quand j’étais un jeune intégrateur chez PTM et que je regardais le boss allez faire passer des entrevues comment j’avais une pointe d’envie. J’imagine que la source de cette envie viens de ce que l’on ressent quand on est du coté demandeur de la chaise. Cette impression que l’on a de l’importance de la personne qui nous questionnes. Maintenant que j’occupe cette place, du moins partiellement, ma perspective a complètement changer. Je me rend compte que c’est pas évident, à tous le moins en programmation, de trouver des gens compétents. A quelque part ça me rassure sur ma valeur sur le marché. C’est incroyable de voir ce qui sort d’une annonce sur Jobboom.
Jobboom demande au candidat de donner un aperçu de leur niveau de connaissance pour chacun des critères. Je peux dire que le mot expert ne veux pas dire la même chose pour tout le monde. Je penses que c’est raisonnable, quand on se présente a une entrevue pour une job de programmeur Java, de s’attendre a quelques questions sur le langage. Voici les questions que je poses:
1) C’est quoi les différences entre java.util.List et java.util.Set?
2) Qu’est ce qui peut causer un NullPointerException?
3) Nommez moi quelques unes des additions au langage entre la version 1.4 et 1.5
4) Quel sont les différence entre une Interface et une classe abstraite
5) A quoi sert le mot clef “static” en Java
Ce sont, a mon avis des questions auxquelles un “expert” doit pouvoir a tous le moins réagir intelligemment.
Pour la question no 1 la plus part des candidat me regarde avec un air bébête et semble penser que il n’y a en fait pas de différence.
A la question no 2 la moitié des candidats après avoir bafouiller pendant quelques instants finissent par émettre un semblant de réponse acceptable. Aucun candidat n’a répondu “l’appel d’une méthode sur une instance(variable) non initialisé” qui est, a mon avis une réponse évidente.
Avec la question 3 mon but est de voir si les gens dont la profession est de programmer en Java prennent le temps de lire les “release notes” quand une nouvelle version fait son apparition. Il faut se rappeler que JSDK 1.5 est sortie depuis plus de un an quand même. Il y a eu plein de nouveaux trucs ajouter a Java dans la version 1.5 qui ont fait couler plein d’encre (virtuelle) dont les générique, les “for each”, etc Je n’ai des réponses que dans 15 à 20% des cas. C’est pathétique; tout simplement pathétique. Aussi “bad” que mon orthographe!
La question 4 est, pour moi, une opportunité de voir si un candidat est articulé et me donne aussi une idée de sa compréhension de l’héritage. Quand je l’ai mit dans le questionnaire mes collègues se foutait un peu de moi en disant que c’était trop facile. Oh boy! Incroyable! Absolument incroyable. Bien que au moins 80% des gens rencontrer m’est donner une réponse, personne mais alors la personne, ne m’as parler d’héritage. La plupart ont cafouillé quelque chose sur le corps des méthodes mais personnes ne m’as seulement parlé d’héritage…. Ah crap!
Finalement la question 5 je la voyais comme du bonbon tellement c’est simple. Sérieusement “static” en Java???! Un étudiant de première année apprend ça au BAC. Bein croyez le ou non 15 à 20% des gens ont pas répondu correctement.
En plus de programmeurs Java on a besoin de quelqu’un pour le contrôle de qualité et aussi d’un king en Javascript. Je ne me lancerai pas dans la description des entrevues pour ces postes car c’est juste pire. Est-ce que c’est Jobboom? Enfin bref ou ils sont les bons programmeurs?