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.
la source
Réponses:
À mon sens, il existe quelques parallèles entre un Ninja et un bon programmeur:
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.
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.
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.
la source
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 ...
la source
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.
la source
À 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.
la source
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
la source
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.
la source