Les tests d'algorithmes sont de plus en plus utilisés pour évaluer les compétences des développeurs lors du recrutement. Si les solutions clé en main comme HackerRank ou CodinGame sont pratiques, créer ses propres tests sur mesure présente aussi des avantages. Voici un guide pour vous aider à concevoir vos tests d'algo maison.
Étapes et bonnes pratiques pour créer des tests d'algo sur mesure
- Identifiez les compétences à évaluer : Listez les langages, frameworks et concepts (structures de données, complexité...) sur lesquels vous voulez tester vos candidats, en lien avec vos besoins.
- Choisissez un format et une plateforme : Décidez si vous voulez un test sur papier, sur IDE ou via une plateforme de code en ligne. Pour cette dernière option, il existe des outils open source comme Leetcode pour héberger vous-même vos tests.
- Rédigez des questions de difficulté progressive : Commencez par une question simple pour mettre en confiance, puis montez en difficuté. Maximum 5 questions pour un test d'une heure. Évitez les questions trop théoriques ou piégeuses.
- Préparez des tests avec des solutions : Écrivez une solution optimale pour chaque question, en précisant la complexité attendue. Pensez aussi aux solutions non optimales mais fonctionnelles à accepter. Préparez des jeux de tests pour vérifier le code.
- Fournissez un environnement de test adapté : Si le test est sur ordinateur, fournissez une machine configurée avec les bons outils et éditeurs, dans les versions utilisées par votre équipe. Évitez les contraintes inutiles.
- Soyez transparent sur les critères d'évaluation : Expliquez ce que vous évaluez (la réflexion, la syntaxe, l'efficacité...) et comment. Prévoyez un barême clair et objectif. Faites relire les énoncés et le barème par un pair.
Ressources pour créer ses tests
- Sites de challenges : Pour trouver l'inspiration, parcourez des sites comme Leetcode, Codewars, ProjectEuler. Les questions ne sont pas toujours adaptées pour des tests, mais donnent une bonne vue d'ensemble.
- Livres : Des ouvrages comme "Cracking the Coding Interview" ou "Elements of Programming Interviews" proposent de nombreux problèmes d'algorithmique avec des solutions détaillées.
- Ressources académiques : Jetez un oeil aux supports de cours d'universités renommées comme le MIT ou Stanford. Ils proposent des problèmes intéressants pour différents niveaux.
Conseils pour administrer les tests efficacement
- Adoptez une approche bienveillante : Le but est d'évaluer le potentiel, pas de piéger. Mettez les candidats dans de bonnes conditions, clarifiez les consignes. Vous voulez les voir au meilleur de leurs capacités.
- Laissez de l'autonomie : Donnez accès à la documentation officielle des langages/frameworks si besoin. Ne pénalisez pas pour une erreur de syntaxe sans gravité. L'important est de voir la logique mise en oeuvre.
- Prévoyez un débriefing : Après le test, prenez le temps de revoir le code avec le candidat. Faites-le expliquer ses choix, suggérez des pistes d'amélioration. Un test réussi ne dispense pas d'un échange technique !
- Itérez sur vos tests : Faites évoluer régulièrement vos questions en fonction des retours des candidats et interviewers. Ajustez le barème en conséquence et gardez trace des versions.