Quand être un génie technique ne suffit pas pour être un développeur à succès? [fermé]


18

Il y a eu beaucoup de discussions autour de l'excellente question " Est-ce qu'une réputation élevée dans Stack Overflow aidera à obtenir un bon travail? ". Je me suis immédiatement d' accord avec JoshK que , fondamentalement , dit « Non » (je vais vous expliquer pourquoi), mais Joel renchérit avec beaucoup de faits qui me convaincre fait de lui upvote aussi bien.

Ma question est de savoir quelles autres compétences (en plus d'être un génie technique) avez-vous besoin d'un développeur? Pour obtenir le travail ou le garder .

Je pense qu'être un génie est loin d'être suffisant. J'ai rencontré de nombreux génies techniques dans diverses entreprises pour lesquelles j'ai travaillé qui m'ont beaucoup impressionné, mais malheureusement dans de nombreux cas, ils ont simplement été licenciés après quelques mois ou placés dans des tours d'ivoire (principalement en raison d'une mutinerie interne d'autres développeurs). J'en ai vu beaucoup en détresse personnelle à la suite de ce que je comprends.

C'est pourquoi je suis un grand fan de questions non techniques pour les postes techniques. J'aime savoir comment le candidat interagira avec les autres (y compris les employés non techniques), combien il aura de considération pour l'entreprise, s'il travaillera pour le résultat souhaité, etc.

J'aimerais savoir ce que vous attendez de vos développeurs et POURQUOI c'est important (après tout, vous embauchez quelqu'un pour écrire du code, n'est-ce pas? Pourquoi voudriez-vous qu'il s'affirme?) . Idéalement, j'aimerais que vous trouviez un exemple de question que vous poseriez pendant les entretiens à l'appui de votre réponse.


Mon entreprise est chargée de tours d'ivoire avec des salaires d'ivoire pour leurs résidents :(
dr Hannibal Lecter

La vue est agréable du haut de la tour d'ivoire :)

Une grande réputation ici m'a valu une invitation à mettre un profil sur les carrières StackOverflow qui a conduit à un appel d'un recruteur qui a conduit à une offre de déménager à Seattle :-)
kevin cline

Réponses:


22

Excellentes capacités de communication.

Si vos collègues ne peuvent pas lire directement votre cerveau, vous devrez pouvoir leur dire ce que vous pensez. De préférence verbalement et par écrit.


EDIT: Un moyen de les voir au moment de l'entrevue peut être de leur demander quel est leur cadre préféré pour faire X, puis de dire qu'ils doivent travailler sur un projet où X pourrait être utilisé, mais c'est une décision politique d'utiliser la technologie Y (qui est clairement plus ancien et a certaines limites que X résout).

Si cela aboutit à un argument sur la raison pour laquelle la décision politique est erronée, vous avez une forte indication que cette personne ne réussit pas bien avec des décisions pragmatiques.


Allez-vous ajouter plus de détails sur la façon de communiquer avec des gars non techniques (tels que la direction ou les clients) à propos de choses très techniques? Je lis actuellement un excellent livre sur le sujet intitulé "Même un geek peut parler".

Eh bien, c'est essentiellement juste une question si vous pouvez penser dans leur état d'esprit. J'ai trouvé une fois qu'expliquer le développement de logiciels comme «nous écrivons des recettes de tricot» correspond bien à la mentalité des grands-mères.

3
J'ai toujours une préférence pour les candidats qui ont une excellente maîtrise de l'anglais et une volonté de prendre le temps supplémentaire pour travailler leurs compétences en communication écrite et orale. D'un autre côté, s'il parle ou écrit comme si la vie n'était qu'une autre application déployée sur Twitter, je ferai de mon mieux pour être poli en leur montrant la porte.
Adam Crossland

@Pierre, ce livre est-il disponible en ligne? Je n'ai pas pu le localiser sur Safari.

1
@ Pierre303, vous pourriez trouver "The Nerd Handbook" intéressant. randsinrepose.com/archives/2007/11/11/the_nerd_handbook.html . L'auteur a un blog très intéressant.

15

Travail d'équipe / communication:

  • pouvoir expliquer vos solutions ou vos problèmes
  • être capable de travailler avec d'autres personnes sans les faire se sentir mal (de quelque manière que ce soit) - les faire se sentir travailler avec vous est agréable

Sans ces compétences, vous ne pouvez pas travailler en équipe, et si vous ne le pouvez pas, vous ne pourrez pas entrer dans une entreprise qui en a besoin (et presque toutes nécessitent un travail d'équipe, naturellement). Vous pouvez toujours être indépendant et travailler sur des projets qui n'ont pas d'autres personnes sur lesquelles travailler, mais vous devez toujours communiquer avec des personnes d'autres entreprises.

Même pour apprendre, si vous ne pouvez pas communiquer avec beaucoup de personnes différentes, comme sur le Web, vous ne pourrez peut-être pas faire mieux dans la vie réelle et dans la société (quel que soit le travail), c'est un handicap.

modifier> En entrevue, le travail d'équipe / la socialisation / la communication est vraiment facile à vérifier, ce pourrait être la chose la plus simple. Vous avez juste à poser des questions, pas techniques, des questions faciles à répondre ou simplement des questions sur ce que le candidat pense de quelque chose ou ce qu'il aime ou n'aime pas dans un domaine ou un autre. Fait le parler. Tu verras.


15

La persistance est une compétence que je ne vois pas beaucoup mentionnée. Et c'est une compétence - la capacité de résoudre un problème, même si vous ne voyez pas la fin. Beaucoup de gens ne font pas ça; ils travaillent uniquement sur l'élan ou font le minimum pour s'en sortir. Malheureusement, il n'y a aucun moyen de savoir si une personne a ce trait en lui parlant. Vous devez vraiment pouvoir parler à d'autres personnes qui ont travaillé avec la personne. Les références peuvent le faire, mais cette option n'est pas toujours disponible.


+1 pour le commentaire de persistance - Je me demande si un haut représentant SO serait en corrélation avec la persistance?
Gary Rowe

@Gary - Je suppose que cela pourrait être le cas, s'il était obtenu par des réponses à des questions qui nécessitaient un certain travail à résoudre, et non par des questions de débutant auxquelles il manque un point-virgule ou quelque chose. ;)
Michael K

12

Ce sont plus de traits que de compétences, mais je dirais probablement que cela vaut la peine de trouver quelqu'un pour être un développeur à succès:

La polyvalence serait un autre trait que j'y mettrais. Parfois, un développeur peut avoir à remplir des rôles en dehors du développement pur, par exemple analyste commercial, architecte ou testeur. Je sais que j'ai eu diverses parties sur des projets où je fais autre chose que de concevoir ou d'écrire du code et cela devrait être quelque chose à voir dans un autre. Tout le monde ne peut accepter d'assumer ces autres rôles. Demandez quels types de situations le développeur a eu dans le passé où il a dû remplir un autre rôle et comment cela s'est avéré.

L'humilité en serait une autre que je mettrais probablement comme exigence. L'ego peut causer beaucoup de problèmes à certains endroits et tout le monde ne peut accepter qu'il puisse y avoir quelqu'un de meilleur dans quelque chose qu'eux. Si quelqu'un d'autre a une meilleure idée, que ce soit le cas. Vous pourriez avoir un échantillon du code du développeur que vous leur demandez de critiquer et de voir dans quelle mesure ils peuvent se corriger eux-mêmes ou non.

La fierté en serait un autre à mettre là-bas. C'est un peu en contraste avec la qualité précédente, mais si quelqu'un n'a pas un sentiment de fierté dans son travail, quel genre de qualité pensez-vous que c'est? Ne pas être satisfait est légèrement différent ici car probablement beaucoup de développeurs peuvent être perfectionnistes. Demandez de quel projet passé ils se sentent le plus fiers?

L'auto-motivation serait également une compétence importante à voir. Qu'est-ce qui les motive? Comment peuvent-ils bien articuler cela? "Office Space" a cette ligne de Peter Gibbons:

Huit, Bob. Cela signifie donc que lorsque je fais une erreur, huit personnes différentes viennent me le dire. C'est ma seule vraie motivation, c'est de ne pas être harcelé, ça et la peur de perdre mon travail. Mais vous savez, Bob, cela ne fera que travailler quelqu'un assez dur pour ne pas être viré.

C'est quelque chose auquel je pense que de nombreux développeurs et non-développeurs peuvent se rapporter. Pourquoi faites-vous le travail que vous faites? Cela peut être une bonne question, mais recherchez la sincérité et l'authenticité dans la réponse, car il est parfois possible de trouver des réponses en conserve.

La curiosité serait la dernière sur ma liste à ajouter. Le désir de voir comment quelque chose fonctionne, d'apprendre de nouvelles technologies et de sortir de sa zone de confort, sont d'autres marqueurs pour cela que l'on retrouve chez les développeurs à succès. Une courte histoire sur la façon dont on entre dans le développement peut être un moyen de voir ce trait, mais une autre est de leur demander quelque chose qu'ils n'ont pas vu et de voir s'ils ont un "Eh bien, cela pourrait être intéressant à explorer" ou un " Oh frère, pas ça encore, "type de regard.


Merci mille fois, alors qu'il y a déjà des réponses brillantes, la vôtre était celle que je cherchais. J'espère que plus de gens viendront ici avec plus de compétences que nous pouvons développer pour être un meilleur programmeur. (Je ne peux plus voter pour aujourd'hui, désolé)

7

1) La communication est probablement la compétence la plus importante pour quiconque, y compris les types d'ingénierie logicielle. Ces compétences en communication sont tout aussi importantes pour traiter avec les gestionnaires et les clients que pour traiter avec les collègues.

2) Le travail d'équipe est une compétence légèrement différente qui dépend fortement de la première. Essentiellement, je dois déterminer si la personne que j'essaie d'embaucher bénéficiera à l'équipe dans son ensemble, ou y aura-t-il des conflits de personnalité que j'embauche potentiellement. Personne ne peut prédire l'avenir, mais vous ne pouvez pas non plus ignorer les signes avant-coureurs de l'entretien.

Une tactique que j'utilise dans le processus d'entrevue consiste à demander à la personne de décrire l'un des problèmes techniques les plus difficiles (dont elle peut parler) et la façon dont elle les a résolus. Au fur et à mesure qu'ils discutent de leur raisonnement et de la façon dont ils ont découvert le problème, vous pouvez avoir une meilleure idée de la façon dont ils peuvent communiquer sur des choses potentiellement compliquées. S'ils cherchent de l'aide supplémentaire dans le processus, je vois cela comme un plus. Aucun de nous n'est un parfait technologue. Si le problème qu'ils ont choisi a fini par être un affrontement de personnalité (ce qui n'est arrivé qu'une seule fois), vous pouvez soit passer ou sonder un peu plus profondément.

À bien des égards, le processus d'entrevue est comme un rendez-vous à l'aveugle. Les deux personnes se mettent sous leur meilleur jour, essayant de comprendre si elles veulent passer plus de temps avec l'autre partie. Plus vous pourrez faire passer l'entretien comme une conversation, plus la personne interrogée sera détendue; et par conséquent, mieux vous verrez s'ils conviennent bien.


6

Bien qu'il s'agisse d'une qualité qui peut être plus applicable à l'équipe qu'aux développeurs individuels, je pense qu'il y a beaucoup de choses derrière le dicton «Les grands ingénieurs expédient».

C'est quelque chose qui serait difficile à démontrer dans une interview pour la plupart des gens, mais si j'interviewais un candidat qui, par exemple, avait écrit et expédié une application open source, une bibliothèque ou un cadre substantiel et pouvait parler avec éloquence du quelque chose en plus qui il faut réellement terminer un projet non trivial, je devrais donner à cette personne une longueur d'avance sur ses concurrents.

Au contraire, si un candidat potentiel me pointait vers son compte Github et que je voyais qu'il était plein de projets à moitié terminés, bogués, négligés ou mal documentés, j'aurais une bonne raison d'ignorer sa candidature.

"Le café est pour les fermiers", comme l'a dit un homme dans un film.


4

Les compétences en communication et en travail d'équipe sont importantes, mais j'ajouterais que la capacité de comprendre les exigences du client et d'acquérir des connaissances dans le domaine des affaires a également été très importante dans mon expérience.


2

Je suis d'accord que les communications sont primordiales, mais j'ai connu une défaillance d'un excellent codeur qui ne montrerait pas à d'autres ingénieurs l'utilisation de ses processus. J'ai pu dupliquer ses processus et les montrer aux autres mais sans son aide. Il a été licencié parce qu'il n'enseignait pas.


1

Ce n'est jamais assez.

Bon sens. Résolution de problème. Intérêt pour la technologie dans son ensemble. Attitude de faire les choses correctement. Persistance. Jeu d'équipe / communication.

Évaluez chaque compétence sur 1-5. Si vous avez obtenu min 3 et en moyenne 20+. Vous aurez une bonne vie en tant que développeur. 25+ sera un développeur à succès. Moins de 10 et vous devez sérieusement penser à une carrière dans le développement de logiciels.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.