Pourquoi les bons programmeurs sont-ils appelés Ninjas? [fermé]

36

Comment un programmeur Ninja est-il défini? S'il ne s'agit que d'un développeur expérimenté, n'y a-t-il pas vraiment de meilleure façon de décrire cela? Ninja sonne comme un stratagème de marketing enfantin conçu pour attirer les développeurs avec des illusions de grandeur. Ou est-ce que je manque quelque chose? En particulier, je veux savoir quelles qualités d’un Ninja sont souhaitées chez les programmeurs pour que la comparaison soit valable (outre le facteur de fraîcheur)?

J'ai trouvé cet article qui fait de bonnes comparaisons entre les caractéristiques de Ninja et le développement Agile. Cependant, j'aimerais entendre des personnes qui ont utilisé le mot Ninja à des fins de recrutement et quelles sont leurs motivations.

Mise à jour: Plusieurs points positifs ont été soulevés des deux côtés de l'argument. J'ai essayé de les résumer dans mon blog . J'ai choisi la réponse de JB comme réponse acceptée car elle résume toutes les raisons valables pour effectuer la comparaison.

Alinium
la source
3
Les Ninja sont des experts en arts martiaux. Les bons programmeurs sont des experts en programmation.
5
Jamais été appelé un Ninja. Gourou ou Maître d'autre part ...
noone
40
Cela me rappelle la "méthode Ninja" lors de l'utilisation de pointeurs: il suffit de jeter des étoiles (*) jusqu'à ce que cela fonctionne. ^^
gablin
10
Le terme correct est "tueur codant ninja singe gourou beau héros sexmachine."
Maxpm
2
@ maxm, espérons que l'étiquette "sexmachine" ne soit pas pertinente lors de la programmation?

Réponses:

33

À mon sens, il existe quelques parallèles entre un Ninja et un bon programmeur:

  1. Armes cachées / style peu orthodoxe - Si vous avez déjà vu le dessin animé de GI Joe des années 1980, vous vous souviendrez peut-être du personnage de Storm Shadow . Il avait une épée et des étoiles qui lançaient mais, avec les bonnes séquences de coups de poing et de pieds, il a réussi à démonter un tank dans un épisode. De la même manière, les programmeurs peuvent être appelés à effectuer des travaux qui les obligent à sortir des armes que vous n'auriez peut-être pas imaginées. Ceci est un parent du point "Hacker" qui a été mentionné dans quelques endroits.

  2. Honneur / respect - J'admets que j'ai davantage vu cela dans les représentations occidentales d'un ninja tel que GI Joe ou Teenage Mutant Ninja Turtles, mais il semblait y avoir cette attitude d'honorer son ennemi, probablement tirée de "Art of War". Les bons programmeurs peuvent respecter le fait qu’il peut y avoir de meilleurs quelque part. L'humilité est aussi dans ce sens.

  3. Maîtrise implicite - Il se peut que l’on présume que tous les ninjas sont des maîtres et ont donc vraiment perfectionné leurs compétences pour savoir comment bien se battre. Les bons programmeurs peuvent également avoir maîtrisé certaines compétences qui sont très utiles pour faire le travail.

Celles-ci sont les quelques-unes au-delà de la superficielle, "Oh ça sonne bien," les implications car il devait y avoir de la viande pour que ça colle. Bien que je convienne que Samurai est peut-être le titre le plus correct, une fois que les choses ont disparu pendant un moment sous une forme incorrecte, il est nécessaire de réconcilier les choses ici, car les TMNT ne sont pas vraiment ce que la plupart des gens considéreraient comme des mercenaires secrets. C'est ce que Ninjas sont techniquement. Cependant, pour ceux d'entre nous qui ont grandi avec des représentations de Ninjas sous forme de dessins animés sous cet angle positif, c'est peut-être ce qui reste pour nous. Il y a donc aussi un élément de nostalgie.

JB King
la source
19
Qu'en est-il des vêtements sombres et ne pas parler beaucoup? :-P
JBRWilkinson
Ssshhh ... la furtivité est parmi ces armes cachées. :)
JB King
4
"Parmi leurs armes se trouvent des armes furtives, cachées et une dévotion presque fanatique pour de bons styles de codage ... également moins de paroles ... bah! J'y reviendrai ..."
Timothy Baldridge,
Vous pensez aux samouraïs. Les Ninjas ne sont que des tueurs sanglants. Aucun honneur avec les ninjas.
Février
Avez-vous déjà vu "Teenage Mutant Ninja Turtles" sous forme de bande dessinée ou de film?
JB King
41

C'est à peu près ce que vous dites - une tentative d'impliquer le sang-froid et l'élit (souvent parmi ceux qui ne le sont pas) en faisant des comparaisons extrêmement ténues.

Personnellement, je déteste cette phrase (avec "Rockstar Programmer" qui nous donne envie de battre des gens à mort. Vous pouvez être un programmeur de rockstar si vous avez un problème d'alcool et que vous avez détruit au moins une voiture et une chambre d'hôtel. ).

Vous êtes un programmeur, si vous avez des problèmes pour être un programmeur parce que vous voulez faire quelque chose que vous pensez être plus cool, alors traitez-vous avec eux (ou arrêtez de faire quelque chose que vous jugez plus cool). Si vous n'aimez pas la façon dont les autres considèrent les programmeurs, alors comprenez que c'est leur problème qui ne vous concerne pas.

Vous n'allez certainement pas changer d'avis avec des phrases qui feraient penser à la moyenne des 12 ans que vous tentiez un peu difficile d'être impressionnant.

/ rant

Edit: Pour être clair, le coup de gueule ne vise pas le questionneur ...

Jon Hopkins
la source
6
@ Larry - La plupart des comparaisons peuvent également s'appliquer à de très bons professionnels dans d'autres domaines, mais vous ne pouvez pas obtenir d'avocats ninja, de médecins ninja ou de personnel des comptes clients ninja (sauf peut-être Herbert Kornfeld). La question intéressante n’est-elle pas pourquoi les programmeurs ressentent le besoin de le faire?
Jon Hopkins
9
@Jom Hopkins, le NHS au Royaume-Uni regorge de médecins ninja ... vous ne les verrez certainement jamais.
Kevin D
6
@ Jon Hopkins: La culture de programmation encourage les liens et l'humour au niveau de la sous-culture. Beaucoup de programmeurs considèrent les ninjas comme étant cool et veulent être cool. Il est donc génial de se faire appeler ninja. Naturellement, cela ne s'applique pas dans tous les domaines et il y a des programmeurs qui détestent ce genre de chose. Cela dépend de la personne. Mais en général, la programmation a évolué pour devenir une profession dominante comme celle de médecin, d’avocate, etc., et elle a été accompagnée de références à la sous-culture (rockstars, ninjas, etc.).
Adam Lear
3
@ Adam Lear, si cela est censé être une partie essentielle de la "culture de programmation", je ne veux rien avoir à faire avec une telle "culture". Les liens les plus profonds que j'ai jamais connus avec d'autres développeurs reposaient sur la capacité et le mérite.
jonathanconway
3
@Adam - Je comprends le fond, je trouve que le tout est un peu adolescent et je pense que cela dénigre les programmeurs en tant que professionnels sérieux une fois que nous avons atteint l'âge de 20 ou 30 ans (et plus). Je ne dis pas que les programmeurs devraient abandonner leur culture, mais il y a une différence entre, par exemple, lire XKCD et Neal Stephenson ou passer nos week-ends à apprendre la cryptographie (qui peut être geek mais qui est aussi intelligente), et c'est un peu enfantin. et en réalité à peu près aussi cool que vous pouvez obtenir.
Jon Hopkins
15

Un concept commun aux experts en arts martiaux et aux bons programmeurs est l’économie d’effort. Les experts en arts martiaux évitent les mouvements inutiles; les bons programmeurs évitent le code inutile.

Le concept d'invisibilité se traduit par la transparence dans l'écriture d'une bibliothèque. Une bonne bibliothèque a une interface intuitive, vous pouvez la brancher sans vous soucier de rien.

EDIT: J'ai oublié la chose la plus importante: les ninjas et les bons programmeurs sont hautement qualifiés grâce à leur formation et à leur pratique.

Larry Coleman
la source
1
1. Cela dépend de l'art martial. Êtes-vous sûr qu'ils évitent les mouvements inutiles dans le kung-fu ou la capoeira? 2. Vous pouvez être un ninja et / ou un programmeur et en être très mauvais. Ceci dit, j'apprécie votre réponse quand même;) +1
@Pierre: merci. Ma réponse pourrait être peaufinée, mais je voulais mettre quelque chose en place pour aider à démontrer que la question était valide. Comme vous pouvez le constater, un vote doit déjà être clôturé.
Larry Coleman
15

À ma connaissance, tous les bons ou excellents programmeurs ne sont pas des Ninja. Les Ninjas sont une race spéciale. Un programmeur Ninja est celui qui apparaît à des heures inhabituelles (par exemple, à 3 heures du matin), fait des choses dangereuses que les gens normaux hésitent à utiliser (comme utiliser un éditeur hexadécimal pour corriger un bogue très critique dans un programme prétendument non maintenable vieux de dix ans. sur le serveur de production) et disparaît sans être vu.

De toute évidence, même si un Ninja a besoin d’excellentes compétences techniques pour faire de tels cascades régulièrement et survivre, de nombreux excellents programmeurs ne correspondent pas du tout à cette description. Avec des méthodes appropriées en place, le Ninja n'est pas nécessaire. D'un autre côté, si l'impossible se produit, c'est une bonne chose d'en avoir un.

utilisateur281377
la source
10

En plus des facteurs «Coolness» et «Elite», les ninjas sont souvent furtifs et sont connus pour faire des choses telles que la sécurité furtive pour se rendre dans des endroits qu’ils ne devraient pas. Parce que ce trait est partagé par les pirates, je pense que quelqu'un a pensé que "Ninja" serait un bon titre pour eux. Pour les non-informaticiens, les hackers et les programmeurs sont la même chose, et ils pensent que le mot "ninja" est très cool.

La logique est donc la suivante:

Ninja = personne furtive qui peut se faufiler dans des endroits où elle ne devrait pas être

Personne furtive qui peut se faufiler dans des endroits où elle ne devrait pas être = pirates

Hacker = Programmeur

Donc, Ninja = Programmeur

Rachel
la source
Un autre théorème prouvé par la propriété commutative des comparaisons douteuses!
Qualidafial
1
@qualidafial, je suis presque sûr que vous voulez dire transitif.
dan_waterworth
2

Je vais aller à l'encontre du sentiment populaire ici. Je pense qu'il y a beaucoup de romantisme en cours et d'étirement pour faire le lien entre ninjas et ingénieurs. Je voudrais garder les choses simples car les ninjas entrent, font le travail et sortent généralement sans être détectés . Le seul saut que je ferais est que dans la sous-culture, vous pouvez entendre des blagues sur Chuck Norris par rapport aux ninjas et, évidemment, chaque programmeur veut être Chuck Norris ou Jack Bauer, mais il n’ya qu’un seul Chuck Norris et Jack Bauer ( anonyme) ninja.

Deuxièmement, ninja est un terme utilisé fréquemment dans WoW et peut avoir une connotation négative. De plus, le ninja traditionnel n’est pas honorable par rapport au samouraï. Donc, avec toutes les qualités admirables d'un samouraï, on pourrait penser que nous verrions plus souvent un "programmeur de samouraïs" s'il était le cas, ce sont les qualités perçues de l'extérieur qui sont louées. C'est pourquoi je souscris à l'idée que l'utilisation du ninja est plus destinée à souligner les compétences mystérieuses telles que le manteau et le poignard, les compétences sournoises. Pour le faire mieux, ce sont les compétences de base dans le commerce d'espionnage; coquins, intelligence et agents secrets inclus.

les patrons
la source