it-swarm-eu.dev

Warum werden gute Programmierer als Ninjas bezeichnet?

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 Marketingtrick, der Entwickler mit Selbstwahn anzieht. Oder fehlt mir etwas? Insbesondere möchte ich wissen, welche Eigenschaften eines Ninja bei Programmierern erwü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 welche Motivation dahinter steckt.

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

36
Alinium

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

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

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

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

Dies sind die wenigen jenseits der oberflächlichen Implikationen "Oh, das klingt cool", da es etwas Fleisch geben musste, damit es kleben blieb. Obwohl ich zustimmen würde, dass Samurai der korrektere Titel sein könnte, muss man die Dinge hier in Einklang bringen, da die TMNT nicht wirklich das sind, was die meisten als verdeckte Söldner betrachten würden, was Ninjas technisch sind. Für diejenigen von uns, die mit Comic-Darstellungen von Ninjas in diesem positiven Licht aufgewachsen sind, mag dies jedoch für uns bleiben, und daher gibt es auch hier ein Element der Nostalgie.

33
JB King

Es ist so ziemlich so, wie Sie sagen - ein Versuch, Coolness und Elitenität (häufig unter denen, die keine sind) zu implizieren, indem Sie äußerst schwache Vergleiche anstellen.

Persönlich hasse ich den Satz (zusammen mit "Rockstar Programmer", der uns dazu bringt, Menschen zu Tode zu schlagen - Sie können ein Rockstar-Programmierer sein, wenn Sie eine Drogengewohnheit und ein Alkoholproblem haben und mindestens ein Auto und ein Hotelzimmer zerstört haben ).

Sie sind Programmierer, wenn Sie Probleme damit haben, Programmierer zu sein, weil Sie etwas tun möchten, das Sie für cooler halten, dann beschäftigen Sie sich mit ihnen (oder hören Sie auf, etwas zu tun, das Sie für cooler halten). Wenn Ihnen die Art und Weise, wie andere Programmierer anzeigen, nicht gefällt, 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, Sie hätten sich ein bisschen Mühe gegeben, beeindruckend zu sein.

/schimpfen

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

41
Jon Hopkins

Ein Konzept, das Kampfkunst-Experten und gute Programmierer gemeinsam haben, ist die Wirtschaftlichkeit der Anstrengungen. Kampfsportexperten vermeiden Bewegungsverschwendung. Gute Programmierer vermeiden unnötigen Code.

Das Konzept der Unsichtbarkeit führt zu Transparenz beim Schreiben von Bibliotheken. Eine gute Bibliothek verfügt über eine intuitive Benutzeroberfläche, die Sie anschließen können, ohne sich darum kümmern zu müssen.

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

15
Larry Coleman

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

Obwohl ein Ninja hervorragende technische Fähigkeiten benötigt, um solche Stunts regelmäßig auszuführen und zu überleben, passen viele hervorragende Programmierer offensichtlich überhaupt nicht in diese Beschreibung. Mit den richtigen Methoden ist der Ninja nicht erforderlich. Auf der anderen Seite ist es gut, wenn das Unmögliche möglich ist.

15
user281377

Zusätzlich zu den Faktoren "Coolness" und "Elite" sind Ninjas oft verstohlen und tun sich bekanntermaßen an Sicherheitsmaßnahmen vorbei, um an Orte zu gelangen, die sie nicht sollten. Da diese Eigenschaft von Hackern geteilt wird, denke ich, dass jemand dachte, dass "Ninja" ein guter Titel für sie wäre. Für eine Nicht-IT-Person sind Hacker und Programmierer dasselbe, und sie finden das Wort "Ninja" sehr cool, also steckt es irgendwie fest

Die Logik lautet also:

Ninja = Verstohlene Person, die sich an der Sicherheit vorbei an Orte schleichen kann, an denen sie nicht sein sollte

Verstohlene Person, die sich an der Sicherheit vorbei an Orte schleichen kann, an denen sie nicht sein sollten = Hacker

Hacker = Programmierer

Daher ist Ninja = Programmierer

10
Rachel

Ich werde hier der Stimmung der Bevölkerung widersprechen. Ich denke, es findet viel Romantisierung und Überdehnung statt, um die Verbindung zwischen Ninjas und Ingenieuren herzustellen. Ich würde es einfach halten wie Ninjas steigen ein, erledigen den Job und steigen normalerweise aus, 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 natürlich jeder Programmierer Chuck Norris oder Jack Bauer sein möchte, aber es gibt nur einen Chuck Norris und Jack Bauer, also können wir alle ein ( anonym) ninja.

Zweitens ist ninja ein Begriff, der in WoW häufig verwendet wird und negative Konnotationen haben kann. Darüber hinaus ist der traditionelle Ninja im Vergleich zu Samurai nicht ehrenwert. Bei all den bewundernswerten Eigenschaften eines Samurai würde man meinen, wir würden "Samurai-Programmierer" öfter sehen, wenn die nach außen wahrgenommenen Eigenschaften gelobt würden. Aus diesem Grund stimme ich der Idee zu, dass die Verwendung von Ninja eher dazu dient, die mysteriösen, hinterhältigen Fähigkeiten von Umhang und Dolch hervorzuheben. Um es positiver zu machen, sind dies die Aktienfähigkeiten im Spionagehandel; Schurken, Geheimdienste und Geheimagenten inklusive.

2
patterns