D'après ce que je comprends, avoir une erreur (même une faute de frappe comme ou manquant ";") dans votre code de tableau blanc vous coûtera souvent des points d'interview. Éviter cela fera inévitablement un code de relecture encore et encore (perte de temps et éventuellement d'énergie / concentration neuronale) ou même en utilisant un algorithme plus simple (et donc moins efficace) - et ces deux façons sont à nouveau "coûteuses"!
Alors, pourquoi ne pas simplement écrire du code rapidement aussi élégant et efficace que vous auriez un cadre de test (unitaire) à votre disposition et ensuite le tester normalement (juste sur le tableau blanc)?
Quelqu'un a-t-il essayé / vu cette approche? L'idée est-elle digne?
[cela s'applique également au cas du stylo et du papier]
Réponses:
Je veux absolument que vous testiez le code du tableau blanc que je vous demande d'écrire. Je veux que vous parliez à haute voix pendant que vous l'écrivez, l'examinez, repérez la plupart des erreurs de syntaxe que vous avez faites et montrez comment cela pourrait être plus efficace. En fait, c'est un peu l'intérêt de le faire au tableau blanc. Ce n'est pas un genre de chose à un coup, à tout écrire, uh-huh-you-get-70/100. C'est une conversation, médiée par un code et tenue sur le tableau blanc au lieu de traverser mon bureau.
Voici quelques excellentes façons d'échouer au test de "codage du tableau blanc":
(par exemple: l'écrire dans Fortran, interpréter "afficher" ou "imprimer" comme "écrire dans le journal des événements", ce genre de chose. Je pourrais le permettre si vous me disiez à l'avance que c'était vos hypothèses)
(Nous sommes des consultants ici. Je teste le comportement du consultant autant que le codage. Demander au client n'est correct que si le client a réellement le choix. Contrôler les conversations avec les gens qui vous paieront est difficile. C'est la leçon 1. C'est un marquer contre vous sur n'importe quel sujet, mais pour le spécifique "vous embauchez un programmeur X mais je ne veux pas écrire X pour vous" vous avez maintenant deux grosses marques noires.)
(vous pensez que j'exagère, mais j'ai eu un gars qui a généralisé mon problème de façon spectaculaire - respectant l'exemple ci-dessus, disons qu'au lieu de 1 à 5, sa solution ferait n'importe quelle séquence arbitraire d'entiers (d'où je me suis demandé) et avait 5 ans fois aussi longtemps que n'importe qui d'autre - et il a oublié d'appeler la fonction qui a fait le travail. Des invites répétées et suggérant de le parcourir comme s'il était le débogueur ne l'ont pas amené à remarquer que la fonction n'a jamais été appelée.)
Je dis toujours "vous aimez ça?" "pouvez-vous améliorer cela?" "guide-moi à travers ça" et ainsi de suite. En règle générale, le point-virgule manquant est repéré, ou le point par point, dans cette conversation. Sinon, je le marque habituellement jusqu'aux nerfs.
D'autres choses que vous ne pensez peut-être pas importantes au tableau blanc qui comptent pour moi:
Je recommande fortement de pratiquer le codage sur le tableau blanc. Je préviens toujours les personnes interrogées qu'elles seront invitées à le faire. Si vous avez accès à un véritable tableau blanc, posez-vous quelques problèmes simples et entraînez-vous à les utiliser. Il contribuera à votre performance et à votre confiance.
Désolé, je sais que je suis en territoire TL; DR, mais voici le problème - le codage sur le tableau blanc ne se limite pas au codage . C'est un test de plus que votre compréhension de la syntaxe. Il y a beaucoup de comportements de bons programmeurs qui sont démontrés dans votre réponse à cette tâche. Si vous pensez qu'il ne s'agit que de codage, vous manquez le point.
Dans d'autres conversations sur les tests de tableau blanc, les gens me disent que je peux rejeter un bon candidat avec. Honnêtement, c'est un risque que je suis prêt à prendre. Chaque tour d'embauche contient plusieurs personnes que je pourrais embaucher. Certaines personnes avec un excellent curriculum vitae, qui se débrouillent bien dans la partie questions-réponses de l'entrevue, se désagrègent au tableau blanc et ne peuvent clairement pas (avec une quantité d'incitation) écrire du code simple dans la langue qu'elles prétendent connaître. J'aurais peut-être embauché certains d'entre eux. Tout outil qui l'empêche est un outil que je continuerai à utiliser. Je n'ai jamais trouvé personne pour louer un bateau parce que tous mes candidats se sont trompés sur le tableau blanc et je ne m'attends pas à le faire.
la source
Je pense que vous avez fait une supposition incorrecte ici. Il n'y a aucun moyen que je m'attende à ce qu'un candidat écrivant du code sur un tableau blanc puisse obtenir tous les ';' parfaitement en place. Si vous interviewez dans un endroit qui vous pénalise pour cela, je suggère qu'ils ne sont pas une organisation pour laquelle vous voulez travailler :-).
la source
Les tests sur papier ou tableau blanc sont extrêmement inefficaces. Je me souviens une fois que j'ai eu une interview où j'ai dû chercher des erreurs dans du code sur papier. L'un d'eux était que la classe héritait d'une interface mais qu'il manquait l'implémentation d'un membre. Je savais que c'était probablement l'une des erreurs, je le cherchais et pour une raison quelconque sur place, je ne pouvais tout simplement pas le voir (même si j'ai mentionné que je cherchais cela comme l'un des problèmes).
En l'occurrence, j'ai toujours eu ce travail, mais cela m'a fait penser à ce qui s'était passé. Dans un scénario réaliste pour ce genre de chose, je vais obtenir des lignes ondulées au moment où quelque chose ne va pas (c'est C # dans Visual Studio) et la chose ne va pas se compiler. Je ne vérifie jamais cela dans la vraie vie parce que cela n'arrive jamais (c'est impossible) et donc je suis désaccordé de voir ce genre de chose. Les points-virgules manquants en sont un exemple encore plus extrême - totalement irréaliste dans le monde réel, sauf si vous écrivez dans le bloc-notes et envoyez votre code par courrier électronique à quelqu'un d'autre pour le compiler!
Si quelqu'un demande à utiliser un tableau blanc lors d'une interview pour soutenir quelque chose qu'il veut dire, c'est parfait, mais je ne le ferais jamais dans l'autre sens.
la source
Je l'ai fait. Lors d'une interview, on m'a demandé d'implémenter un encodage de longueur sur le tableau blanc, et pendant que je raccourcissais une partie du code (expliquant ce que j'abréviais) pour l'adapter au tableau blanc, j'ai toujours trouvé une collection de tests pour cette unité, et parcouru l'un d'eux pour valider ma solution et montrer comment les tests pourraient aider. On m'a proposé ce poste, donc je suppose que les tests ont été utiles, ou au pire, pas ennuyeux.
la source
J'utilise cette approche lorsque je passe des tests pour l'école. J'écris d'abord la fonction, puis sur le côté, j'écris un petit tableau d'entrées, de sorties et de variables. J'ai attrapé quelques erreurs stupides de cette façon. Il est toujours préférable de tester, même sur papier / tableau blanc, que de ne pas tester.
Je suis en désaccord avec paniquer sur les points-virgules dans un cadre professionnel, cependant.
la source
Demander à un candidat de coder sur un tableau blanc est stupide. Il existe des outils modernes comme les extraits de code, jsfiddle et intellisense. De plus, aucun ingénieur ne devrait être tenu de mémoriser la syntaxe. La syntaxe est recherchée et référencée. Si vous mémorisez du code, vous n'avez probablement pas passé de temps dans votre carrière à apprendre à coder dans un environnement multi-locataire, à optimiser la syntaxe ou même un environnement hébergé.
la source
Lorsqu'un restaurant veut embaucher un chef, le propriétaire ne lui demande pas de cuisiner un "pot au feu" avec un cure-dent et une casquette.
Ne demandez pas à un développeur de coder sur un tableau blanc lors d'une interview.
la source
Le codage du tableau blanc est difficile. Je n'ai jamais été initié à cela avant d'être interviewé par Disney. Ne sachant pas à quoi m'attendre et ne pouvant pas le déboguer, je suis tombé dessus en le discutant et en résolvant le problème, mais dans un pseudo code en quelque sorte. Quand ils ont demandé, cela pouvait-il fonctionner?
Je veux dire, bien sûr, vous pourriez juste avoir à corriger les erreurs de syntaxe, correct. Je pense qu'ils ont perdu un très bon candidat si je n'étais pas embauché à cause du tableau blanc. Je regarde les qualifications et on dirait que je suis bien qualifié pour le poste et que je peux faire le travail. J'excelle dans le travail actuel où je suis et j'aurais souhaité pouvoir avec eux.
Merci pour votre contribution Kate, j'ai lu chaque mot. C'est juste pour moi en tant que programmeur, le tableau blanc ne montre vraiment pas vos compétences. Je suis un excellent programmeur qui travaille dans plusieurs langues. Je connaissais la langue dans laquelle je devais programmer, mais sur un tableau blanc, j'ai soudain oublié.
Je construis une intégration complexe et un traitement des cartes de crédit, mais sur un tableau blanc, je ne me souvenais même pas comment faire la syntaxe appropriée, rien ne m'invite.
En tant qu'employeur, j'aime les tests du tableau blanc; cependant, j'embauche un programmeur, je veux voir leurs compétences réelles s'ils font le travail. C'est génial s'ils peuvent communiquer, mais je dois les voir être en mesure de résoudre des problèmes.
la source