Existe-t-il un super programmeur? [fermé]

14

Avez-vous rencontré un super programmeur? Qu'est-ce qui l'identifie en tant que tel, par rapport aux programmeurs expérimentés / excellents "normaux"?

Aussi. comment traitez-vous avec une personne de votre équipe qui croit être un super programmeur? Les deux au cas où il le serait réellement ou s'il ne l'est pas?

Edit : entrées intéressantes tout au long, merci. Quelques éléments peuvent être glanés:

Quelques définitions ont émergé. Sans tenir compte des définitions trop localisées (qui identifiaient les auteurs ou leurs connaissances comme des super programmeurs), j'ai aimé quelques définitions:

  1. Définition de Thorbjørn : une personne qui fait l'équivalent d'une bonne équipe de manière cohérente pendant une longue période.

  2. Electron gratuit, lié à la réponse d' Henry . Une personne très productive, aux capacités exceptionnelles. L' explication est une bonne lecture.

    Un Free Electron peut tout faire en matière de code. Ils peuvent écrire une application complète à partir de zéro, apprendre une langue en un week-end et, plus important encore, ils peuvent plonger dans une énorme pile de code de spaghetti, donner un sens à cela et le faire fonctionner. Vous pouvez créer une entreprise entière autour d'un Electron libre. Ils sont si bons.

    En contraste avec la dernière définition, est le point lié par James au sujet du mythe du génie programmeur ( vidéo ). La même idée est exprimée comme une programmation sans ego dans le commentaire de rwong. Ils présentent des opinions opposées quant à l'optimisation pour un programmeur aussi unique ou pour une équipe.

Ces définitions sont définitivement différentes, donc je vous serais reconnaissant si vous avez une idée de ce qui est le mieux. Ou ajoutez le vôtre si vous le souhaitez bien sûr, mais il serait utile de dire pourquoi il est différent de ceux-ci.

Muhammad Alkarouri
la source
3
Oui, et son nom est John Carmack .
Gary Willoughby
1
J'ai une liste de 4 électrons libres sur un petit morceau de papier enfermé dans un tirage dans mon bureau.
Henry
Si 'super programmeur' == 'programmeur génial' click_this google.com/events/io/2009/sessions/MythGeniusProgrammer.html
James
Voir la réponse de Jeff sur la programmation sans ego .
rwong
Je voudrais juste ajouter une pensée du livre The Mythical Man-Month, en.wikipedia.org/wiki/The_Mythical_Man-Month , un document de recherche a été cité qui indique un bon programmeur plusieurs fois mieux qu'un bon. Je ne me souviens pas de tous les détails mais évidemment, il y a beaucoup de valeur chez quelqu'un qui peut produire dans une équipe, des ordres de grandeur plus que les autres.
Travis

Réponses:

17

Je considérerais le terme "super programmeur" uniquement pour ceux qui peuvent faire un travail qui nécessite généralement une équipe de bons programmeurs, et le faire de manière cohérente pendant une longue période.

Cela va à la fois pour écrire du code de haute qualité (documentation, tests, etc.) et pour résoudre des problèmes très difficiles nécessitant beaucoup de connaissances et de talent à résoudre.

Mais cela nécessite une performance élevée sur tous les comptes depuis longtemps. Pour ceux qui écrivent des tonnes de code que personne ne peut comprendre et maintenir, le terme n'est pas applicable.

Comment faire avec? Si vous avez vraiment une telle personne, faites tout ce que vous pouvez pour fournir l'échafaudage nécessaire pour que la personne excelle. Cela signifie déplacer les choses non pertinentes et fournir les ressources dont la personne a besoin. Veuillez noter que j'ai trouvé que les très bons interprètes ont tendance à être humbles.

Il est malheureusement beaucoup plus probable que vous ayez une personne qui pense être un super programmeur et qui ne l'est pas. D'après mon expérience, la façon de les gérer est de rendre leurs performances mesurables. "FindBugs ne peut trouver aucun problème", "Tout le code doit avoir des tests correspondant aux cas d'utilisation", "Revue par les pairs".

Si le code est vraiment difficile à comprendre, envisagez des réunions hebdomadaires où le programmeur pas si super explique tout code que le code qu'il a écrit depuis la dernière réunion que n'importe qui peut demander anonymement pour avoir expliqué, et n'importe qui peut rejeter anonymement pour avoir accepté dans le base de code pour qu'il soit impossible à maintenir. Ensuite, au moins vous avez partagé l'état d'esprit et autorisé les futurs responsables à opposer leur veto à un morceau de code. Cela indiquera également fortement au programmeur le type de code qui le fera effectuer un travail supplémentaire.

(EDIT: La raison du bit anonyme est d'éviter que le programmeur pas si super ne riposte contre ceux qui s'opposent à lui).


la source
2
Excellents points, à l'exception de l'entrée anonyme. Si l'équipe veut vraiment s'unifier et que le "super-programmeur" comprend s'il est réellement à la hauteur de la définition, ils devront apprendre les forces et les faiblesses des autres, pour travailler ensemble pour le succès de l'équipe et du logiciel. et pour instaurer la confiance. Il s'agit de s'ouvrir à la critique des autres (comme cela se fait dans une certaine mesure ici) pour que l'on trouve et corrige ses défauts de super-programmeur.
Huperniketes
@Huper, l'anonymat est d'éviter que cela ne devienne personnel au début. Si vous croyez que vous êtes surhumain, vous pourriez ne pas trop prendre à la critique (ou cette question n'aurait pas été posée en premier lieu).
2
@Thor, c'est déjà personnel lorsque vous traitez avec ce que quelqu'un croit de lui-même. L'anonymat rend la confiance beaucoup plus difficile à développer. Les membres de l'équipe doivent avoir confiance qu'ils peuvent être honnêtes, que les critiques sont les bienvenues et que les opinions importantes sont ouvertes.
Huperniketes
Un super programmeur trouverait-il plus facile ou plus difficile d'expliquer le code à un programmeur junior? Si l'écart est important, l'explication peut être difficile. N'est-ce pas?
Muhammad Alkarouri du
1
@Muhammad, étant donné que ma définition est qu'un super programmeur écrit du code propre et maintenable avec une bonne documentation, que même un programmeur débutant peut comprendre (sauf pour les algorithmes très complexes qui sont moins fréquemment nécessaires en Java en raison des choses disponibles dans le runtime, donc je ne les considère pas). Je pense que ce serait aussi simple, mais peut-être plus long, d'expliquer à un programmeur junior.
5

Un superprogrammeur est toute personne qui peut générer du code plus rapidement qu'un compilateur de vitesse, plus puissante qu'une fonction récursive et capable de sauter par-dessus les piles FIFO en une seule liaison.

La façon dont vous traitez une personne de votre équipe qui croit qu'il est un superprogrammeur est en l'exposant à sa seule faiblesse - la lumière du soleil.

Chétan
la source
5
@Chetan: Qu'est-ce qu'une pile FIFO?
rwong
3
@Chetan: c'est une réponse inutile. Peut-être que vous n'avez pas travaillé avec des programmeurs tellement incroyables que vous commencez à vous demander si vous en êtes digne.
JBRWilkinson du
Un superprogrammeur doit vivre dans le cloud et fournir une API publique pour son langage de requête mentale .
rwong
@rwong pile premier entré, premier sorti, également appelée file d'attente.
alternative
1
@mathepic: si vous pouvez appeler une file d'attente une pile, cela signifie-t-il que LIFO et FIFO sont la même chose? (pour paraphraser Lincoln)
rwong
3

Demandez à la personne d'écrire un chapitre d'elle-même dans le style Coders at Work . Soumettez-le à un éditeur. S'il est rejeté, alors la personne n'est pas un super programmeur.

rwong
la source
L'inverse de votre affirmation est-il vrai? (S'il est accepté, pouvez-vous supposer qu'il / elle est un super programmeur?) Je pense que cela pourrait utiliser des clarifications.
alternative
J'ai perdu tout respect que j'aurais pu avoir pour l'auteur de ce livre dès que j'ai lu qu'il était autrefois «l'architecte d'un système de messagerie transactionnelle basé sur Java». Oh, eh bien, au moins, il avait le sens de quitter ce travail.
Dan Moulding
1
@Dan Moulding: Tant qu'il se tait et laisse les programmeurs qu'il interview dans ce livre parler, je me fiche de ce qu'il prétend. (Je viens d'acheter ce livre et j'ai hâte de le lire. J'espère qu'il est aussi bon que je le pense). =)
gablin
L'idée est bonne, mais les éditeurs ont tendance à accepter des programmeurs célèbres plutôt que des super programmeurs. Correct?
Muhammad Alkarouri du
@Alkarouri: si super a la même signification que dans superstar , alors oui, être un super-programmeur signifie aussi être célèbre.
rwong
2

Il y a ceux qui peuvent produire plus de résultats que d'autres.

Il y a ceux qui peuvent produire une sortie avec un taux de défauts inférieur à d'autres.

Ceux qui peuvent constamment produire plus de sortie, avec des taux de défauts inférieurs à la normale, pourraient être dignes d'être appelés Super-Programmer.

Être connu ou considéré comme tel n'est généralement apparent qu'à un gestionnaire éclairé avec le recul.

Quelqu'un qui pense être un super programmeur a probablement un gros ego et pense qu'il est bon. Cela ne les rend pas bons.

Attitude <> Capacité.

vite_maintenant
la source
1

Super programmeur: une personne d'une intelligence supérieure à la moyenne avec un fort dévouement à la programmation. Je parle d'une personne qui passe beaucoup de temps à programmer, ne quitte pas facilement et est déterminée à résoudre un problème particulier. Cette personne s'endort rarement s'il y a un problème / bug en attente. Le super programmeur écrit du code efficace, rapide et fiable. Le super programmeur possède une connaissance approfondie et approfondie d'au moins un langage de programmation (et de la technologie), est compétent dans quelques autres et peut rapidement apprendre tout ce qui est nécessaire.

Maggie
la source
0

Avez-vous rencontré un super programmeur? Qu'est-ce qui l'identifie comme tel

Des programmes / projets qui ont créé , le code source de celui-ci, l'étude qui a fait.

croit qu'il est un super programmeur

Comme vous dites qu'il le croit, c'est très difficile de lui faire ne pas le croire. Le pire, c'est que cette personne a été arrêtée pour être un meilleur programmeur parce qu'elle pense que tout est prêt est super, et il arrête son évolution. Quoi de pire que cela dans la programmation. Quoi qu'il en soit, vous pouvez toujours demander une preuve ... et lui demander avec qui il / elle se compare pour faire l'hypothèse qu'il / elle est super.

Aristos
la source