Comme tout outil, ils peuvent être extrêmement utiles ou extrêmement dangereux. Une perceuse électrique vous facilitera la vie tellement - jusqu'à ce que vous percez le haut de votre main et que vous vous posiez aux urgences. Il en va de même pour les problèmes de programmation liés au recrutement.
Le bon : cela peut être un moyen efficace de détecter quelqu'un qui, sur le papier, n'est peut-être pas si convaincant en tant que programmeur. Celui qui a un diplôme dans quelque chose qui a très peu à voir avec ce que les gens considèrent normalement comme des domaines liés à la "programmation" - biologie, science politique, histoire de l'art ...
S'ils traversent vos défis, c'est parfait. Ils ont appris la programmation, d'une manière ou d'une autre, et c'est apparemment bloqué. S'ils s'embourbent, leur demande peut vraiment être quelque chose qui a glissé dans les RH.
Le mauvais : un défi de programmation mal écrit n'évalue pas réellement les compétences en programmation . Il teste la résolution d'énigmes via des compétences en programmation . Le problème est que la dernière est une question à deux variables - êtes-vous bon dans la résolution de casse-tête, et pouvez-vous faire cette résolution de casse-tête via du code. Il est possible d'avoir un programmeur parfaitement talentueux qui échoue complètement à la partie de résolution de casse-tête.
La plupart des défis de programmation que j'ai vus échouent également à détecter les personnes proches de ce que vous voulez, selon la façon dont cela est écrit.
Il existe des moyens d'atténuer les deux. Pour ce dernier, j'envisagerais d'accepter le «crédit partiel» sous la forme de solutions qui ne semblent pas vraiment y arriver, «voici comment je résoudrais cela ...» etc. si vous cherchez vraiment un problème solveurs. Après tout, très peu de gens codent tout seuls, et si leur réponse aurait été juste s'ils pouvaient demander à un collègue senior "Hey Jim, connaissez-vous une bonne façon de mettre en œuvre X?", Cela pourrait très bien être quelqu'un sur qui vous voulez ton équipe.
Le premier est un peu plus difficile, car le fardeau est à votre charge. Choisissez des puzzles / problèmes / défis qui comptent. Si personne dans votre groupe n'a jamais rencontré quoi que ce soit de semblable à distance au problème du voyageur de commerce dans son travail, ne faites pas un tour intelligent au voyageur de vente le défi que vous rencontrez. De cette façon, s'ils échouent à l'aspect de résolution de problèmes de "résoudre le problème et le coder", ils échouent au moins à quelque chose qui va réellement se produire, plutôt qu'à un peu d'intelligence arbitraire que votre équipe a craché pendant le déjeuner.