Utilisation de modèles de questions lors d'un entretien technique [fermé]

14

Je me suis récemment disputé avec un collègue au sujet de questions techniques lors des entretiens. En tant que diplômé, j'ai fait le tour de nombreuses entreprises et j'ai remarqué qu'elles utilisaient les mêmes questions. Un exemple est "Pouvez-vous écrire une fonction qui détermine si un nombre est premier ou non?", 4 ans plus tard, je trouve que cette question particulière est assez courante même pour un développeur junior. Je ne regarde peut-être pas cela correctement, mais les éditeurs de logiciels ne devraient-ils pas être suffisamment intelligents pour réfléchir à leurs propres questions d'entrevue? J'ai assisté à environ 16 entretiens en tant que diplômé et les mêmes questions se sont posées dans environ 75% d'entre eux. Cela m'amène à croire que de nombreuses entreprises sont paresseuses et simplement Google: «Questions de modèle pour interviewer les développeurs de logiciels» et je pense qu'il y a un mauvais service à adopter cette approche.

Question: Est-il préférable d'utiliser un ensemble de questions à partir d'un modèle ou les éditeurs de logiciels devraient-ils s'efforcer d'être plus originaux et proposer leur propre matériel d'entrevue?

De mon point de vue, si j'ai échoué à un entretien et que je suis parti à la recherche de bonnes réponses aux questions sur lesquelles je me suis trompé, je pourrais passer à travers l'entretien suivant si les questions étaient les mêmes.

Planète désolée
la source
1
Par curiosité, d'où viennent les questions de style FizzBuzz?
Desolate Planet
1
La maison du logiciel doit faire attention à ne pas trop s'impliquer dans la question de devenir la personne qui a passé des milliers d'heures à perfectionner la solution que la plupart des gens mettraient quelques jours à obtenir à moins d'avoir été avec l'entreprise et vu la question déjà.
JB King
2
Utilisez des questions de modèle, si vous êtes d'accord avec les réponses de modèle.
back2dos

Réponses:

18

Beaucoup de ces types de questions persistent précisément parce qu'il est difficile de trouver des questions claires, nécessitent le moins de connaissances du domaine possible, nécessitent une capacité à trouver un algorithme sans être une question piège que quelqu'un soit " obtenir "ou" ne pas obtenir ", et que les gens ont un historique de réponses pour comparer le candidat. Et les meilleures questions ont plusieurs niveaux de réponses correctes qui permettent à l'intervieweur d'évaluer les compétences du candidat en résolution de problèmes. Si quelqu'un suggère un algorithme trivial de recherche de prime, par exemple, nous pouvons alors parler de la façon dont vous pouvez optimiser la mise en œuvre ou de l'intervieweur pour diriger le candidat vers l'un des algorithmes les plus sophistiqués.

J'ai été dans des groupes où un certain nombre de développeurs différents ont évalué la difficulté d'un problème particulier pour un ensemble de personnes interrogées et les estimations étaient partout sur la carte. Beaucoup de gens regardent FizzBuzz au début et le considèrent comme manifestement trop facile. Si vous entrez dans l'entrevue sans bien comprendre à quel point les questions sont difficiles, la cinquième personne que vous interviewez a un avantage énorme sur la première personne parce que vous avez appris que les gens ont du mal avec FizzBuzz pendant que vous vous êtes fait une impression négative de la première personne vous avez interviewé parce qu'ils avaient des difficultés identiques.

Si les développeurs posent de nouvelles questions, ils ont également tendance à avoir des connaissances culturelles ou de domaine inattendues. Ils poseront des questions sur un sport, par exemple, qui tend à donner un avantage aux personnes qui connaissent les règles de ce sport qui peuvent soit rapidement détecter une ambiguïté, soit émettre une hypothèse «évidente». Quelqu'un qui ne connaît pas du tout le sport doit comprendre les règles du jeu à la volée et est beaucoup plus susceptible de faire une erreur ou de trouver une réponse moins sophistiquée. Ou ils poseront une question qui suppose involontairement que les candidats connaîtront / se souviendront de quelques friandises relativement mineures. Quelqu'un qui travaille sur les systèmes comptables depuis des années, par exemple, peut supposer que tout le monde sait ce qu'est un système de comptabilité à double entrée ou qu'une question qui suppose une définition de schéma de système de comptabilité à double entrée simple serait claire pour un développeur compétent. Mais cela pourrait facilement jeter un bon développeur qui doit se tourner vers l'idée d'un débit à encaisser augmentant le solde de trésorerie et un crédit diminuant le solde de trésorerie. Cependant, quelqu'un qui a adopté la comptabilité 101 devrait rapidement faire son chemin. Si votre intention était de tester la familiarité du candidat avec la comptabilité, cela pourrait être une question parfaitement raisonnable. Mais si vous ne cherchez pas un expert en la matière, ce serait problématique. Mais cela pourrait facilement jeter un bon développeur qui doit se tourner vers l'idée d'un débit à encaisser augmentant le solde de trésorerie et un crédit diminuant le solde de trésorerie. Cependant, quelqu'un qui a adopté la comptabilité 101 devrait rapidement faire son chemin. Si votre intention était de tester la familiarité du candidat avec la comptabilité, cela pourrait être une question parfaitement raisonnable. Mais si vous ne cherchez pas un expert en la matière, ce serait problématique. Mais cela pourrait facilement jeter un bon développeur qui doit se tourner vers l'idée d'un débit à encaisser augmentant le solde de trésorerie et un crédit diminuant le solde de trésorerie. Cependant, quelqu'un qui a adopté la comptabilité 101 devrait rapidement faire son chemin. Si votre intention était de tester la familiarité du candidat avec la comptabilité, cela pourrait être une question parfaitement raisonnable. Mais si vous ne cherchez pas un expert en la matière, ce serait problématique.

Bien que je suppose qu'il est possible que quelqu'un mémorise les réponses aux quelques centaines de questions modèles «courantes» que les gens utilisent, cela ne me dérange pas beaucoup en tant qu'enquêteur. En premier lieu, ce serait quelque peu impressionnant s'ils le faisaient et refléteraient pas mal de travail et de résolution de problèmes. En second lieu, ce serait généralement une bonne formation - si le développeur sait comment inverser une chaîne, connaît certains algorithmes pour trouver des nombres premiers, sait comment écrire des boucles et implémenter des constructions de contrôle pour FizzBuzz, connaît les différents algorithmes de graphe qui viennent régulièrement, etc. - ils sont probablement un développeur assez complet. Si le développeur réussissait à mémoriser les réponses sans rien apprendre, ils seraient rattrapés lorsque l'intervieweur voulait approfondir un peu ou ils '

Justin Cave
la source
7

Je pense qu'il y a ces questions faciles fizzbuzz, inverser une chaîne, etc., et puis il y a certaines questions alors que si vous ne les avez pas vues auparavant, il est difficile d'obtenir la solution optimale prévue avec la pression supplémentaire de l'entretien et le court laps de temps contraintes. Le pire, c'est que parfois des recruteurs sans connaissances techniques posent certaines de ces questions et recherchent une réponse très précise ... Si vous ne donnez pas la réponse optimale, ils pensent que vous êtes un idiot absolu. Même si votre réponse fonctionne, résout le problème et bien qu'elle ne soit pas optimale, elle n'est pas trop inefficace ...

Quelques exemples:
Comment mélangeriez-vous un jeu de cartes? Ils recherchent la méthode Fisher-Yates http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffleles autres réponses sont "incorrectes" ... Ce n'est pas quelque chose que vous êtes susceptible de savoir à moins que vous ne vouliez mélanger les cartes avant et que vous ne l'ayez spécifiquement recherché. Vous pourriez tomber dessus au cours de la réponse, mais d'après ce que j'ai vu, ils s'attendent à ce que vous connaissiez ce rhume, il est donc peu probable qu'il y ait beaucoup de temps pour permettre de trouver la solution. Une autre façon moins efficace (mais peut-être plus évidente) consiste à créer un nouveau tableau avec un pointeur sur le tableau d'origine et un nombre qui est un nombre aléatoire, puis à trier le tableau par le nombre aléatoire. Utilisez ensuite le tableau trié pour construire un nouveau tableau de cartes. En tout cas, je n'ai eu aucun crédit pour l'avoir présenté à un recruteur.

Un autre exemple est la question de savoir comment vous pourriez détecter un numéro en double dans une liste de n nombres allant de 1 à n-1. La réponse évidente (qui est relativement efficace dans une perspective temporelle) est d'utiliser une table de hachage pour insérer chaque élément et si vous en trouvez un déjà inséré, vous avez trouvé le doublon. La réponse optimale est parce que les nombres sont compris entre 1 et n s'il n'y a pas de doublons, vous pouvez obtenir la somme attendue en n (n + 1) / n. Ensuite, si vous résumez le tableau, vous obtenez la somme réelle qui est nd inférieure à la somme attendue. Donc en gros n - (Somme attendue - Somme réelle) = numéro en double ... C'est un cas assez spécial .... J'ai déjà vu quelque chose auparavant dans un article en ligne sur les problèmes d'entrevue il y a longtemps sur un sujet similaire avec la même astuce, donc J'allais bien ...

Un autre, inversez tous les mots d'une chaîne sans utiliser d'espace supplémentaire. J'ai dû y penser et le recruteur était assez impatient dans les 5 minutes que je pensais (couper et rejoindre la chaîne à l'envers, ou passer mot à mot dans un nouveau tableau sont tous les deux très faciles). Je suis arrivé à trouver la bordure du dernier mot, à trouver la fin du premier mot et à décaler constamment la liste entière de 1, puis à insérer la lettre appropriée. Répétez ensuite jusqu'à ce que vous ayez atteint la fin de la liste. Cette méthode a fonctionné et l'intervieweur a accepté (il était un peu technique), mais c'est assez inefficace. Quand je suis rentré chez moi, j'ai cherché la réponse optimale, et c'est simplement inverser la liste, puis inverser chaque mot individuel. Certaines personnes pourraient trouver cela,

Maintenant, c'est vrai une fois que vous avez vu certains de ces problèmes, vous pouvez les résoudre plus facilement. Parce qu'il y a des questions similaires avec certaines des mêmes astuces. Je connais surtout la formule n (n-1) / 2 et la liste des nombres a plusieurs variantes. Mais je ne sais toujours pas ce que ces questions testent. Un FizzBuzz est quelque chose que tout le monde devrait pouvoir faire (même si j'ai vu des variations qui ne sont pas si simples, auquel cas je commence à me demander si cela est réaliste pour une situation d'entrevue sans pouvoir taper / déboguer le code). Certaines de ces questions sont évidentes une fois que vous les voyez, mais si vous ne les avez pas vues, elles ne sont pas évidentes. Après tout ce que quelqu'un a mentionné, il a fallu des années pour que la première implémentation correcte de la recherche binaire apparaisse ... À l'heure actuelle, la recherche binaire est si évidente car tout le monde peut en savoir plus.

Néanmoins, je pense que le pire est lorsque des personnes non techniques posent des questions car elles ne peuvent pas apprécier que votre solution soit correcte mais pas optimale. Ils savent juste que votre solution n'est pas celle présentée et donc tout est faux, vous n'obtenez aucun crédit pour la tentative. Même les solutions non optimales montrent souvent une connaissance des constructions de programmation. À moins que je ne programme des jeux de poker, je me fiche de savoir si quelqu'un peut bien mélanger un jeu de cartes. Et même si je l'étais, après leur avoir montré l'algorithme efficace, je suis sûr que n'importe qui à moitié décent pourrait le suivre.

Les questions du modèle semblent simplement donner un avantage aux candidats qui ont passé un entretien plus longtemps car ils sont plus susceptibles d'avoir vu plus de questions du modèle. Même FizzBuzz, la première fois que vous le voyez, vous risquez de paniquer, mais comme vous le voyez encore et encore, vous vous y habituez. La meilleure chose à faire est de lancer un défi de codage qui nécessite une logique métier personnalisée. Par exemple, créez un ensemble de données (tableau d'objets / enregistrements), puis créez des règles métier à appliquer à chaque objet et renvoyez une réponse. Par exemple, un certain type de notation, etc. mais des règles très personnalisées). Bien qu'ils aient probablement vu des enregistrements en boucle et appliqué une logique un million de fois, vos règles seront uniques, donc ils devraient au moins comprendre et mettre en œuvre avec succès les règles que vous avez créées.

Disons le salaire projeté et une liste de candidats et leurs 3 meilleurs jeux vidéo préférés, et peut-être un salaire de départ. Les candidats qui aiment Zelda obtiennent une pénalité de 300, les candidats qui aiment la petite sirène reçoivent un bonus de 200. Les candidats qui aiment Donkey Kong et Super Mario Brothers mais pas le Dr Mario obtiennent un bonus de 300. Les candidats qui aiment Metroid ou Kid Icarus obtiennent un bonus de 200, etc ... Cela semble un peu fou, mais cela vous montrerait leur capacité à traduire les règles métier en constructions de programmes logiques et à tester leur compréhension de la logique booléenne. Globalement pas très différent de fizzbuzz, sauf qu'il n'utilise pas de module et de boucles. Vous pouvez bien sûr leur donner la liste et les faire parcourir en boucle et imprimer les résultats à l'écran en utilisant également des critères de sortie spécifiques.

Cervo
la source
4

Lors de ma dernière recherche d'emploi, j'étais dans une situation très similaire. Je pense que j'avais la même question de liste chaînée dans toutes les entreprises sauf une (celle dans laquelle je travaille actuellement).

J'ai remarqué que ces questions avaient été posées lors du premier entretien.

Du point de vue des enquêteurs, si une personne ne peut pas répondre correctement à ces questions, alors elle ne s'est pas préparée pour l'entretien, alors pourquoi perdre plus de temps avec elle? Je ne pense pas que ce soit la bonne idée. L'entreprise obtiendra tout un tas de personnes capables de réciter les réponses de Google pour passer au tour suivant, mais pas nécessairement un groupe de personnes qui sont des développeurs compétents.

J'ai trouvé les questions passe-partout de FizzBuzz ennuyeuses personnellement, mais cela a facilité l'entretien. J'aime une interview difficile. Lorsque j'interviewe des employés potentiels, j'aime m'assurer qu'ils savent qu'ils peuvent penser et résoudre des problèmes. Je m'attends à ce qu'ils puissent utiliser Google.

Une entreprise devrait-elle avoir un modèle de question? Oui. Il aide à évaluer les candidats pour les premiers tours. Le modèle doit-il être composé de problèmes génériques facilement identifiables via Google? Non. Cela change tout simplement toutes les personnes impliquées.

Tyanna
la source
4

"Les éditeurs de logiciels devraient-ils s'efforcer d'être plus originaux et proposer leur propre matériel d'entrevue?"

Oui, ils devraient, mais pratiquement ce qui se passe, c'est que vous arrivez au travail et que vous trouvez un e-mail des RH disant que vous êtes sur la boucle d'entrevue pour deux candidats demain. Vous êtes déjà à la hauteur de vos alligators, et votre manager ne vous remerciera pas d'avoir pris une demi-journée pour trouver de nouvelles bonnes questions d'entrevue. Pressé par le temps, vous vous rabattez sur les questions qui vous ont été posées, ou que vous pouvez retrouver rapidement sur google.

Charles E. Grant
la source
2
oui et alors vous êtes vraiment heureux d'avoir un document plein de bonnes questions d'entrevue alors que sinon vous pourriez regarder le gars qui se bat pour quelque chose de significatif à demander
Doug T.
3

Les questions comme vous le mentionnez sont normalement des questions fizzbuzz et ne sont pas une question utilisée pour l'embauche; c'est une question de refus (c.-à-d. que les bonnes réponses ne vous procureront aucun emploi, mais les mauvaises réponses vous feront jeter à la poubelle). Ils ne sont donc pas très précieux.

Ce sont les questions qui viennent plus tard qui nécessitent une réflexion et qui, le plus souvent, auront une forte relation avec le type de travail de l'entreprise et la dynamique de l'équipe.

La réponse est donc: les deux.

Steven Evers
la source
4
Je suis d'accord que la question de style fizzbuzz nie les questions ... mais ne frappez pas en gardant les mauvaises personnes hors du bus!
Peter K.
2

Si la plupart ou la totalité de leurs questions sont les mêmes, c'est en effet une mauvaise chose (pour eux, c'est-à-dire). Cela montre probablement que l'intervieweur n'est pas bien préparé pour la tâche.

Notez que l'utilisation de questions de niveau d'entrée "modèle" comme le test FizzBuzz peut être acceptable pour éliminer rapidement les totalement incompétents, sans investir trop de temps et d'efforts. Bien que même dans ce cas, les variations sur le thème sont utiles pour éviter d'entendre les réponses directement de Google. Là encore, il est facile de demander au candidat ce que le code qui vient d'être écrit fait et pourquoi il fonctionne (ou ne fonctionne pas). Je crois qu'un enquêteur techniquement compétent peut rapidement détecter si quelqu'un prétend simplement connaître la réponse.

Et plus important encore, si quelqu'un réussit le test d'entrée de gamme, les questions les plus difficiles devraient se poser, où il ne suffit plus de réciter des réponses standardisées. Personnellement, je m'intéresse davantage aux processus de réflexion et aux capacités de résolution de problèmes de la personne interrogée en général, plutôt qu'à la solution spécifique à une énigme. L'autre sujet important serait les processus et les approches de développement - j'initie une discussion ouverte plutôt que des questions concrètes sur ces sujets. Il n'y a pas de bonne ou de mauvaise réponse sur ces sujets, donc pas de possibilité de se préparer à l'avance. Mais à partir d'une discussion, j'apprends beaucoup sur la question de savoir si moi et l'équipe serions à l'aise de travailler avec ce candidat.

Donc, un nombre limité de questions «modèles» sont OK, mais un bon entretien est un processus de flux, où l'intervieweur doit s'adapter à la situation, y compris le niveau de compétence (annoncé et réel) du candidat, l'état mental (nervosité / fatigue), etc.

Péter Török
la source
Oui, mais disons que vous donnez le test FizzBuzz à quelqu'un qui ne convient pas et qu'il échoue. Ils pourraient chercher de bonnes réponses et passer cette question dans une autre entreprise, c'est le peu qui me dérange et je pense que les entreprises devraient avoir l'obligation de ne pas utiliser de modèles de questions. Tout bon développeur de logiciels senior doit être capable de trouver de bonnes questions, allant de facile à difficile.
Desolate Planet
2
@Desolate Planet: Le truc est que, je soupçonne que les gens qui échouent à fizzbuzz ne sont pas du genre à chercher les réponses ... ils espèrent juste ne pas avoir la question posée lors de la prochaine interview.
Steven Evers
Hmm..mais même après avoir raté 3 à 4 entretiens, ils seront assez intelligents pour détecter les tendances dans les questions qui leur sont posées. Encore une fois, c'est juste une pensée que j'ai eue à propos des entretiens techniques en général et cela me semble être une mauvaise façon de procéder.
Desolate Planet
1
@Desolate, alors ils peuvent réussir à trouver un emploi dans une entreprise qui, apparemment, ne se soucie même pas de bien filtrer les candidats ... alors les deux obtiennent ce qu'ils méritent.
Péter Török
@Peter, je suis d'accord avec ce que vous dites, mais c'est plutôt injuste à l'égard des autres candidats qui peuvent avoir raison pour le poste et avoir quelque chose à apporter à l'entreprise. Ils pourraient ne pas avoir la chance parce que quelqu'un a cherché de bonnes réponses et validé le processus. Je ne dis pas que toutes les entreprises sont comme ça, mais généralement lorsque je rejoins une entreprise, elles ont un document Word sur le lecteur réseau avec une liste de questions d'entrevue et elles se ressemblent à peu près. Cela me semble tout simplement très paresseux.
Desolate Planet
2

Mon modèle d'interview en pseudo code:

si question (FizzBuzz_type_question) == correct alors

pour chaque (question q dans array_of_more_interesting_questions) question (q) else

fin de l'entretien.

Jim au Texas
la source
1

Je pense que l'entretien devrait être divisé en:

  • Aspect social (en dehors des ressources humaines) - Cette personne s'intègre-t-elle bien dans notre organisation? A-t-il la bonne attitude? Est-il prêt à suivre notre style de gestion? Cela doit être original car les entreprises et les équipes sont différentes.

  • Aptitude générale pour le rôle - Là encore, cela devrait différer d'un endroit à l'autre

  • Noyau: Questions materielles qui se concentrent sur le domaine principal du travail - Ceci est scientifique et n'a pas besoin d'être original car il est scientifique.

  • Aptitude au travail au quotidien: ce sont des questions sur les sujets que vous attendez du candidat au quotidien. C'est peut-être scientifique, mais il vaut mieux que ce soit le vrai travail qu'on attend de lui. Cette partie pourrait varier d'un endroit à l'autre.

Aucune chance
la source