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.
quelle
Antworten:
Meiner Meinung nach gibt es ein paar Parallelen zwischen einem Ninja und einem guten Programmierer:
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.
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.
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.
quelle
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 ...
quelle
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.
quelle
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.
quelle
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
quelle
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.
quelle