Opinion: Comment évaluer un candidat en science des données
J’ai travaillé avec un grand nombre de scientifiques des données dans de nombreux environnements. Certains lors de hackathons, datathons, sur des compétitions Kaggle, des projets «pour le plaisir» et en tant que consultant en science des données pour plusieurs entreprises. J’ai également dû postuler pour ma juste part d’emplois. Je crois que la meilleure méthode pour évaluer un data scientist est avec des défis de base en python, je vais argumenter ce cas ci-dessous.
Tenez compte du niveau de capacité dans vos questions, vous avez le désir de poser des questions / défis à vos candidats qui éliminent les candidats les plus faibles, sans avoir un problème qui prend une tonne de temps à administrer ou à évaluer pour vous-même ou le candidat.
Il y a un problème avec le choix du niveau de difficulté ici. Si vous choisissez quelque chose de trop facile, tout le monde passe. Il existe un risque supplémentaire de refuser des candidats qualifiés. Considérez la question que j’ai reçue ci-dessous:
J’ai dû répondre à cette question et à 99 autres personnes de difficulté similaire avant que la société ne souhaite me déplacer au prochain tour. Ce que cela m’a dit en tant que candidat était 1) nous ne pensons pas que vous êtes capable de faire des mathématiques au niveau élémentaire 2) nous n’apprécions pas beaucoup votre temps 3) nous ne travaillons pas sur des problèmes intéressants ou difficiles. En fin de compte, le problème avec ce filtre est que vous n’avez probablement pas supprimé de nombreuses personnes non qualifiées et que vous avez peut-être perdu l’intérêt de vos meilleurs talents.
Maintenant, si vous choisissez quelque chose de trop difficile, soit personne ne passe, soit vous courez le risque de poser une question spécifique sur laquelle seules quelques personnes avaient déjà de l’expérience. Il y a une pléthore de choses à apprendre en tant que data scientist, si vous poser une question sur l’un des domaines les plus étroits de la science des données ne signifie pas que cela signifie qu’ils sont qualifiés dans tous les domaines et que d’autres candidats ne le sont pas. Il est normal d’avoir des questions / défis de niche si vous vous attendez à ce que le poste doive traiter avec une compétence / un outil spécifique très fréquemment, mais je recommanderais de vous assurer que la description de poste (et peut-être même le titre) reflète le besoin de cette compétence /outil. Enfin, si vous choisissez un problème très difficile, vous n’aurez peut-être pas la possibilité d’accorder un crédit partiel. Accorder un crédit partiel à votre problème est une bonne chose, car vous pourrez déterminer qui sont vos prochains meilleurs candidats si celui que vous voulez vraiment accepter une autre offre. Avec un défi plus facile, vous n’aurez pas à vous soucier de trouver un problème unique qui offre un crédit partiel et est accessible à de nombreux candidats.
Le métier de data scientist est très large. Dans une entreprise, cela pourrait signifier que vous effectuez des visualisations / tableaux de bord, dans une autre, vous pourriez être un expert en apprentissage automatique qui fabrique des modèles, et dans une autre, vous pourriez être un ingénieur logiciel qui se trouve juste être bon pour mettre le ML en production. Mais, je crois que peu importe le travail, le python sera votre pain et votre beurre. J’ai expliqué ci-dessus qu’il existe de nombreux sous-domaines de la science des données à apprendre et à ne pas utiliser un domaine pour représenter les compétences des autres. Il peut sembler que j’enfreigne cette règle en vous suggérant d’utiliser le python comme jauge, mais je pense que peu importe l’expérience passée du demandeur, le python est un outil essentiel et est donc le meilleur baromètre.
Lorsque j’étais junior à l’université, postulant pour mon deuxième stage, j’ai été confronté à un défi de codage en direct qui disait essentiellement « étant donné un tableau de nombres, renvoyez la fréquence de chaque numéro du tableau. » Exemple ci-dessous.
input_array = [3, 6, 8, 2, 4, 8, 3, 1, 8, 9, 7, 0, 5, 5, 1]expected_output = {"0": 1, "1": 2, "2": 1, "3": 2, "4": 1, "5": 2, "6": 1, "7": 1, "8": 3, "9": 1}
J’ai réussi le défi en moins de 2 minutes et je suis reparti quelque peu déçu que ce ne soit pas un peu plus difficile, donc je n’ai pas eu l’occasion de me distinguer et mes capacités. J’ai reçu et accepté cette offre de stage, alors j’ai demandé à l’intervieweur des mois plus tard: «Pourquoi ai-je été choisi? J’ai l’impression que tout le monde doit avoir bien compris cette question. » À ma grande surprise, on m’a dit que sur la cinquantaine de personnes à qui le défi avait été adressé, seulement 5 avaient réussi, et seulement j’étais rapide. Certains des autres candidats stagiaires étaient des doctorants ou des majors en informatique, à mon grand étonnement. Mais je pense que cet exemple sert à éliminer les personnes qui ne peuvent pas effectuer des tâches de base de science des données, sans être encombrantes pour le demandeur ou l’intervieweur.
Maintenant, je peux être biaisé parce que j’ai réussi cet entretien et que j’ai échoué à d’autres, mais je trouve que le réactif limitant pour réussir dans un projet de science des données est souvent les capacités de programmation de base. Peu m’importe si quelqu’un dit qu’il a de l’expérience en apprentissage en profondeur s’il ne peut pas correctement analyser les données dont il a besoin à partir d’un objet JSON. Dans la production de tout projet, de bonnes compétences en programmation vous sont très utiles.
Pour être plus précis, je pense que les types de questions que vous devriez poser sont des problèmes de type leetcode. Si vous embauchez un scientifique des données, je ne pense pas que vous devriez vous attendre à ce qu’il soit également un ingénieur logiciel d’élite, n’oubliez pas que nous essayons en fait de vérifier rapidement les compétences minimales. Donc, je ne recommande pas d’aller pour les problèmes les plus difficiles, je pense que le filtrage vers le problèmes faciles est probablement le meilleur. À partir de là, je ne me soucierai peut-être même pas de l’efficacité ou de la complexité temporelle de la solution, et peut-être que ce soit un bris d’égalité entre les candidats.