Warum werden gute Programmierer als Ninjas bezeichnet? [geschlossen]


36

Wie ist ein Ninja-Programmierer definiert? Wenn es nur ein erfahrener Entwickler ist, gibt es dann wirklich keinen besseren Weg, das zu beschreiben? Ninja klingt wie ein kindischer Marketing-Trick, der Entwickler mit Selbstwertgefühl anzieht. Oder vermisse ich etwas? Insbesondere möchte ich wissen, welche Eigenschaften eines Ninja in Programmierern gewünscht sind, die den Vergleich gültig machen (neben dem Coolness-Faktor)?

Ich habe diesen Artikel gefunden, der einige gute Vergleiche zwischen Ninja-Eigenschaften und agiler Entwicklung macht. Ich würde jedoch gerne von Leuten hören, die das Wort Ninja für Einstellungszwecke verwendet haben und wissen, was ihre Motivation dahinter steckt.

Update: Auf beiden Seiten des Arguments wurden mehrere gute Punkte angesprochen. Ich habe versucht, diese in meinem Blogbeitrag zusammenzufassen . Ich habe die Antwort von JB als die akzeptierte Antwort ausgewählt, da sie alle gültigen Gründe für den Vergleich zusammenfasst.


3
Ninja sind Experten für Kampfkunst. Gute Programmierer sind Experten in der Programmierung.

5
Nie ein Ninja genannt worden. Guru oder Meister auf der anderen Seite ...
niemand

40
Das erinnert mich an die 'Ninja-Methode' beim Arbeiten mit Zeigern: Wirf einfach Sterne (*) herum, bis es funktioniert. ^^
gablin

10
Der richtige Begriff ist "Killer Coding Ninja Monkey Guru gut aussehender Held Sexmachine".
Maxpm

2
@maxpm, hoffentlich ist das Label "sexmachine" beim Programmieren nicht relevant?

Antworten:


33

Meiner Meinung nach gibt es ein paar Parallelen zwischen einem Ninja und einem guten Programmierer:

  1. Versteckte Waffen / unorthodoxer Stil - Wenn Sie jemals den GI Joe-Cartoon aus den 1980er Jahren gesehen haben, erinnern Sie sich vielleicht an den Charakter von Storm Shadow . Er hatte ein Schwert und einige Wurfsterne, aber mit genau der richtigen Abfolge von Schlägen und Tritten gelang es ihm, einen Panzer in einer Episode auseinanderzunehmen. In ähnlicher Weise können Programmierer aufgefordert werden, Arbeiten auszuführen, bei denen sie Waffen herausziehen müssen, von denen Sie vielleicht nicht gedacht haben, dass sie vorhanden sind. Dies ist eine Art "Hacker" -Punkt, der an einigen Stellen erwähnt wurde.

  2. Ehre / Respekt - Zugegeben, ich habe dies eher in den westlichen Darstellungen eines Ninja wie GI Joe oder Teenage Mutant Ninja Turtles gesehen, aber es schien diese Haltung zu geben, den Feind zu ehren, die möglicherweise aus "Art of War" stammt. Gute Programmierer können respektieren, dass es irgendwo bessere gibt. Demut ist auch in gewissem Sinne.

  3. Implizite Meisterschaft - Es kann die Annahme bestehen, dass alle Ninjas Meister sind und daher ihre Fähigkeiten, gut zu kämpfen, wirklich verbessert haben. Gute Programmierer beherrschen möglicherweise in ähnlicher Weise einige Fähigkeiten, die für die Erledigung der Aufgabe von großem Vorteil sind.

Das sind die wenigen, die über das oberflächliche "Oh, das hört sich cool an" hinausgehen, was bedeutet, dass es etwas Fleisch geben musste, damit es kleben blieb. Während ich zustimmen würde, dass Samurai der korrektere Titel sein könnte, muss man hier nach einer Weile die Dinge in einer falschen Form in Einklang bringen, da die TMNT nicht wirklich das sind, was die meisten als verdeckte Söldner betrachten würden, das ist, was Ninjas technisch sind. Für diejenigen von uns, die mit Cartoon-Darstellungen von Ninjas in diesem positiven Licht aufgewachsen sind, mag dies jedoch für uns von Belang sein, und daher gibt es auch hier ein Element der Nostalgie.


19
Was ist mit dunkler Kleidung und nicht viel reden? :-P
JBRWilkinson

Ssshhh ... Stealth gehört zu diesen versteckten Waffen. :)
JB King

4
"Zu ihren Waffen gehören Stealth, versteckte Waffen und eine fast fanatische Hingabe an gute Codierungsstile ... auch weniger geredet ... bah! Ich komme wieder ..."
Timothy Baldridge

Sie denken an Samurai. Ninjas sind nur blutige Mörder. Keine Ehre mit Ninjas.
BЈовић

Haben Sie jemals "Teenage Mutant Ninja Turtles" in Cartoon- oder Filmform gesehen?
JB King

41

Es ist so ziemlich das, was Sie sagen - ein Versuch, Coolness und Elitenness (häufig unter denen, die keine sind) durch hochgradig schwache Vergleiche zu implizieren.

Persönlich hasse ich diesen Satz (zusammen mit "Rockstar Programmer", der uns dazu bringt, Menschen zu Tode zu schlagen). Sie können ein Rockstar Programmer sein, wenn Sie Drogenprobleme haben und mindestens ein Auto und ein Hotelzimmer in den Müll geworfen haben ).

Sie sind Programmierer. Wenn Sie Probleme damit haben, Programmierer zu sein, weil Sie etwas tun möchten, das Ihrer Meinung nach cooler ist, dann setzen Sie sich mit ihnen auseinander (oder hören Sie auf, etwas zu tun, das Ihrer Meinung nach cooler ist). Wenn Ihnen die Art und Weise, wie andere Programmierer sehen, nicht gefällt, dann verstehen Sie, dass dies nicht Ihr Problem ist.

Sie werden Ihre Meinung sicherlich nicht mit Redewendungen ändern, die den durchschnittlichen 12-Jährigen glauben lassen, dass Sie sich ein bisschen Mühe geben, beeindruckend zu sein.

/schimpfen

Edit: Um klar zu sein, der Schimpanse richtet sich nicht an den Fragesteller ...


6
@ Larry - Die meisten Vergleiche könnten auch auf wirklich gute Fachleute in anderen Bereichen angewendet werden, aber es gibt keine Ninja-Anwälte, Ninja-Ärzte oder Ninja-Debitorenmitarbeiter (außer vielleicht Herbert Kornfeld). Ist die interessante Frage nicht, warum Programmierer dies für nötig halten?
Jon Hopkins

9
@Jom Hopkins, das NHS in Großbritannien ist voll von Ninja-Ärzten ... man sieht sie bestimmt nie.
Kevin D

6
@ Jon Hopkins: Programmierkultur fördert Bindung und Humor auf Subkulturebene. Viele Programmierer sehen Ninjas als cool an und möchten cool sein. Daher ist es ziemlich fantastisch, als Ninja bezeichnet zu werden. Dies gilt natürlich nicht auf der ganzen Linie, und es gibt Programmierer, die so etwas hassen. Es kommt auf die Person an. Aber im Allgemeinen entwickelte sich die Programmierung zu einem Mainstream-Beruf wie Arzt, Anwalt usw. und brachte Referenzen zur Subkultur (Rockstars, Ninjas usw.) mit sich
Adam Lear

3
@Adam Lear, wenn dies ein wesentlicher Bestandteil der "Programmierkultur" sein soll, möchte ich nichts mit einer solchen "Kultur" zu tun haben. Die tiefste Bindung, die ich jemals mit anderen Entwicklern erfahren habe, beruhte auf Können und Verdienst.
Jonathanconway

3
@Adam - Ich verstehe den Hintergrund, ich finde das Ganze nur ein bisschen jugendlich und ich denke, es verunglimpft Programmierer als ernsthafte Profis, sobald wir in den 20ern und 30ern (und älter) sind. Ich sage nicht, dass Programmierer die Programmiererkultur aufgeben sollten, aber es gibt einen Unterschied zwischen dem Lesen von XKCD und Neal Stephenson oder dem Erlernen von Kryptografie (was vielleicht geekig, aber auch schlau ist) an unseren Wochenenden, und das ist nur ein bisschen kindisch und in Wirklichkeit ungefähr so ​​weit weg von cool, wie es nur geht.
Jon Hopkins

15

Ein Konzept, das Kampfsport-Experten und gute Programmierer gemeinsam haben, ist die Wirtschaftlichkeit des Aufwands. Kampfsport-Experten vermeiden unnötige Bewegung. Gute Programmierer vermeiden unnötigen Code.

Das Konzept der Unsichtbarkeit führt zu Transparenz beim Schreiben von Bibliotheken. Eine gute Bibliothek hat eine intuitive Oberfläche, und Sie können sie anschließen, ohne sich darum zu kümmern.

EDIT: Ich habe das Wichtigste vergessen: Sowohl Ninjas als auch gute Programmierer sind aufgrund von Training und Übung hochqualifiziert.


1
1. Es kommt auf die Kampfkunst an. Sind Sie sicher, dass sie Bewegungsverluste beim Kung-Fu oder Capoeira vermeiden? 2. Sie können ein Ninja und / oder ein Programmierer sein und sehr schlecht darin sein.

@ Pierre: Danke. Meine Antwort könnte eine Feinabstimmung gebrauchen, aber ich wollte etwas veröffentlichen, um zu demonstrieren, dass die Frage gültig ist. Wie Sie sehen, ist bereits eine Stimme zu schließen.
Larry Coleman

15

Nach meinem Verständnis ist nicht jeder gute oder exzellente Programmierer ein Ninja. Ninjas sind eine besondere Rasse. Ein Ninja-Programmierer ist derjenige, der zu ungewöhnlichen Zeiten (z. B. um 3 Uhr morgens) auftaucht und gefährliche Dinge ausführt, die normale Leute nur ungern tun (wie die Verwendung eines Hex-Editors, um einen hochkritischen Fehler in einem jahrzehntealten, angeblich nicht zu wartenden Programm direkt zu beheben) auf dem Produktionsserver) und verschwindet unsichtbar.

Obwohl ein Ninja exzellente technische Fähigkeiten benötigt, um solche Stunts regelmäßig auszuführen und zu überleben, passen viele exzellente Programmierer überhaupt nicht in diese Beschreibung. Wenn die richtigen Methoden vorhanden sind, ist der Ninja nicht erforderlich. Wenn andererseits das Unmögliche passiert, ist es eine gute Sache, eine zu haben.


10

Zusätzlich zu den "Coolness" - und "Elite" -Faktoren sind Ninjas oft verstohlen und tun bekanntermaßen Dinge, um an Orten vorbeizukommen, die sie nicht sollten. Da dieses Merkmal von Hackern geteilt wird, denke ich, dass jemand dachte, dass "Ninja" ein guter Titel für sie wäre. Für einen Nicht-IT-Mitarbeiter sind Hacker und Programmierer dasselbe und sie finden das Wort "Ninja" sehr cool, so dass es irgendwie hängen bleibt

Die Logik lautet also:

Ninja = Stealthy Person, die hinter Sicherheit in Orte schleichen kann, die sie nicht sein sollten

Verstohlene Person, die an Sicherheitsmängeln vorbeischleichen kann, an Orten, an denen sie nicht sein sollten = Hacker

Hacker = Programmierer

Deshalb Ninja = Programmer


Ein weiterer Satz, der durch die kommutative Eigenschaft zweifelhafter Vergleiche bewiesen wird!
Qualidafial

1
@qualidafial, ich bin mir ziemlich sicher, dass du transitiv meinst.
Dan_waterworth

2

Ich werde hier gegen die allgemeine Meinung vorgehen. Ich denke, es findet viel Romantisierung und Überdehnung statt, um die Verbindung zwischen Ninjas und Ingenieuren herzustellen. Ich würde es einfach halten, wenn Ninjas einsteigen, die Arbeit erledigen und normalerweise aussteigen, ohne entdeckt zu werden . Der einzige Sprung, den ich machen würde, ist, dass man in der Subkultur Witze über Chuck Norris gegen Ninjas hören kann und offensichtlich jeder Programmierer Chuck Norris oder Jack Bauer sein möchte, aber es gibt nur einen Chuck Norris und Jack Bauer, so dass wir beide ein ( anonym) ninja.

Zweitens ist Ninja ein Begriff, der in WoW häufig verwendet wird und negative Konnotationen haben kann. Außerdem ist der traditionelle Ninja im Vergleich zu Samurai nicht ehrenwert. Bei all den bewundernswerten Eigenschaften eines Samurai würde man meinen, wir würden öfter einen "Samurai-Programmierer" sehen, wenn die äußerlich wahrgenommenen Eigenschaften gelobt würden. Aus diesem Grund unterstütze ich die Idee, dass der Gebrauch von Ninja eher dazu dient, die geheimnisvollen, hinterhältigen Fähigkeiten von Umhang und Dolch zu betonen. Um es positiver zu machen, das sind die Aktienfertigkeiten im Spionagehandel; Schurken, Geheimdienste und Geheimagenten inklusive.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.