Une entreprise avec laquelle je travaille m'a demandé de faire des filtrages de candidats pour m'assurer qu'ils ne sont pas complètement gênés lors de l'envoi de quelqu'un à un client potentiel.
Il s'avère qu'un bon nombre de personnes étaient placées pour un rôle de développeur C ++. Je ne passe pas beaucoup de temps en C ++, mais j'ai fait quelques projets triviaux et non triviaux dans le langage. J'ai pensé que "Expliquer l'idiome RAII" serait une belle question de softball à laquelle les développeurs C ++ les plus sérieux pourraient répondre pendant qu'ils étaient à moitié endormis, et me permettrait de passer à des questions plus intéressantes sur l'expérience. Mais il s'avère que les personnes qui ont plus de 10 ans d'expérience en C ++ ne reconnaissent pas le terme, même si j'élargis l'acronyme à «L'acquisition de ressources est l'initialisation». Un candidat est même allé jusqu'à dire qu'il estimait qu'il n'était pas toujours pratique d'appliquer la technique au développement de Windows, ce que je pensais être un sentiment étrange, mais je pouvais voir quelques exemples qui soutiennent sans doute cette ligne de pensée.).
Même quelques développeurs C ++ que je connais assez bien pour juger de leur compétence ont dit qu'ils ne reconnaissaient pas le terme, mais à la lecture d'un résumé de la technique, ils ont dit "Oh, oui, je ne savais pas que j'avais un nom. pensé à ces choses comme quelque chose que vous avez juste à faire . " Je me souviens du terme de la deuxième édition du livre de Stroustrup, même si le plein impact n'a pas pénétré à l'époque.
Alors, est "Pouvez-vous m'expliquer l'idiome RAII?" une bonne question de sélection? Est-il raisonnable de s'attendre à ce que tous les développeurs C ++ compétents le comprennent? Le terme est-il plus ésotérique que je ne le pense? En supposant qu'un candidat ne connaît pas le terme, y a-t-il des questions de suivi qui pourraient m'aider à déterminer s'il a au moins internalisé les pratiques qui font fonctionner le RAII? Existe-t-il de meilleures questions «sarcleuses» alternatives qui donnent au candidat une certaine latitude pour répondre et l'aident à démontrer sa compréhension du développement C ++?
Modification à ajouter : Pour clarifier, je ne suis pas le genre d'intervieweur qui disqualifie les gens parce qu'ils ne connaissent pas les mots à la mode et les acronymes. Cependant, je pense qu'il est raisonnable de s'attendre à ce qu'un programmeur C ++ expérimenté ait internalisé les bonnes pratiques de gestion des ressources. Je pense également qu'il est important de vérifier qu'un candidat comprend certaines "bases" de la technologie dans laquelle il revendique son expertise avant de passer à des questions plus intéressantes sur la conception, la résolution de problèmes, etc. Je pense que ce que je recherche est un bon moyen pour poser une question ouverte, utilisable dans une courte projection téléphonique, que je peux utiliser pour juger la compréhension de base d'un candidat des bonnes pratiques de gestion des ressources en C ++, avant de poser des questions "dures".