Perché i bravi programmatori vengono definiti ninja? [chiuso]


36

Come viene definito un programmatore Ninja? Se è solo uno sviluppatore esperto, allora non c'è davvero un modo migliore per descriverlo? Ninja sembra uno stratagemma di marketing infantile progettato per attirare gli sviluppatori con delusioni di auto-grandezza. Oppure mi sfugge qualcosa? In particolare, voglio sapere quali qualità di un Ninja sono desiderate nei programmatori che rendono valido il confronto (oltre al fattore di freddezza)?

Ho trovato questo articolo che fa dei buoni confronti tra le caratteristiche del Ninja e lo sviluppo Agile. Tuttavia, mi piacerebbe avere notizie da persone che hanno usato la parola Ninja per scopi di assunzione e quale fosse la loro motivazione.

Aggiornamento: sono stati sollevati diversi punti positivi su entrambi i lati dell'argomento. Ho provato a riassumere questi nel mio post sul blog . Ho scelto la risposta di JB come accettata perché riassume tutti i motivi validi per effettuare il confronto.


3
I ninja sono esperti di arti marziali. I bravi programmatori sono esperti in programmazione.

5
Mai stato chiamato Ninja. Guru o Maestro d'altra parte ...
nessuno

40
Questo mi ricorda il "metodo Ninja" quando si lavora con i puntatori: basta lanciare le stelle (*) finché non funziona. ^^
gablin

10
Il termine corretto è "assassino che codifica scimmia ninja guru bello eroe sexmachine".
Maxpm

2
@maxpm, si spera che l'etichetta "sexmachine" non sia rilevante durante la programmazione?

Risposte:


33

Secondo me ci sono alcuni parallelismi tra un Ninja e un buon programmatore:

  1. Armi nascoste / stile non ortodosso - Se hai mai visto il cartone animato GI Joe degli anni '80, potresti ricordare il personaggio di Storm Shadow . Aveva una spada e alcune stelle da lancio ma con le giuste sequenze di pugni e calci riuscì a smontare un carro armato in un episodio. Allo stesso modo, i programmatori possono essere chiamati a fare un lavoro che richiede loro di estrarre armi che potresti non aver pensato di avere. Questo è un parente il punto "Hacker" che è stato menzionato in alcuni punti.

  2. Onore / rispetto - Concesso di averlo visto di più nei ritratti occidentali di un ninja come GI Joe o Teenage Mutant Ninja Turtles, ma sembrava esserci questo atteggiamento di onorare il nemico, forse tratto da "Art of War". I bravi programmatori possono rispettare che ce ne possono essere di migliori là fuori da qualche parte. Anche l'umiltà è in questo senso.

  3. Padronanza implicita - Potrebbe esserci questo presupposto che tutti i ninja sono padroni e quindi hanno affinato le loro abilità per sapere come combattere bene. I bravi programmatori potrebbero aver imparato allo stesso modo alcune abilità che sono molto utili per portare a termine il lavoro.

Quelle sono le poche oltre le superficiali implicazioni "Oh, che suona bene", in quanto doveva esserci un po 'di carne perché si attaccasse. Anche se concordo sul fatto che Samurai potrebbe essere il titolo più corretto, una volta che le cose sono state fuori per un po 'in una forma errata, bisogna riconciliare le cose qui poiché il TMNT non è davvero quello che la maggior parte considererebbe come mercenari segreti che è ciò che Ninja tecnicamente lo sono. Tuttavia, per quelli di noi che sono cresciuti con le raffigurazioni dei cartoni animati di Ninja in questa luce positiva, questo è ciò che può rimanere per noi e quindi c'è anche un elemento di nostalgia qui.


19
Che dire di vestiti scuri e di non parlare molto? :-P
JBR Wilkinson,

Ssshhh ... la furtività è tra quelle armi nascoste. :)
JB King,

4
"Tra le loro armi ci sono furtività, armi nascoste e una devozione quasi fanatica a buoni stili di codifica .... anche meno chiacchiere ... bah! Torno di nuovo ..."
Timothy Baldridge,

Stai pensando al samurai. I ninja sono solo dei sanguinosi assassini. Nessun onore con i ninja.
BЈовић

Hai mai visto "Teenage Mutant Ninja Turtles" in forma di cartone animato o film?
JB King,

41

È praticamente come dici tu: un tentativo di implicare freddezza ed elitezza (spesso tra quelli che non lo sono) facendo confronti molto tenui.

Personalmente odio la frase (insieme a "Rockstar Programmer" che ci fa desiderare di battere le persone a morte - puoi essere un programmatore rockstar quando hai l'abitudine alla droga un problema di alcol e hai distrutto almeno un'auto e una camera d'albergo ).

Sei un programmatore, se hai problemi con l'essere un programmatore perché vuoi fare qualcosa che pensi sia più interessante, allora gestiscilo (o smetti di fare qualcosa che ritieni sia più interessante). Se non ti piace il modo in cui gli altri vedono i programmatori, allora capisci che il loro problema non è tuo.

Sicuramente non cambierai idea con frasi che farebbero pensare al dodicenne medio che stavi cercando un po 'di essere impressionante.

/ rant

Modifica: per essere chiari, il rant non è rivolto all'interrogatore ...


6
@Larry - La maggior parte dei confronti potrebbe essere ugualmente applicata a bravissimi professionisti in altri campi, ma non si ottengono avvocati ninja, dottori ninja o personale addetto alla contabilità ninja (tranne forse Herbert Kornfeld). La domanda interessante non è perché i programmatori sentano il bisogno di farlo?
Jon Hopkins,

9
@Jom Hopkins, il servizio sanitario nazionale nel Regno Unito è pieno di dottori ninja ... sicuramente non li vedrai mai.
Kevin D,

6
@Jon Hopkins: la cultura della programmazione incoraggia il legame e l'umorismo a livello di sottocultura. Molti programmatori vedono i ninja come fighi e vogliono essere fighi e quindi essere chiamato ninja è davvero fantastico. Naturalmente, questo non si applica a tutti i livelli e ci sono programmatori che odiano quel genere di cose. Dipende dalla persona. Ma in generale, la programmazione si è evoluta per diventare una professione tradizionale come medico, avvocato, ecc. E ha portato con sé riferimenti di sottocultura (rockstar, ninja, ecc.)
Adam Lear

3
@Adam Lear, se questa dovrebbe essere una parte essenziale della "cultura della programmazione", non voglio avere niente a che fare con tale "cultura". Il legame più profondo che abbia mai sperimentato con altri sviluppatori si basava su abilità e merito.
jonathanconway,

3
@Adam - Capisco il background, trovo il tutto un po 'adolescente e penso che denigri i programmatori come professionisti seri una volta che abbiamo compiuto i nostri 20 e 30 (e più vecchi). Non sto dicendo che i programmatori dovrebbero abbandonare la cultura del programmatore, ma c'è una differenza tra, diciamo, leggere XKCD e Neal Stephenson o passare i nostri fine settimana a imparare la crittografia (che può essere geniale ma anche intelligente), e questo che è solo un po 'infantile e in realtà il più lontano che puoi ottenere.
Jon Hopkins,

15

Un concetto che hanno in comune esperti di arti marziali e buoni programmatori è quell'economia di sforzo. Gli esperti di arti marziali evitano il movimento sprecato; i bravi programmatori evitano il codice non necessario.

Il concetto di invisibilità si traduce in trasparenza nella scrittura in biblioteca. Una buona libreria ha un'interfaccia intuitiva e puoi collegarla e non preoccuparti.

EDIT: ho dimenticato la cosa più importante: sia i ninja che i bravi programmatori sono altamente qualificati a causa dell'allenamento e della pratica.


1
1. Dipende dall'arte marziale. Sei sicuro che evitino lo spreco di movimento nel kung fu o nella capoeira? 2. Puoi essere un ninja e / o un programmatore ed essere molto cattivo. Detto questo, apprezzo comunque la tua risposta;) +1

@Pierre: grazie. La mia risposta potrebbe usare un po 'di messa a punto, ma volevo mettere qualcosa là fuori per aiutare a dimostrare che la domanda era valida. Come puoi vedere, c'è già un voto da chiudere.
Larry Coleman,

15

A mio avviso, non tutti i programmatori buoni o eccellenti sono Ninja. I ninja sono una razza speciale. Un programmatore Ninja è colui che appare in momenti insoliti (ad esempio le 3 del mattino), fa alcune cose pericolose a cui le persone normali sono riluttanti (come usare un editor esadecimale per correggere un bug altamente critico in un programma vecchio di dieci anni, presumibilmente non mantenibile sul server di produzione) e svanisce invisibile.

Ovviamente, sebbene un Ninja abbia bisogno di eccellenti capacità tecniche per eseguire queste acrobazie regolarmente e sopravvivere, molti programmatori eccellenti non rientrano affatto in quella descrizione. Con metodi adeguati in atto, non è necessario il Ninja. D'altra parte, se l'impossibile accade, è una buona cosa averne uno.


10

Oltre ai fattori "Coolness" ed "Elite", i ninja sono spesso furtivi e sono noti per fare cose come intrufolarsi nella sicurezza per entrare in posti che non dovrebbero. Poiché questo tratto è condiviso dagli hacker, penso che qualcuno abbia pensato che "Ninja" sarebbe stato un buon titolo per loro. Per una persona non IT, hacker e programmatori sono la stessa cosa e pensano che la parola "ninja" sia molto bella, quindi è un po 'bloccata

Quindi la logica è:

Ninja = Persona furtiva che può infiltrare la sicurezza nei luoghi che non dovrebbero essere

Persona furtiva che può intrufolarsi nella sicurezza nei luoghi in cui non dovrebbero essere = Hacker

Hacker = programmatore

Pertanto, Ninja = Programmer


Un altro teorema dimostrato attraverso la proprietà commutativa di confronti dubbi!
Qualidafial

1
@qualidafial, sono abbastanza sicuro che intendi transitivo.
dan_waterworth,

2

Ho intenzione di andare contro il sentimento popolare qui. Penso che ci sia molto romanticismo in atto e oltre lo stretching per stabilire la connessione tra ninja e ingegneri. Lo terrei semplice quando i ninja entrano, fanno il lavoro e escono di solito senza essere rilevati . L'unico salto che farei è che nella sottocultura puoi sentire barzellette su Chuck Norris contro ninja e ovviamente ogni programmatore vuole essere Chuck Norris o Jack Bauer, ma c'è solo un Chuck Norris e Jack Bauer in modo che ognuno di noi possa essere un ( anonimo) ninja.

In secondo luogo, ninja è un termine usato frequentemente in WoW e può avere connotazioni negative. Inoltre, il ninja tradizionale non è onorevole rispetto al samurai. Quindi, con tutte le qualità ammirevoli di un samurai, pensereste che vedremmo il "programmatore di samurai" più spesso se fosse il caso che siano le qualità percepite dall'esterno ad essere elogiate. Questo è il motivo per cui sottoscrivo l'idea che l'uso del ninja è più per enfatizzare le abilità misteriose, mantello e pugnale, subdole. Per farla girare più positivamente, queste sono le abilità di magazzino nel commercio di spie; ladri, intelligenza e agenti segreti inclusi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.