Aaron Schwartz : Comment j'embauche des programmeurs

image À propos de l'auteur : Aaron Schwartz est un activiste Internet américain, programmeur, écrivain, hacktiviste. Mort pour la liberté d'information.



  • À l'âge de 12 ans, il crée le site Info, où chacun peut écrire sur ce qu'il sait (et d'autres peuvent ajouter et commenter). C'était le précurseur de Wikipédia.
  • À l'âge de 14 ans, Schwartz a co-écrit la spécification RSS 1.0.
  • Aaron Schwartz a travaillé sous la direction de Tim Berners-Lee au sein du groupe de travail RDF au W3C.
  • J'ai participé au premier programme chez Y Combinator avec une startup Infogami, qui a ensuite fusionné avec le site populaire Reddit.
  • A travaillé sur Open Library et Creative Commons
  • A apporté des contributions importantes à Markdown.


2009 Post

Lorsque vous embauchez un programmeur (et n'importe qui, d'ailleurs), vous êtes confronté à trois questions. Est-il intelligent ? Pouvez-vous faire ce que vous devez faire ? Pouvez-vous travailler avec lui ? Quelqu'un qui est intelligent mais incapable d'accomplir une tâche peut être votre ami, mais pas un travailleur. Vous pouvez discuter de vos problèmes avec lui, pendant qu'il retardera le travail important. Quiconque est capable d'accomplir des tâches, mais est inefficace est inefficace : les gens imprudents font le travail d'une manière chronophage, le travail avec eux est lent et plein de déceptions. Eh bien, avec quelqu'un avec qui vous ne pouvez pas travailler, vous ne pouvez tout simplement pas travailler.



La procédure habituelle pour embaucher un programmeur consiste à : a) lire un curriculum vitae, b) poser des questions difficiles au téléphone, et c) lui présenter un problème de programmation en personne. Je pense que ce genre de système d'embauche est terrible. Il y a très peu à apprendre d'un CV, et les questions difficiles lors des entretiens rendent les gens très nerveux. La programmation n'est pas un travail sous pression, donc regarder des gens qui sont nerveux est assez inutile. Et les questions d'entretien sont généralement choisies selon le principe "plus c'est difficile, mieux c'est". Je pense que je suis un programmeur passable, mais je n'ai jamais fait une interview comme celle-ci, et je doute que je puisse le faire du tout.



Donc, quand j'embauche quelqu'un, j'essaie juste de répondre aux trois questions ci-dessus. Pour savoir si une personne est capable de faire les bonnes choses, je lui demande simplement ce qu'elle a déjà fait. Si une personne est vraiment capable de faire un travail, à ce moment-là, elle devrait avoir fait quelque chose. Il est difficile d'être un bon programmeur sans une certaine expérience de travail, et maintenant tout le monde peut acquérir de l'expérience en participant à une sorte de projet pour créer un programme gratuit. Je demande donc simplement à la personne un exemple de code et un programme de travail et je vois si ça a l'air bien. Donc, vous pouvez vraiment apprendre beaucoup de choses, car vous ne regardez pas comment il répond à une question inventée lors d'un entretien - vous regardez le code qu'il donne réellement.Est-ce concis ? compréhensible? élégant? pratique? Aimeriez-vous avoir quelque chose comme ça dans votre projet?



Pour savoir si une personne est intelligente, j'ai juste une conversation informelle avec elle. J'essaie de tout faire pour soulager toute tension - je prends rendez-vous dans un café, explique qu'il ne s'agit pas d'un entretien, je fais tout pour être informel et convivial. En aucun cas, je ne lui pose des questions d'entretien standard - je discute simplement avec lui comme je discuterais avec quelqu'un lors d'une fête. (Si, lors de fêtes, vous demandez aux gens de nommer leurs forces et leurs faiblesses, ou de déterminer le nombre d'accordeurs de piano à Chicago, vous avez de gros problèmes.) Je pense qu'il est assez facile dans une conversation informelle de savoir si une personne est intelligente. . J'évalue constamment l'intelligence des personnes que je rencontre, tout comme j'évalue constamment leur attractivité.



Mais si je devais noter les signes pour lesquels quelqu'un me semble intelligent, j'insisterais sur trois points. Premièrement, quelle est la profondeur de ses connaissances ? Demandez-lui à quoi il a pensé ces derniers temps et « sondez-le » sur ce sujet. Semble-t-il avoir une compréhension détaillée du sujet? Peut-il l'expliquer clairement ? (Une explication claire est un signe de compréhension sincère.) Connaît-il le sujet que vous ne connaissez pas ?



Deuxièmement, est-il curieux ? Pose-t-il des questions sur vous en retour ? Est-il vraiment intéressé ou essaie-t-il simplement d'être poli ? Pose-t-il des questions supplémentaires à ce que vous dites? Ses questions vous interrogent-elles ?



Troisièmement, apprend-il? À un moment donné de la conversation, vous lui expliquez peut-être quelque chose. Comprend-il vraiment ce que vous dites ou est-ce qu'il sourit et hoche la tête ? Il y a des gens qui ont des connaissances dans un petit domaine, mais qui ne s'intéressent pas à d'autres questions. Et il y a des gens qui sont curieux mais n'apprennent pas, ils posent beaucoup de questions mais n'écoutent pas vraiment. Vous avez besoin de quelqu'un qui soit à la fois l'un et l'autre, et le troisième.



Enfin, je détermine si je peux travailler avec une personne simplement en passant du temps avec elle. De nombreuses personnes exceptionnelles semblent adorables dans la première heure de communication, mais après quelques heures, leur excentricité commence à agacer. Ainsi, lorsque vous avez terminé avec une conversation informelle, invitez-le à déjeuner avec le reste de l'équipe ou à jouer au bureau. Encore une fois, essayez de garder les choses aussi informelles que possible. Le but est simplement de voir s'il va vous énerver.



Si tout se passe bien et que je suis prêt à embaucher une personne, le bon sens dit qu'une dernière vérification est nécessaire pour m'assurer que je ne suis pas trompé d'une manière ou d'une autre : je lui demande de faire une partie du travail. Cela signifie généralement qu'il doit écrire un morceau de code plus ou moins indépendant dont nous avons besoin. (Si vous voulez vraiment le voir jouer dans des conditions stressantes, fixez-lui une date limite.) Si nécessaire, vous pouvez lui proposer de payer pour le travail - même si je trouve que la plupart des programmeurs ne sont pas opposés à faire une petite tâche, s'ils peut alors rendre les sources résultantes ouvertes. Ce test ne fonctionne pas tout seul, mais si quelqu'un a réussi les trois premiers tests, cela devrait suffire à prouver que la personne ne vous a pas trompé, qu'elle peut réellement faire le travail.



(J'ai rencontré des gens qui disent : « Eh bien, d'accord, essayons de vous embaucher pendant un mois et voyons comment ça se passe. » Cela ne semble pas fonctionner. Si vous ne pouvez pas prendre de décision après avoir terminé un petit projet, vous ne pouvez pas le faire en un mois, alors il s'avère que vous embauchez quelqu'un qui n'est pas assez bon. Mieux vaut dire non et chercher quelqu'un de mieux.)



Je suis assez content de cette méthode. Lorsque je n'y ai que partiellement adhéré, cela a fini par engager des personnes inappropriées qui ont finalement dû partir. Mais quand j'ai suivi ce plan, j'ai eu des gens que j'aimais tellement que je le regrette vraiment si je dois m'en séparer. C'est incroyable de voir combien d'entreprises utilisent à la place d'autres méthodes d'embauche stupides.



Traduction : "Webplanète"








Suivez l'actualité de la YC Startup Library en russe sur le canal télégramme ou sur Facebook .



Matériaux utiles






All Articles