Dans le cadre du processus d’entretien, nous avons d’abord demandé aux candidats de faire «FizzBuzz». De nos jours, le pourcentage de candidats pouvant répondre correctement à FizzBuzz a considérablement augmenté - cela est peut-être dû à sa popularité sur le Web.
Il y a environ un an, nous avons commencé par poser une question très similaire à celle de FizzBuzz originale. La question a été conçue pour être aussi simple que le FizzBuzz original et pour évaluer également une capacité particulière du candidat, en particulier la capacité de commander et de hiérarchiser de manière logique et significative un ensemble de "règles de gestion" fournies dans certains ordre arbitraire. Le libellé de la question semble au départ légèrement ambigu, ce qui peut compliquer les choses pour les non-anglophones, mais s’il est réfléchi correctement, cela donne également la possibilité au candidat de poser des questions de clarification, ce qui est toujours une bonne chose. .
Nous estimons qu’il est très important d’avoir cette compétence en tant que développeur, car le développement logiciel est généralement basé sur des exigences fonctionnelles qui ne sont dérivées d’aucun ordre particulier dans le temps et qui peuvent imposer des contraintes et des conditions à d’autres domaines du logiciel sans indiquer explicitement et ce, de la même manière. Il incombe au développeur astucieux d’enquêter au moins sur les problèmes et les conflits potentiels liés à la mise en œuvre.
Ce que nous avons constaté, c’est qu’un peu plus de 65% des candidats (taille de l’échantillon de 38) ayant réussi FizzBuzz ont complètement échoué. FizzBuzz v2.0 Normalement, ces candidats seraient détectés plus tard dans le processus, mais cela semble être un bon moyen de détecter les tôt.
Ma question ne porte pas sur le fait que FizzBuzz soit obsolète ou non, mais plutôt sur les facteurs qui pourraient contribuer à un nombre aussi élevé de candidats ne répondant pas à la question FizzBuzz v2.
- La question est-elle trop ambiguë?
- Est-ce que le stress d'un environnement d'interview diminue la capacité de penser de manière critique au point de ne pas pouvoir mener à bien une tâche aussi triviale?
Question:
Écrivez une routine dans votre langage de programmation préféré qui prendra une liste de chaînes en tant qu'entrée et effectuera l'une des opérations suivantes pour chaque chaîne de la liste:
- N'imprimez que Fizz si la chaîne contient la lettre A
- Imprimer uniquement Buzz si la chaîne contient la lettre B
- N'imprimez que BuzzBuzz si la chaîne contient A et B
- N'imprimez que FizzFizz si la chaîne ne contient pas A et B
- N'imprimez que FizzBuzz si la chaîne ne contient qu'un seul A et un seul B.
Voici quelques questions typiques posées par les candidats:
- Devrait-il être sensible à la casse?
- Est-ce que "contient A et B" signifie que A devrait venir avant B
- Que faut-il imprimer si aucun des points n’est atteint?
- Que devrait-il se passer si plusieurs conditions peuvent être remplies?
Nous avons constaté que la très grande majorité des candidats qui ont répondu à la question sans rien demander du tout l’ont fait comme ils l’ont fait avec FizzBuzz.