Comme une opinion de quelqu'un qui demande des échantillons de code lors de l'évaluation des candidats, il existe quelques fonctionnalités de haut niveau (contenu du code) et quelques fonctionnalités de bas niveau (structure du code). Caractéristiques de haut niveau:
- Identité : la saveur du code. Si vous vous présentez comme un codeur UI / HCI, je veux voir une bonne apparence pour quelque chose de visuel lorsque je l'exécute. Si vous êtes un constructeur de bases de données, je veux voir quelque chose d'intéressant avec la représentation ou l'analyse des données. L'échantillon devrait être quelque chose dont vous êtes fier . Si vous n'en avez pas au moins un, vous n'avez pas d'identité.
- Maturité : changez -vous de stratégie pour différents problèmes? Résolvez-vous des problèmes intéressants? Serait-il facile d'étendre le code ou l'approche à un problème similaire? À l'inverse, ai-je l'impression de regarder un membre d'une commune culte cargaison?
- Communication : le code explique-t-il facilement ce qu'il fait et pourquoi? Cela ne signifie pas que le code doit être simple. En fait, c'est un bonus de rendre le code complexe facile à comprendre.
Les aspects de bas niveau sont plus simples:
- Style : Le code doit être propre, cohérent (suit certaines directives établies) et bien documenté.
- Empaquetage : Il devrait y avoir au minimum un fichier Readme court, une version exécutable et des tests exécutables. Le fichier Lisezmoi devrait me dire comment exécuter les deux derniers, ainsi que pourquoi vous démontrez cet exemple de code particulier.
- Langue (s) : Je demande généralement à quelqu'un un échantillon dans la langue du poste, ainsi que celui dans lequel il se sent le plus fort. Donne une bonne idée des plafonds actuels d'une personne.
Pour un bon candidat, je m'attends à ce qu'un échantillon soit: A) Un petit échantillon à l'épreuve des balles ou B) Une bonne partie d'un projet intéressant plus vaste (par exemple, un module d'un dépôt personnel Github). Je m'attends à ce que ce soient des projets personnels ou des projets académiques. S'ils en envoient un à partir d'un projet rémunéré, j'attends une note qu'ils ont été autorisés à l'utiliser. Si je ne reçois pas cette note, je vais les couper des candidats (candidat faible) ou les interroger lors de l'entretien (candidat fort). Ne pas avoir l'autorisation serait un grand drapeau rouge (probablement insurmontable). Pour un candidat avancé, je m'attends à un avertissement notant que certains de leurs meilleurs échantillons source ne peuvent pas être affichés car cela a été fait dans le cadre de leur travail. Cependant, je m'attends alors à un témoignage jaillissant de la raison pour laquelle ils sont fiers de ce design non montrable et comment ils l'aiment comme un enfant.
Enfin, autant que certains disent que "Oh, quelqu'un pourrait simplement obtenir un échantillon de code sur Internet", le contre-argument est que la plupart des gens qui ne comprennent pas un bon code de qualité de production ne le comprennent pas non plus lorsqu'ils le voient. . En outre, on peut toujours Google une ligne distinctive pour le code à vérifier. De plus, au mieux, le vol de code amènera un candidat à une entrevue où il s'embarrassera ("Alors pourquoi l'avez-vous fait de cette façon ...?").
Une dernière note sur le code de l'emploi précédent: tout simplement pas. Du point de vue des ressources humaines, demander le code d'un emploi précédent est inapproprié et un drapeau rouge sur l'entreprise. Vous auriez tous deux une responsabilité légale (c'est-à-dire que vous pourriez tous deux être poursuivis) et cela montre qu'ils n'ont aucune idée de ce qu'ils font. Le code fait pour un employeur précédent ne doit jamais être donné, sauf si le code est déjà accessible au public ou si vous avez l'autorisation explicite de cet employeur. Pire, dans une grande entreprise, votre patron direct peut ne pas avoir le pouvoir de vous donner la permission, alors amusez-vous avec le service juridique dans ce cas? Je suis sûr qu'ils seront ravis d'exposer leur adresse IP pour un employé sortant.