Demander un échantillon de code de l'entreprise lors d'une interview [fermé]

69

Demander à un demandeur d'emploi de montrer du code est une pratique assez courante pour une entreprise de logiciels. Cependant, serait-il acceptable que le candidat demande à l'intervieweur de lui montrer un petit morceau de code qu'il pense bien écrit?

Simon Bergot
la source
14
Je préférerais poser des questions sur les normes de codage, les révisions de code, etc.
user16764
5
La société réussit
Martin York
2
@LokiAstari le test joel ne concerne pas directement la culture de codage (uniquement l'environnement de travail).
Simon Bergot
8
@ user16764, c’est comme poser des questions théoriques au candidat: c’est une bonne première étape, mais cela ne vous montre pas vraiment comment il applique ces connaissances.
Simon Bergot
2
programmers.stackexchange.com/questions/160922/… Semblable à cette question.
Anonyme

Réponses:

69

Je demande toujours à voir du code, pour plusieurs raisons:

  • Je veux savoir dans quoi je m'embarque. Bien sûr, aucune entreprise de logiciels n'est parfaite, et je ne m'attends pas à ce que tout le monde produise des merveilles d'élégance (parce que moi non plus), mais si je demande le meilleur code d'une entreprise, et tout ce qu'elle peut me montrer, c'est un désordre spaghetti sous-par, je sais que je suis dans un temps misérable, déballer des boules de poils et lutter contre la dette technique pour obtenir quelque chose de fait. Rechercher le meilleur code qu'une entreprise peut montrer établit une limite supérieure du type de qualité possible dans ce pays; Même s'il est peu probable que tout leur code ressemble à cela, vous savez toujours que c'est quelque chose qu'ils aspirent.
  • L'examen des échantillons de code m'en dit long sur la culture de codage d' une entreprise. Utilisent-ils des commentaires de documentation? Est-ce qu'ils penchent vers un style orienté objet, ont-ils des tendances en programmation fonctionnelle? Sont-ils conservateurs ou progressistes? Valorisent-ils les noms cohérents, le formatage correct, l’indentation et le code net en général? Le code est-il facile à suivre? Comment structurent-ils leurs projets? Comment abordent-ils les éléments importants - tests automatisés, traitement des erreurs, etc.? A quel point leur style de codage est-il défensif?
  • Voir leur code existant vous permettra de juger si vous pouvez respecter leurs normes .
  • Le fait qu'une entreprise veuille partager uniquement des échantillons de code est un bon signe de principe. Cela signifie qu’ils me font confiance , le demandeur, car leur base de code est l’un de leurs atouts les plus précieux. Cela signifie également qu'ils n'ont pas honte de leur code, ils sont convaincus que le fait de me le montrer m'aidera à travailler avec eux.
  • S'ils ne vous montrent pas d'échantillons de code, cela ne doit pas être un drapeau rouge, mais il est sage de demander à tous les deux pourquoi ils ne partagent pas (probablement, ils ne peuvent tout simplement pas pour des raisons juridiques), ainsi que d'expliquer pourquoi vous voulez en voir. Je ne pense pas que manifester de l'intérêt pour leur code sera perçu comme un signe négatif, à condition de demander poliment et positivement.

Et puis il y a d'autres effets secondaires:

Les entreprises, celles qui acceptent de vous montrer du code, ne vont probablement pas m'envoyer une archive de fichiers source contenant la dernière version de leur base de code, pour des raisons évidentes. S'ils me montrent du code, ils le feront sous la forme d'une petite démonstration, ce qui est génial: cela signifie que je peux parler à l'un de mes pairs potentiels, cela me permet de poser davantage de questions sur leur culture, leurs processus, et codebase, et idéalement, cela aidera à démarrer une discussion professionnelle dans laquelle je peux à la fois démontrer des compétences et des connaissances et en apprendre davantage sur l'environnement de travail. Cela signifie également que je peux regarder les outils qu'ils utilisent, ce qui est également très perspicace - par exemple, si le projet qu'ils me montrent dépend fortement d'un IDE particulier, cela signifie que tout le monde l'utilise, ce qui peut être bon ou mauvais. Et enfin,

tdammers
la source
1
Si l'employeur potentiel vous montre clairement que le code est mauvais, rappelez-vous que cela pourrait être une occasion de le conduire à améliorer son code et ses processus. Comme le dit le vieil adage, "je ne peux que me tromper, mais je peux réparer les dégâts!". De plus, rappelez-vous que le code présenté à ou par un candidat a probablement été soumis à beaucoup plus de rigueur et de révision que les autres codes.
Akton
@akton C'est mon attitude envers le mauvais code. Cependant, il est inutile lorsque vous êtes seul dans votre quête "Correction du code en désordre". Demander à voir un code correct peut aider à sentir si votre future équipe valorise des choses comme SOLID
Simon Bergot
1
« Je demande toujours à voir le code » Comment après - vous réellement montré le code bien? Leur demandez-vous de préparer quelque chose à l’avance ou de vous envoyer quelque chose après? Peu importe la façon dont vous le regardez, cela semble irréalisable.
Burhan Ali le
1
@BurhanAli: je demande juste. Beaucoup refusent de me montrer, et me donnent généralement de bonnes raisons, ce qui est bien. Ceux qui sont d'accord me donnent une visite supervisée. Je doute que quelqu'un m'enverrait un ensemble complet de sources à explorer, mais il est souvent acceptable de cliquer sur le projet dans un IDE pendant que je regarde.
tdammers
Dans de nombreux cas, je penserais que le code que je voudrais vraiment voir serait considéré comme fermé comme un avantage concurrentiel. Ce sera le code qui compte le plus pour moi ... Cependant, s’ils acceptent de vous montrer du code et que ce soit nul, c’est probablement le signe qu’ils ne comprennent pas le bon code. Si j'étais un chef de file, je ne vous montrerais probablement pas de code interne non trivial. Juste moi si.
Rig
14

Cependant, serait-il acceptable que le candidat demande à l'intervieweur de lui montrer un petit morceau de code qu'il pense bien écrit?

Je suppose que cela tombe dans le mantra entier des «entretiens sont bidirectionnels», mais je ne m'attendrais pas à en obtenir. Les problèmes de propriété intellectuelle sont le problème le plus évident après le fait qu’il n’ya pas d’ordinateur dans la salle d’interview et que vous y rendre est un peu gênant.

De plus, ils vont simplement choisir le code le plus beau et le moins significatif qui soit. Le meilleur code n'est pas vraiment un problème, le pire est. C'est la même raison pour laquelle obtenir des échantillons de code des candidats est pratiquement inutile.

Telastyn
la source
10
Il est toujours utile de voir s’ils peuvent sélectionner le bon code à vous montrer. La partie la plus frustrante de la gestion d'un code incorrect est souvent que personne ne le reconnaît, il doit être corrigé.
JGWeissman
5
En outre, l'idée d'un code correct de la part de l'intervieweur n'est peut-être pas la vôtre. Je pense qu'il serait utile de le savoir le plus tôt possible.
Eric King
1
Malheureusement, lorsque j'ai essayé d'utiliser l'approche "les entretiens sont bidirectionnels", la plupart des employeurs ont agi avec agacement. On ne m'a encore jamais montré de code. L'autre chose que j'ai demandé à voir est un modèle de données, mais aucune chance non plus.
Antonio2011a
12

Serait-il acceptable que le candidat demande à l'intervieweur de lui montrer un petit morceau de code qu'il pense bien écrit?

Vous pouvez demander ce que vous voulez, mais:

  • Vous ne l'obtiendrez probablement pas.

  • Si vous l'obtenez, il ne vous dira rien d'utile. Si 10% de leur code est beau et que le reste est constitué de spaghettis, vous aurez toujours affaire à des spaghettis.

  • Vous aurez l'air d'un pantalon chic. Ce n'est pas une grande aide si vous décidez finalement de travailler ici.

  • C'est une perte de temps précieux d'interview.

  • Il existe de meilleurs moyens de savoir ce que vous voulez savoir. Posez des questions comme:

    • Quels sont les indicateurs les plus importants de la qualité du code?
    • Est-ce que je maintiendrai principalement le code existant ou en rédigerai un nouveau?
    • Pouvez-vous expliquer brièvement comment fonctionne votre système?
    • Avez-vous un document de normes de codage et est-ce que tout le monde le suit?
Caleb
la source
Bon point ! Malheureusement, poser une question du type "Quels sont les indicateurs les plus importants de la qualité du code?" Peut également être perçu comme un pantalon intelligent. (De mon point de vue, la question est raisonnable, mais beaucoup d’employeurs n’aiment pas se sentir interrogés par un subordonné potentiel).
Antonio2011a
2
@ Antonio2011a devrait bien se poser si vous posez la bonne question - peut-être "quelles mesures de la qualité du code cherchez-vous ici?" expliquez simplement que vous voulez en savoir plus sur la façon dont ils font les choses. Vous apprenez à leur sujet, pas administrer un test. Pourrait fonctionner même en demandant du code: "Pourrais-je voir à quoi ressemble votre code?" plutôt que "je voudrais un échantillon de ce que vous considérez comme un bon code."
Caleb
3

En fait ça dépend. J'ai toujours aimé savoir où je vais travailler.

Je vois un entretien d'embauche comme bidirectionnel. La société découvre de vous et vous découvrez de la société. Demander du code peut sembler un peu compliqué, mais poser des questions relatives au développement devrait être acceptable.

Par exemple, je n'accepterais pas de travail pour lequel l'entreprise n'utilise pas de techniques agiles ou de TDD ou ne prévoit pas d'adopter et d'encourager de telles pratiques. J'apprécie également le fait qu'une entreprise soit fière de son produit et de son code - lorsqu'il semble que l'intervieweur attend que vous demandiez à le voir afin qu'il ait une excuse pour expliquer toutes les choses intéressantes qu'il fait.

Patkos Csaba
la source
D'accord. J'essaie de fouiller dans les outils qu'ils utilisent? La direction paie-t-elle des outils supplémentaires (composants, utilitaires), contrairement à de nombreux endroits? L'attitude à l'égard des outils à code source ouvert est toujours bonne aussi.
Ozz le
2

Haha, c'est une question amusante. Je ne serais pas offensé si quelqu'un me demandait un échantillon de code pendant l'interview, mais je ne leur montrerais probablement pas de code non plus, à moins qu'ils ne l'aient demandé à l'avance et que j'ai eu le temps de planifier avec soin.

Je comprends tout à fait l’intention de poser une telle question. En tant que chercheuse d'emploi, j'ai déjà demandé le test de Joël à un intervieweur. Ils ne savaient pas ce que c'était, mais ils étaient heureux de répondre.

Dans certains endroits, poser ce type de questions peut améliorer vos chances, mais peut aussi nuire à vos chances ailleurs. La beauté de la vie est que si cela améliore vos chances, alors c'est le genre d'endroit où vous voudriez travailler. Si cela nuit à vos chances, vous n'auriez de toute façon pas souhaité ce travail.

Je ne vois rien à perdre en demandant poliment et en étant capable d'expliquer pourquoi vous voulez le voir.

Mark E. Haase
la source
"La beauté de la vie est que si cela améliore vos chances, alors c'est le genre d'endroit où vous voudriez travailler." +1
Spidey
2

Lors de mes deux entretiens, j’ai posé cette question lorsqu’ils ont affirmé qu’ils avaient migré des développeurs seniors vers asp.net mvc3 ou 4 ou quand ils avaient déclaré vouloir du code très commenté. J'ai rejeté aux deux occasions en raison de leur manque de connaissances sur la norme de code réelle. La seule norme que j'ai trouvée était si cela fonctionne copier-coller et cela fonctionnera. Je ne poserai pas cette question si je fais un nouveau projet ou si je dois écrire un morceau de code indépendant des autres membres de l'équipe. Je vais certainement voir le code si je suis embauché pour réparer un logiciel existant ou une fonction et je ne dirai pas oui à moins que je ne connaisse la réponse. Supposons que vous ne demandez pas et ils disent que vous pouvez réparer le datepicker pour commencer à partir de la date d'aujourd'hui. Lorsque vous examinez le code existant, vous ne voyez pas jquery ou jquery ui, mais un sélecteur de date personnalisé qui contient toutes les dates stockées dans un fichier xml et chaque nuit un travail cron est exécuté pour mettre à jour les mois suivants. Cela créerait un problème, car le code utilisé pour y parvenir est inférieur aux mots de cet exemple. Si vous allez travailler sur leur code, demandez à le voir. Ne pas demander, c'est comme demander un travail en sachant que le client dit que c'est petit. Il possède peut-être 20 acres de terre et le jardinage de son acre est petit pour lui, mais le jardinier ne peut pas payer 50 livres parce que tous ses petits travaux commencent à partir de 50.

Farrukh Subhani
la source
1

J'ai tendance à travailler pour des entreprises où au moins une partie de leur travail est open source. Il est donc facile de trouver des exemples de code. Je découvre qui travaille dans l'entreprise, puis je découvre leurs descripteurs en ligne. Comme les gens ont tendance à utiliser le même nom d’écran, encore et encore, il est facile de trouver l’endroit où ils ont validé le code, qu’ils soient sur Github, Bitbucket ou ailleurs.

Ma société actuelle a une tonne de code hébergée sur Github, il était donc facile de voir avec quoi ils travaillaient, quelle était leur taille de code et ce qui semble ne plus être intéressant.

Je ne demanderais jamais un échantillon, simplement parce qu'ils vont vous montrer le meilleur code qu'ils ont. Ce n'est pas le code avec lequel vous allez travailler. Il est probablement logé dans une cloche dans une pièce fermée à clé. Vous travaillerez avec le code compliqué que beaucoup de gens ont dû manipuler.

kcunning
la source
0

C'est génial si vous pouvez l'obtenir. Parfois, ce n'est pas possible sans accords de type NDA, mais il est toujours bon d'essayer. Pour augmenter vos chances, informez vos enquêteurs que vous le souhaitez bien à l’avance (quelques jours) afin qu’ils aient quelque chose à l’esprit à vous montrer.

anon
la source