Dlaczego dobrych programistów określa się mianem Ninja? [Zamknięte]

36

Jak zdefiniowano programistę Ninja? Jeśli jest to tylko doświadczony programista, czy naprawdę nie ma lepszego sposobu, aby to opisać? Ninja brzmi jak dziecinna sztuczka marketingowa mająca na celu przyciągnięcie deweloperów z złudzeniem o własnej wielkości. A może coś mi brakuje? W szczególności chcę wiedzieć, jakie cechy Ninja są pożądane u programistów, dzięki czemu porównanie jest ważne (oprócz współczynnika chłodu)?

Znalazłem ten artykuł, który zawiera kilka dobrych porównań między cechami Ninja a rozwojem Agile. Chciałbym jednak usłyszeć od ludzi, którzy używali słowa Ninja do celów rekrutacyjnych i jaka była ich motywacja.

Aktualizacja: Po obu stronach argumentu podniesiono kilka dobrych punktów. Próbowałem je streścić w moim blogu . Wybrałem odpowiedź JB jako zaakceptowaną, ponieważ podsumowuje ona wszystkie uzasadnione powody dokonania porównania.

Alinium
źródło
3
Ninja są ekspertami w sztukach walki. Dobrzy programiści są ekspertami w programowaniu.
5
Nigdy nie został nazwany Ninja. Guru lub Mistrz z drugiej strony ...
nikt,
40
Przypomina mi to „metodę Ninja” podczas pracy ze wskaźnikami: rzucaj gwiazdkami (*), aż zadziała. ^^
gablin
10
Prawidłowy termin to „zabójca kodujący ninja małpiego guru przystojnego bohatera sexmachine”.
Maks.
2
@maxpm, mam nadzieję, że etykieta „sexmachine” nie jest istotna podczas programowania?

Odpowiedzi:

33

Moim zdaniem istnieje kilka podobieństw między Ninja a dobrym programistą:

  1. Ukryta broń / niekonwencjonalny styl - jeśli kiedykolwiek widziałeś kreskówkę GI Joe z lat 80., pamiętasz postać Storm Shadow . Miał miecz i kilka gwiazd do rzucania, ale dzięki odpowiednim sekwencjom ciosów i kopnięć udało się rozebrać czołg w odcinku. W podobny sposób programiści mogą zostać wezwani do wykonania pracy, która wymaga od nich wyciągnięcia broni, o której być może nie sądziłeś. Jest to krewny punkt „Hakera”, który został wspomniany w kilku miejscach.

  2. Honor / szacunek - Przyznaję, że widziałem to bardziej w zachodnich portretach ninja, takich jak GI Joe lub Wojownicze Żółwie Ninja, ale wydawało się, że istnieje taka postawa uhonorowania wroga, być może zaczerpnięta z „Art of War”. Dobrzy programiści mogą szanować, że mogą być gdzieś lepsi. W tym sensie jest także pokora.

  3. Domniemane mistrzostwo - może być takie założenie, że wszyscy ninja są mistrzami i dlatego naprawdę dopracowali swoje umiejętności, aby umieć dobrze walczyć. Dobrzy programiści mogą podobnie opanować niektóre umiejętności, które są bardzo korzystne w wykonaniu pracy.

Jest to kilka poza powierzchownymi implikacjami „Och, to brzmi fajnie”, ponieważ musiało być trochę mięsa, żeby się przykleiło. Chociaż zgadzam się, że Samuraj może być bardziej poprawnym tytułem, gdy coś się wydarzyło przez jakiś czas w niewłaściwej formie, trzeba pogodzić się z tym, ponieważ TMNT nie są tak naprawdę czymś, co większość uważałaby za tajnych najemników, którymi są Ninja technicznie są. Jednak dla tych z nas, którzy dorastali z kreskówkowymi przedstawieniami Ninja w tym pozytywnym świetle, to może się nam przylgnąć, dlatego też tutaj jest element nostalgii.

JB King
źródło
19
Co powiesz na ciemne ubrania i mało gadające? :-P
JBRWilkinson
Ssshhh ... ukrycie jest wśród tych ukrytych broni. :)
JB King
4
„Wśród ich uzbrojenia są podstęp, ukryta broń i prawie fanatyczne oddanie dobrym stylom kodowania… również mniej gadające… bah! Przyjdę ponownie…”
Timothy Baldridge
Myślisz o samurajach. Ninja to po prostu cholerni zabójcy. Brak honoru u ninja.
BЈовић
Widziałeś kiedyś „Wojownicze Żółwie Ninja” w postaci kreskówkowej lub filmowej?
JB King
41

To tak, jak mówisz - próba sugerowania chłodu i elitarności (często wśród tych, którzy ich nie mają) poprzez dokonywanie bardzo delikatnych porównań.

Osobiście nienawidzę tego wyrażenia (wraz z „Rockstar Programmer”, co sprawia, że ​​chcemy pobić ludzi na śmierć - możesz być programistą rockstar, gdy masz nałóg uzależnienia od alkoholu i zgubiłeś co najmniej jeden samochód i jeden pokój hotelowy ).

Jesteś programistą, jeśli masz problemy z byciem programistą, ponieważ chcesz zrobić coś, co uważasz za fajniejsze, a następnie poradzić sobie z nimi (lub przestać robić coś, co uważasz za fajniejsze). Jeśli nie podoba ci się sposób, w jaki inni postrzegają programistów, zrozum, że to nie ich problem.

Na pewno nie zmienisz zdania za pomocą fraz, które sprawiłyby, że przeciętny 12-latek pomyślałby, że starasz się być imponujący.

/tyrada

Edycja: Żeby było jasne, rant nie jest skierowany do pytającego ...

Jon Hopkins
źródło
6
@ Larry - większość porównań może być równie dobrze zastosowana do naprawdę dobrych profesjonalistów z innych dziedzin, ale nie ma prawników ninja, lekarzy ninja ani pracowników księgowości ninja (z wyjątkiem może Herberta Kornfelda). Czyż nie jest interesujące pytanie, dlaczego programiści czują taką potrzebę?
Jon Hopkins,
9
@Jom Hopkins, NHS w Wielkiej Brytanii jest pełen lekarzy ninja ... na pewno nigdy ich nie widzisz.
Kevin D
6
@Jon Hopkins: Kultura programowania zachęca do budowania więzi i humoru na poziomie subkultury. Wielu programistów uważa ninja za fajne i chce być fajne, dlatego bycie nazywanym ninja jest całkiem niesamowite. Oczywiście nie dotyczy to wszystkich, a są programiści, którzy tego nie znoszą. To zależy od osoby. Ale ogólnie rzecz biorąc, programowanie ewoluowało i stało się głównym nurtem zawodu, takim jak lekarz, prawnik itp., I przyniosło ze sobą odniesienia do subkultury (gwiazdy rocka, ninja itp.)
Adam Lear
3
@Adam Lear, jeśli ma to być istotna część „kultury programowania”, nie chcę mieć nic wspólnego z taką „kulturą”. Najgłębsze relacje, jakie kiedykolwiek spotkałem z innymi programistami, były oparte na umiejętnościach i zasługach.
jonathanconway
3
@Adam - rozumiem tło, po prostu uważam, że cała ta sprawa jest nieco nastoletnia i myślę, że oczernia programistów jako poważnych profesjonalistów, kiedy jesteśmy w wieku 20 i 30 lat (i starszych). Nie twierdzę, że programiści powinni porzucić kulturę programistów, ale istnieje różnica między, powiedzmy, czytaniem XKCD i Neala Stephensona lub spędzaniem weekendów na nauce kryptografii (która może być naukowa, ale także inteligentna), a to, co jest trochę dziecinne i w rzeczywistości jest tak daleko, jak to tylko możliwe.
Jon Hopkins,
15

Jedną z koncepcji wspólnych dla ekspertów sztuk walki i dobrych programistów jest oszczędność wysiłku. Eksperci sztuk walki unikają zmarnowanego ruchu; dobrzy programiści unikają niepotrzebnego kodu.

Pojęcie niewidzialności przekłada się na przejrzystość w piśmie bibliotecznym. Dobra biblioteka ma intuicyjny interfejs, więc możesz ją podłączyć i nie martwić się o to.

EDYCJA: Zapomniałem najważniejszej rzeczy: zarówno ninja, jak i dobrzy programiści mają wysokie umiejętności dzięki szkoleniom i praktyce.

Larry Coleman
źródło
1
1. To zależy od sztuki walki. Czy na pewno unikają marnowania ruchu w kung fu lub capoeira? 2. Możesz być ninja i / lub programistą i być w tym bardzo zły. Mimo to doceniam twoją odpowiedź;) +1
@Pierre: dzięki. Moja odpowiedź mogłaby przydać się do dostrajania, ale chciałem tam coś pokazać, aby pokazać, że pytanie jest prawidłowe. Jak widać, do zamknięcia jest już jeden głos.
Larry Coleman,
15

W moim rozumieniu nie każdy dobry lub doskonały programista jest Ninja. Ninja są rasą specjalną. Programista Ninja to ten, który pojawia się w nietypowych momentach (np. 3 rano), robi niebezpieczne rzeczy, na które niechętni są zwykli ludzie (np. Używa edytora szesnastkowego do naprawy bardzo krytycznego błędu w dziesięcioletnim, rzekomo niemożliwym do utrzymania programie bezpośrednio na serwerze produkcyjnym) i znika niewidoczny.

Oczywiście, chociaż Ninja potrzebuje doskonałych umiejętności technicznych, aby regularnie wykonywać takie akrobacje i przetrwać, wielu znakomitych programistów wcale nie pasuje do tego opisu. Przy odpowiednich metodach Ninja nie jest potrzebna. Z drugiej strony, jeśli zdarzy się niemożliwe, dobrze jest mieć taki.

użytkownik 281377
źródło
10

Oprócz czynników „Chłodności” i „Elity” ninja są często niewidzialni i znani z tego, że robią rzeczy, by wymknąć się z przeszłości, aby dostać się do miejsc, w których nie powinni. Ponieważ hakerzy dzielą tę cechę, myślę, że ktoś pomyślał, że „Ninja” będzie dla nich dobrym tytułem. Dla osoby bez IT hakerzy i programiści są tym samym i uważają, że słowo „ninja” jest bardzo fajne, więc jakby utknęło

Więc logika jest następująca:

Ninja = ukrywająca się osoba, która może wkraść się w przeszłość do miejsc, w których nie powinna być

Podstępna osoba, która może wkraść się w przeszłość do miejsc, w których nie powinna być = haker

Hacker = programista

Dlatego Ninja = programista

Rachel
źródło
Kolejne twierdzenie udowodnione przez przemienną właściwość wątpliwych porównań!
Qualidafial
1
@qualidafial, jestem pewien, że masz na myśli przechodnie.
dan_waterworth
2

Mam zamiar przeciwstawić się popularnemu sentymentowi tutaj. Myślę, że dzieje się dużo romantyzowania i nadmiernego rozciągania, aby stworzyć połączenie między ninja i inżynierami. Uprościłbym to, gdy ninja wchodzą, wykonują robotę i wychodzą zwykle bez wykrycia . Jedyny skok, jaki dokonałbym, to to, że w subkulturze można usłyszeć żarty o Chucku Norridzie kontra ninja i oczywiście każdy programista chce być Chuckiem Norrisem lub Jackiem Bauerem, ale jest tylko jeden Chuck Norris i Jack Bauer, więc każdy z nas może być ( anonimowy) ninja.

Po drugie, ninja jest terminem często używanym w WoW i może mieć negatywne konotacje. Ponadto tradycyjny ninja nie jest honorowy w porównaniu z samurajami. Więc przy wszystkich godnych podziwu cechach samurajów, można by pomyśleć, że częściej widywalibyśmy „programistę samurajów”, gdyby tak było, że chwalone są cechy postrzegane na zewnątrz. Właśnie dlatego popieram ideę, że użycie ninja służy raczej podkreśleniu tajemniczych, pelerynek i sztyletów, podstępnych umiejętności. Aby uzyskać bardziej pozytywne wyniki, są to podstawowe umiejętności w handlu szpiegowskim; w tym łotrzyków, wywiadu i tajnych agentów.

wzory
źródło