49 votes

Question d'entretien, Que veulent-ils accomplir ?

J'ai participé à un entretien d'embauche technique aujourd'hui, et il était temps de me donner quelques exercices de programmation. Je suis finalement arrivé à la dernière question :

Vu les chiffres :

116 104 105 115 32 105 115 32 99 111 114 114 101 99 ?

Quel est le prochain numéro ?

Pour vraiment comprendre mon état d'esprit, je vous encourage à arrêter de lire et à essayer de trouver le prochain chiffre. Prenez quelques minutes, et si vous n'arrivez toujours pas à le deviner, continuez à lire.

J'ai d'abord passé 5 minutes à chercher un motif, auquel je n'en ai pas trouvé. J'ai commencé à me sentir stupide. Remarquez, le type me fixait, attendant une réponse. Je me sentais un peu stupide.
On m'a donc donné un indice. This is not a mathematical question

J'ai passé 5 minutes de plus, et il a dit The sequence is important .

Puis encore 5 minutes, et il a dit He believed only programmers would understand this

Encore 5 minutes et je n'avais toujours pas compris ce qu'était le dernier chiffre. Il a donné un dernier indice qui m'a permis de le résoudre, et c'était Think of the numbers as replacment for some sort of Alphabet .

Maintenant, je vous encourage à trouver la réponse, mais je veux aussi savoir pourquoi les gens posent une telle question. Qu'est-ce que cela a à voir avec la programmation, et qu'est-ce qu'il accomplit en me voyant passer 20 minutes à réfléchir dans une agonie désespérée ?

36voto

NVRAM Points 2555

D'abord la réponse : 116 - c'est la forme décimale des lettres ASCII "ceci est correc" donc la lettre 't' vient ensuite.

Mais, alors que j'ai compris (grâce à vos indices) le schéma, j'aimerais faire quelques commentaires :

  • Il essayait vraisemblablement de voir comment vous attaquiez un problème difficile, voire nébuleux.
  • S'il est vraiment resté silencieux pendant 5 minutes d'affilée, alors il doit travailler sur son style d'interview, ne serait-ce que pour vous encourager à parler .

Cela dit :

  • Avez-vous réfléchi à haute voix et parlé des différentes approches que vous avez utilisées ?
  • Avez-vous posé des questions d'approfondissement sur le domaine du problème ?

Par ailleurs, je me suis souvenu par erreur que le "a" était 96 et non 97, ce qui m'aurait fait passer à côté du problème. Mais j'aurais parlé pendant tout ce temps.

Vous devez transmettre votre processus de réflexion et ne pas vous contenter de donner une réponse. Il m'est arrivé à deux reprises que des examinateurs me donnent des problèmes qu'ils ne s'attendaient pas à ce que je résolve, dans le but de voir comment je m'y prendrais pour les résoudre.

( Soit dit en passant, j'ai reçu des offres lors des deux entretiens, parce que j'ai réussi à résoudre les problèmes en parlant, même si je n'ai pas pu terminer de les résoudre. )

28voto

Ether Points 34103

Toute personne qui écrit des valeurs ascii en décimal est folle. La séquence aurait l'air bien plus familière si elle était en hexadécimal.

22voto

0xA3 Points 73439

Votre question m'a rappelé une campagne publicitaire d'EA il y a quelques années :

alt text

19voto

Stray Points 1153

Je suis autiste. Curieusement, après un premier coup d'œil qui m'a dit qu'il ne s'agissait pas d'un motif numérique, la prochaine chose que j'ai remarquée était les 32 - qui, je le sais, sont des espaces. À partir de là, j'ai compris assez rapidement (en moins d'une minute) que c'est le cas. C'est assez rapide à vérifier parce que les codes I-H et S-T sont consécutifs, je ne connaissais pas le code ascii de l'un d'entre eux mais dès que j'ai confirmé que l'espace I-S correspondait, j'ai su que j'étais sur la bonne voie.

Ensuite, le RR est rapide - un caractère en dessous du S.

Donc - oui, je l'ai eu presque immédiatement. Mais, comme je l'ai dit, je suis autiste. Il y a un tas de choses normales que je ne peux pas faire, mais la correspondance des modèles est quelque chose que je fais compulsivement. Je pense que cela n'aurait pas été très utile pour l'entretien.

Je sais que cela semble être une question terrible, parce qu'il s'agit de tester vos compétences en matière de cassage de code et de recherche de modèles, et non vos compétences en matière de résolution de problèmes, mais je pense que ce n'est pas le but recherché.

Lorsque je recrutais du personnel, j'utilisais un exercice similaire qui consistait à utiliser un jeu de cartes avec des formes colorées et à demander aux gens de trier les cartes en piles et, sur la base de mes réponses "convient" et "ne convient pas", de déterminer les règles du "jeu".

Le but de l'exercice n'était pas de tester leurs compétences en matière de recherche de motifs, mais d'avoir une idée de leur réponse émotionnelle à l'expérience d'essayer de résoudre un problème difficile où ils se retrouveront le plus souvent dans des culs-de-sac. Dans mon exercice de cartes, les cartes étaient toujours présentées dans un ordre qui conduisait la personne interrogée à penser qu'elle avait résolu le problème, pour se rendre compte qu'elle ne l'avait pas fait, à trois reprises.

Pour un poste de R&D stimulant, vous voulez embaucher des personnes pour lesquelles plus l'espace de problème devient complexe, plus elles se sentent intéressées et enthousiastes. Pour un rôle moins stimulant, vous voulez quelqu'un qui préférerait que l'espace du problème soit stable - par exemple quelqu'un pour écrire des requêtes pour une grande base de données où nous ne voulons pas changer le système du tout.

Il s'agit en fait d'un exercice de tri assez utile pour faire correspondre les candidats aux rôles.

17voto

Omnifarious Points 25666

Donc, ça m'a pris un peu de temps, et je n'avais pas besoin d'indices, mais 116 est la bonne réponse. Pour moi, ce n'était pas tant les 32 que la façon dont les chiffres du motif se répétaient. Il n'y avait pas de logique mathématique claire, mais quelque chose d'autre dans le motif a fait tilt pour moi et j'ai compris.

Une fois, il y a longtemps, j'ai réussi à craquer un jeu (Koronis Rift pour ceux que ça intéresse, et je ne l'ai jamais téléchargé sur un BBS). Je ne l'ai pas craqué parce que je voulais le copier exactement. C'était parce qu'il sauvegardait les parties sur le même disque que le jeu, et cela me dérangeait vraiment. Une fois que je l'ai craqué, j'étais assez fier de moi parce que la protection contre la copie avait fait quelque chose de plutôt délicat. J'ai donc voulu mettre ma marque sur l'écran de chargement.

Je ne savais pas où était l'écran de chargement. J'ai utilisé un désassembleur pour exécuter le truc de chargement, mais je n'ai jamais pu aller aussi loin que l'endroit d'où l'écran était chargé. Mais j'avais beaucoup regardé le disque, et il y avait une séquence d'octets qui ressemblait à des données brutes pour une image. Je savais quelle taille devait avoir l'image si c'était des données brutes, alors j'ai trouvé le début et la fin de la séquence, je l'ai mise dans un fichier et j'ai chargé le fichier dans un éditeur d'images. J'avais raison.

Quelqu'un m'a demandé "Comment avez-vous su que c'était une photo ?". Et j'étais incapable de l'expliquer. Ça y ressemblait, c'est tout.

Ce n'est pas un talent/une compétence que j'attends d'un bon programmeur. Et je trouve que les questions d'entretien qui sont presque expressément conçues pour que le candidat ne les obtienne pas sont vraiment exaspérantes.

Oui, il y a quelque chose dans le fait de voir comment le candidat résout le problème. Mais si je dois tester cela, je vais au moins proposer un problème fictif en rapport avec le travail que je veux que le candidat fasse.

La seule façon dont je poserais cette question est si je cherchais un ingénieur inverse ou un cryptographe. La capacité à remarquer des modèles de ce type et à deviner leur signification serait une compétence très précieuse pour ces deux rôles. Mais pas pour un programmeur général.

Je pense qu'il y a un certain sadisme chez certains intervieweurs. Une certaine joie de voir un candidat se tortiller. Ils peuvent parler d'examiner la capacité du candidat à résoudre des problèmes, mais je pense qu'ils cherchent juste à apprécier le sentiment (pas nécessairement la réalité) d'être plus intelligent que le candidat.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X