Je cherche un bon moyen d’évaluer la compétence technique d’un développeur. Aujourd’hui j’ai un test qui semble bien fonctionner pour notre usage mais que je trouve clairement trop long avec 4 heures.
J’ai toujours été réticent aux exercices tableau blanc de type parcours d’arbre, calculs sur tableau et autres jeux d’algorithme. J’ai quand même voulu tester un peu les classiques leetcode que certains utilisent comme lors des tests d’entrée.
Quelques conclusions après une vingtaine d’exercices de difficultés variables d’un parcours qui m’est présenté comme représentatif :
Pour une bonne partie, le faire bien demande d’avoir vu le truc une fois, ou de connaître le bon algo. Ce ne sont pas des choses qui se trouvent simplement en réfléchissant, a fortiori pas pendant un test technique en temps limité avec une dose de stress.
J’en ai un ou deux dont je ne connaissais pas l’algorithme et je n’ai pas été capable de trouver une bonne solution en termes de récursivité, complexité de calcul ou espace mémoire. Ça ne s’invente pas.
À l’opposé, sur la plupart je connaissais le truc et le temps passé était sur la syntaxe ou des erreurs d’inattention. Zéro intérêt. Même là où l’expérience a pu jouer, sur les parcours avec des pointeurs, je classe ça dans les connaissances qui ne m’ont presque jamais servi et pas dans les acquis de l’expérience.
Je suis convaincu qu’un débutant sorti d’école avec un peu de bagage théorique et pas mal de bachotage s’en sortira bien mieux, y compris à expliquer sa solution, qu’un développeur senior avec un super impact en entreprise.
Je ne dis pas qu’on n’a jamais à jouer avec les pointeurs, les tris, les parcours et ce genre de choses, mais ce n’est clairement pas représentatif des problématiques qui seront rencontrées.
Le cas échéant, ce sont justement des problèmes pour lesquels on va utiliser des bibliothèques existantes ou pour lesquels on trouvera très bien la réponses sur un moteur de recherche.
Il est évident que l’exercice va permettre de faire un tri dans les candidats mais je n’ai pas l’impression que ce soit sur le bon critère.
Bien évidemment ça doit dépendre des métiers. Un ingénieur sur le cœur d’une base de données doit certainement être assez près de ces problématique, mais ça ne me semble pas être le cas de 90% des ingénieurs.
Peut-être que je n’ai pas vu les bons tests, mais je reste assez dubitatif.
Pour ceux qui utilisent ces tests ou des similaires, y compris ceux à l’aspect un peu plus ludique, qu’y cherchez-vous exactement ?
Laisser un commentaire