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.
źródło
Odpowiedzi:
Moim zdaniem istnieje kilka podobieństw między Ninja a dobrym programistą:
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.
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.
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.
źródło
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 ...
źródło
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.
źródło
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.
źródło
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
źródło
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.
źródło