web-dev-qa-db-fra.com

Comment puis-je savoir dans une interview si un programmeur est passionné par la programmation?

Alors que la plupart des questions d'entrevue sont axées sur les connaissances actuelles d'un candidat ou vérifient ses compétences pour résoudre des problèmes algorithmiques, j'aimerais embaucher un développeur passionné de programmation.

Et si au lieu de poser des questions comme

Que savez-vous de la technologie "X"?

Je vérifierai les connaissances qui ne sont pas directement liées à la résolution de problèmes d'ingénierie logicielle, mais montre à quel point vous êtes curieux pour l'informatique.

Par exemple, si je recherche un développeur Java, je peux demander qui sont les personnes les plus influentes dans le monde Java ou afficher un extrait de base Scala et demander à un candidat de interpréter le code.

J'ai même envisagé de montrer la photo d'Alan Turing et de laisser l'interviewé deviner qui est sur la photo. Cette pratique a-t-elle un sens?

102
Nutel

Tout ce que vous avez à faire est de lui demander de vous parler de l'un des projets sur lesquels il a travaillé et qui lui a le plus plu. Vous découvrirez plus sur son enthousiasme dans les 60 secondes suivantes que vous ne pourrez jamais lui montrer des photographies de notables décédés.

229
Robert Harvey

Par exemple, si je recherche un développeur Java, je peux demander qui sont les personnes les plus influentes dans le monde Java ou afficher un extrait de base Scala et demander à un candidat de interpréter le code. J'ai même envisagé de montrer la photo d'Alan Turing et de laisser l'interviewé deviner qui est sur la photo.

Ce sont des anecdotes et des connaissances techniques. Si vous voulez savoir s'ils sont passionnés par la programmation, vous devez engager leur passion d'une manière ou d'une autre , il existe deux façons simples de procéder:

  • Découvrez s'ils lisent des blogs/magazines de programmation
  • Voir s'ils programment sans emploi comme passe-temps
  • Voir s'ils sont impliqués dans des groupes d'utilisateurs ou des organisations
  • Demandez-leur ce qui les a attirés vers la programmation et si c'est encore une motivation pour eux
  • Découvrez s'ils ont un compte StackExchange

Si aucun si ceux-ci allument un spark dans leurs yeux, alors vous n'avez probablement pas de programmeur passionné. Vous pourriez en toucher certains qui sont trop occupés avec d'autres choses - mais je parierais que vous verrez une histoire ou au moins un vrai regret de ne pas avoir atteint certains de ces points.

71
DKnight

(avertissement, long message, seulement partiellement sur le sujet)

Eh bien, je demande la même chose depuis des lustres. Il y a environ 6 ans, j'essayais de faire comprendre aux recruteurs ce que nous étions (ils ont simplement coché les cases comme vous le dites).

A l'époque, j'écrivais:

Connaissez-vous comme nous? (Lettre ouverte aux recruteurs et aux candidats).

Notre culture est très importante pour nous, je ne parle pas de race ici, elle est basée sur le contexte, la façon dont vous voyez votre travail, ce que vous avez l'intention de retirer de votre travail, la façon dont vous abordez votre travail et vos relations avec les autres.

J'ai été confondu auparavant avec le sens de race donc je vais clarifier maintenant, ce n'est pas une chose basée sur la race, c'est une mentalité et une motivation. Nous avons travaillé avec des gens de nombreuses races qui ont été formidables. Nous en connaissons également beaucoup qui sont manifestement et simplement inutiles. Donc, la race ne définit pas du tout ce que nous recherchons, c'est un ajustement "culturel".

Il y a beaucoup de sous-cultures en Australie dont la plupart ne seraient pas ensemble, j'essaie d'expliquer la nôtre - The Geek.

  • Beaucoup de gens ont besoin d'instructions explicites: "A> B> C> D", vous leur donnez A et quelques informations et ils travailleront seuls B> C> D et E. Nous recherchons le deuxième groupe.
  • Les gens seront tout simplement d'accord avec vous parce que vous êtes "supérieurs" à eux. D'autres exprimeront leurs opinions et apporteront leurs idées. Nous voulons le second. En dessous de cela, si la décision va à leur encontre, ils s'y jetteront toujours.
  • Certaines personnes ont appris par cœur: vous faites A puis B puis C ce qui vous donne X. D'autres ont appris à apprendre et à penser. Voir au-delà de l'immédiat et résoudre le problème sous-jacent.

Beaucoup de nos emplois au cours des 14 dernières années proviennent de nos clients qui ont besoin de nettoyer et de terminer des projets qui ont échoué, principalement parce que l'entreprise a embauché le mauvais type de personnel ... cela coûte bien plus que leur salaire si vous l'obtenez faux.

Maintenant, essayons de choisir ces types de personnes que nous voulons dire quand nous disons "comme nous":

  • De bons inventeurs, de grandes idées, terribles et en train de terminer un projet. Cela me décrit. Besoin d'embaucher des gens pour répondre à ce problème.
  • Optimiseurs fantastiques et "faire" ers, si vous voulez que cela fonctionne vraiment bien les obtenir. Le revers de la médaille se rétrécit et prend beaucoup de temps pour y arriver. Généralement bon trait de technicien mais ne peut généralement pas converser avec le monde extérieur.
  • Très bon et sait "travailler correctement" et "de bout en bout". Ils peuvent voir un projet du début à la fin et ne rien manquer. "Parce que cela devrait être fait de cette façon". C'est une attitude que nous avons ici; les clients le savent et le paient. Combinez cela avec les "do" et ils sont idéaux.
  • Chemin le plus rapide vers le résultat immédiat. Parlez-en à tout le monde, fort, peu de chance. (Ne vous souciez pas de le faire fonctionner). Bon pour une start-up, mauvais pour une entreprise établie qui a besoin de cohérence. Dans un pur rôle de support/maintenance, c'est bien à condition que d'autres développeurs nettoient ensuite. Le prototypage et la preuve de concept fonctionnent, c'est formidable.
  • Généralement intéressé. Que se passe-t-il… parlez-nous de cela, que puis-je faire, comment puis-je y ajouter ma valeur en tant que connaissance ou en sueur (continuer avec quelque chose qu'ils voient comme requis).
  • Apprendre par cœur/travailleurs de processus. Là où le projet a été planifié jusqu'au bout et ils ont "leur part" à faire et c'est tout. Sont bons dans de très grandes équipes. Il n'y a aucun danger de prise de "tangentes" et de résultats inattendus sur 1/200 personnes. Ils s'attendent à recevoir leur liste "quoi faire", puis ils le font et reviennent pour le morceau suivant. De nombreuses cultures (à la fois raciales et scolaires) à travers le monde ont tendance à privilégier les apprenants par cœur ou les travailleurs de style Boss/Underling. Ce style de personne nous est inutile, envoyez-les à de plus grandes entreprises.
  • Nos employés sont égaux dans une équipe, censés travailler au sein de l'équipe pour atteindre les objectifs fixés par le client.
  • Vous faites tout ce qui est nécessaire pour décrocher le poste.
  • Vous vous donnez des opinions et des perspectives sans attachement.
  • Vous réfléchissez et analysez les cas limites.

La langue est un obstacle pour travailler avec nous. Nous avons à peu près notre propre langue ici, vous avez au moins besoin d'anglais et de compétences techniques combinées avec un sens de l'humour.

Si vous ne nous comprenez pas, vous ne comprendrez pas les exigences de ce que vous devez faire ni comment les autres vont procéder pour mettre en œuvre la solution ... vous ne durerez pas.

Pourquoi voudriez-vous travailler avec nous?

  • Vous êtes payé. Bon ce n'est pas la même chose que vous gagneriez dans le "monde réel" mais son bon argent.
  • Vous pouvez participer aux décisions. Alors que les réalisateurs ont le dernier mot, nous voulons entendre de tous, ce qu'ils pensent, comment et pourquoi le pensent. Tout cela aide.
  • Vous pouvez rechercher vos propres trucs. Intéressé par les trucs de geek, le codage, les nouveaux produits, les derniers développements de guerre MS vs Linux, les techniques de conception. Toutes ces choses, vous avez le temps chaque semaine de rechercher et de découvrir ce que vous voulez. Vous n'avez qu'à le partager avec tout le monde.
  • Vous pouvez essayer de nouvelles technologies. Que ce soit par la recherche ou par de nouveaux projets, nous voulons essayer de nouvelles choses et concevoir de nouvelles choses. Les projets sont là pour nous permettre de le faire. (à condition que cela aide le client et ne coûte pas plus cher que le projet)
  • Vous n'êtes pas obligé de porter des costumes. À moins que la situation ne l'exige, comme la visite de clients ou d'événements.
  • Nous voulons que vous en appreniez plus et nous vous proposerons une formation ciblée pour améliorer ce que vous savez.
  • Vous n'êtes généralement pas obligé d'exécuter 9-5. Si vous utilisez le support d'un accord 9-5, vous le faites, sinon faites le travail et n'abusez pas du privilège.
  • Grande équipe avec laquelle travailler. Eh bien, nous le pensons de toute façon, nous nous moquons des blagues par politesse et nous n'avons pas de coups de couteau dans la politique du dos.
  • Nous sommes aussi des geeks. Certains d'entre nous ont des amies et des enfants, mais ne vous y trompez pas.
  • Nous jouissons du respect de certaines très grandes entreprises et pouvons entrer sans aucun doute.
  • Notre clientèle est répartie dans toute l'Australie et dans le monde. Laisse beaucoup de place pour les voyages et
  • Nous construisons de très bonnes relations avec nos clients et leurs employés, ce qui signifie que nous avons beaucoup de gens avec qui nous pouvons aller boire.
  • Si vous avez un besoin ou un problème, cela ne nous dérange pas que vous preniez du temps pour le régler. Tant que vous faites la différence avec quelques heures supplémentaires plus tard.
  • Vos idées sont appréciées et vous obtenez une plus grande récompense pour ces idées.
  • Vous partagez le succès de Redgum.

Maintenant, voulez-vous toujours travailler pour nous? Pourquoi?

Conclusion

J'ai écrit qu'en 2004/05, j'ai moi-même réalisé 50 ou 60 entretiens, travaillé avec une quarantaine d'agences de recrutement qui m'ont jeté quelqu'un qui a coché les cases ... la plupart du temps c'était une perte de temps et je crains de choisir les gens d'une entrevue.

Jusqu'à présent, le plus grand succès que j'ai eu est de trouver un seul recruteur qui a compris la signification de ce qui précède et ce que je cherchais et pourrait filtrer la liste des personnes qui correspondent.

Maintenant, j'ai 1 recruteur en qui j'ai confiance connaît mon entreprise, connaît mes besoins, nous déjeunons tous les deux mois pour rattraper mon retard ... Je le laisse partir, lui donne le temps et j'espère qu'il ne me montrera que les candidats appropriés.

Le recrutement est un domaine spéciliste, et alors qu'en fin de compte, vous avez le dernier mot ... si vous avez de l'argent, laissez les personnes compétentes faire leur travail.

Une fois qu'ils ont trouvé quelqu'un, je les interviewe, je leur pose des questions sur leur expérience, leurs intérêts, les choses qui les motivent, les projets les plus cool qu'ils ont faits, j'entends leur réponse à ce qui précède ... une fois que je suis convaincu que je les amène pour une deuxième entrevue avec l'équipe pendant le déjeuner, tout le monde dans l'équipe leur pose des questions et me fait savoir que le pouce est levé ou baissé ... puis nous embauchons.

29
Robin Vessey

Alan Turing est un peu trop, mais nommer une personne influente me semble bien. Si on me posait cette question, je dirais que le gars a écrit Effective Java ...

L'embauche est une voie à double sens. Vous devez d'abord connaître votre bassin de talents. Si vous souhaitez embaucher un programmeur passionné, vous devez d'abord poser quelques questions. Avez-vous des problèmes passionnants à résoudre? Deuxièmement, offrez-vous une rémunération compétitive?

Si, en réalité, vous ne pouvez pas offrir les deux, il serait préférable de vous concentrer davantage sur les compétences et le professionnalisme.

21
thinkanotherone

Les employés de 37 Signals ont écrit un excellent article qui traite de l'embauche de grands programmeurs.

Vous pouvez lire le message pour plus de détails (ça vaut le coup!), Mais il peut être résumé en gros comme suit: il y a des choses que vous pouvez examiner et demander pendant l'entretien, comme

  1. Dans quelle mesure sont-ils d'opinion?
  2. Combien contribuent-ils aux projets open source?
  3. A quel point aiment-ils la programmation?
  4. Livrent-ils réellement?
  5. Qu'ont-ils maîtrisé?
  6. Communiquent-ils bien?

Vous pouvez atténuer davantage le risque d'embaucher quelqu'un en l'embauchant pour un petit projet pour voir comment il fonctionne. Cela vous montrera comment ils gèrent les tâches, gèrent leur temps, communiquent, etc.

8
Soner Gönül
  • entamer une conversation informelle sur les modèles de conception/les anti-modèles/les pratiques de programmation - et voir à quel point le candidat est informé. À quel point leurs opinions sont intéressantes ou rafraîchissantes. Et, qu'ils aient ou non leurs propres idées sur ces choses
  • parler d'un problème du monde réel et voir comment le candidat commence à proposer les solutions
  • voir combien (et combien de temps) un candidat peut parler de programmation (la philosophie PAS la mécanique) sans se référer à une technologie ou un langage particulier. Voyez si le candidat est un visionnaire ou est tout au sujet des écrous et boulons
  • leur demander de parler de leurs fonctionnalités les plus fantasmées dans un langage de programmation - un programmeur passionné aura toujours des fantasmes de fonctionnalités
  • leur demander des devis de programmation et voir s'ils connaissent certains des plus populaires
  • tester leur sens de l'humour sur la programmation
4
treecoder

Non, cette approche n'a absolument aucun sens. Je reconnaîtrais une photographie d'Alan Turing et je pourrais nommer quelques-uns des principaux acteurs du développement de Java mais cela ne vous dit rien sur ma passion pour ce que la programmation peut nous offrir. suivez la liste de tous les projets open source sur lesquels vous avez travaillé.Certains sont des connaissances facilement acquises et certains sont très souvent utilisés pour la préparation de CV/CV.

Demandez-leur de décrire un problème réel - aussi banal soit-il - qui pourrait être résolu en programmant une solution. Cela ne doit pas être quelque chose d'aussi pratique que d'identifier l'infrastructure derrière. Pensez simplement à la façon dont vous pourriez programmer votre chemin vers une meilleure façon de faire quelque chose. Les langues utilisées sont d'importance secondaire. En vous attachant à un langage particulier, vous n'obtenez pas nécessairement quelqu'un qui est passionné par la programmation.

3
temptar

Posez-lui des questions de résolution de problèmes du monde réel

En plus de vous parler des compétences de ce candidat, si vous prêtez attention à quel point il aborde avec enthousiasme les questions réelles de résolution de problèmes que vous lui posez, vous pouvez avoir une très bonne idée de sa passion pour la programmation. Et si vous lui posez différents types de questions de résolution de problèmes (certaines questions de codage, certaines questions de conception d'algorithmes, certaines questions de conception de systèmes), vous pouvez avoir une idée des domaines de programmation qui l'intéressent le plus.

Je suggère de lire Joel sur le Guide Guerilla de Software pour les Interviews non seulement il vous dit comment trouver cette passion, il vous dit que la passion n'est pas l'une des choses les plus importantes que vous recherchez - vous recherchez "intelligent" et "fait avancer les choses". (Il mentionne la passion, mais je pense que son intention est que c'est un signe des deux autres choses que vous recherchez ).

2
Ken Bloom

La définition de la passion est ici large. J'ai vu plusieurs types de programmeurs. Nous ne pouvons pas simplement les appeler programmeurs. Pour moi, je définis un programmeur passionné,

  1. Qui connaît les fondamentaux de la programmation (je veux dire les vrais fondamentaux). Sérieusement, cela montre l'attitude et les capacités d'apprendre de nouvelles choses à la volée, bien que nous n'utilisions pas directement les principes fondamentaux du code de production.
  2. Il doit avoir la capacité d'approfondir les problèmes et les technologies. La plupart des programmeurs sont experts dans l'utilisation de choses prêtes à l'emploi mais cela n'aide que dans une large mesure.
  3. Il doit être à jour avec les technologies et mises à jour industrielles dont il dispose. Je déteste vraiment les programmeurs qui ne sont pas prêts à mettre un peu de temps à lire des trucs. La plupart des gens ici sont intelligents, ils sont prêts à régler les problèmes. J'ai vu des gens intelligents consacrer des heures et des heures aux problèmes communément connus. Ce qui leur manque vraiment, c'est la capacité de lire.
  4. Un programmeur passionné sera aussi passionné par l'utilisateur que par son code. Il fait tout dans une perspective utilisateur.
  5. Doit montrer les capacités à utiliser/créer une bonne architecture logicielle progressivement au cours de la période.
2
sarat

Vous souhaitez des personnes "passionnées" ou compétentes? Je préfère avoir des gens qui connaissent leur entreprise mais qui peuvent faire la différence entre elle et la réalité que les enfants qui ne savent rien en dehors de leur écran d'ordinateur, n'ont pas de passe-temps, à part des trucs open source auxquels ils contribuent 16 heures par jour (la moitié tout en travaillant nominalement pour moi), etc.

2
jwenting

Je dirais que si vous êtes passionné par la programmation, vous pourrez en repérer d'autres. Tout ce que vous avez à faire est de parler de programmation qui ne devrait pas être difficile lors d'une interview. Et concentrez-vous sur le candidat qui parle. Assurez-vous de qualifier leur niveau de compétence quelle que soit leur passion. Sinon, cela pourrait obscurcir votre jugement.

1
JeffO

Demande si:

  • Ils répondent aux questions sur les sites StackExchange
  • Ils ont un blog ou un site Web?
  • Ils font des projets parallèles (éventuellement commerciaux)
  • Ils contribuent à des projets open source.
1
Scott C Wilson

Avant de pouvoir embaucher des programmeurs passionnés, vous devez déterminer ce que vous entendez par là.

Quand je cherche de la passion chez les programmeurs, cela a à voir avec l'enthousiasme de leur voix alors qu'ils discutent d'un problème de travail difficile que vous avez dû résoudre. Cela a à voir avec le fait d'être assez passionné pour obtenir --- profondeur de connaissances et de se mobiliser pour résoudre les problèmes difficiles. Ce qui n'a rien à voir avec le fait de savoir s'ils programment en dehors du travail ou peuvent nommer trois programmeurs célèbres du passé en regardant leurs images.

Lors des entretiens, vous pouvez entendre la passion dans la façon dont ils répondent aux questions. Ils vont plus loin que les non-passionnés et ont tendance à être enthousiastes dans ce qu'ils disent. Ils comprennent le domaine d'activité dans lequel ils ont programmé et sont capables de parler de la façon dont ils résolvent les problèmes et des suggestions qu'ils ont faites dans leur travail pour améliorer les processus de programmation ou la conception de l'application. Ils parlent de refactoring et de modèles de conception sans qu'on les interroge spécifiquement sur eux.

Quand ils parlent de leurs réalisations, ils parlent de choses qui vont au-delà du codage de base d'un module. Ils parlent de la façon dont ils ont vu un problème dans la conception et refactorisé ou ils expliquent comment ils ont trouvé une nouvelle technique à utiliser pour résoudre un problème difficile et ils parlent avec enthousiasme. Une personne passionnée est difficile à fermer. Ils veulent vraiment décrire leurs réalisations et leurs objectifs pour l'avenir. Ils peuvent avoir des choses sur lesquelles ils aimeraient spécifiquement travailler et que votre offre actuelle n'a pas. Ils montrent un modèle de croissance des compétences et de la complexité de ce qu'ils font.

1
HLGEM

Demandez-lui ce qu'il fait pendant son temps libre, si c'est du codage et du travail sur son projet personnel, c'est un signe assez sûr d'un programmeur passionné. Tous les programmeurs passionnés ne programment pas à leur place, mais la plupart d'entre eux sont passionnés

Une autre chose est de lui demander d'estimer le nombre d'heures qu'il a passées à programmer, plus il y a d'heures, plus il est passionné (en fonction de l'âge)

PS. Je ne dis pas que vous devriez passer toutvotre temps à coder. Vous devez avoir de la vie, des passe-temps, etc. Nous avons cependant tendance à passer du temps sur les choses que nous aimons (passer du temps sur un conjoint et des enfants est acceptable :) alors, mettez extratime le codage est un bon indicateur DS.

... et ouais ouais, vous, les programmeurs peu passionnés, pouvez me dévaloriser tout ce que vous voulez;)

DS.

0
Homde

Avant l'entrevue, vous pouvez faire la différence entre un développeur passionné et le reste par le curriculum vitae. Le développeur passionné parle de ce qu'ils ont fait, les autres expliquent comment ils l'ont fait. Le développeur passionné répertorie son blog, ses projets personnels, etc. les autres ne les ont pas.

Mon manager a assisté à mes premières entrevues et a été presque stupéfait lorsque je n'ai même pas filtré un candidat pendant l'entrevue. Il m'a demandé plus tard pourquoi je l'avais ignoré. "J'avais déjà lu son code sur son blog, je sais qu'il sait coder."

Au cours de l'entrevue, une seule question identifie la passion "ce qui vous a amené à la technologie" pour une personne que vous devrez probablement couper court à un développeur passionné alors qu'il commence à travailler sur des tangentes à propos de la première fois qu'il a utilisé un ordinateur, écrit un programme et et ainsi de suite. Je me retrouve à étouffer un bâillement en entendant une réponse du reste.

Enfin, mon écran technique commence par des questions qu'un développeur passionné pourrait offenser (et je le préfère en tant que tel), le développeur non passionné pourrait répondre correctement à quelques-unes, voire à toutes; le développeur passionné les ébranlera comme s'ils avaient une feuille de triche.

Mon parti pris est d'embaucher un développeur passionné avec moins d'expérience qu'un développeur expérimenté qui n'est pas désireux d'apprendre et de grandir. Le fait clair et simple est que la technologie change trop rapidement pour embaucher quelqu'un qui ne se tiendra pas au courant des tendances à venir sans le travail qui l'exige.

Je reconnais pleinement que ce n'est pas infaillible. Certains talents de qualité pourraient glisser entre mes doigts à cause de ma méthode. Je sais qu'il y a des gens qui sont très qualifiés mais qui tournent l'ordinateur à 5. D'un autre côté, j'ai été régulièrement impressionné par le programmeur passionné et indépendamment des années d'expérience, je trouve rapidement que j'apprends autant d'eux que ils viennent de moi.

0
Michael Brown