it-swarm.it

Perché i bravi programmatori vengono definiti ninja?

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 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 in il mio post sul blog . Ho scelto la risposta di JB come quella accettata perché riassume tutti i motivi validi per effettuare il confronto.

36
Alinium

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

  1. Armi nascoste/stile non ortodosso - Se hai mai visto il G.I. Cartone animato 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ù nelle rappresentazioni occidentali di un ninja come G.I. 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 davvero affinato le loro capacità di saper combattere bene. I bravi programmatori potrebbero aver imparato allo stesso modo alcune abilità che sono abbastanza utili per portare a termine il lavoro.

Quelli sono i pochi oltre le superficiali implicazioni "Oh, che sembra bello", 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 ciò 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 anche qui.

33
JB King

È 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 "Programmatore Rockstar" che ci fa desiderare di battere a morte le persone - 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.

Certamente 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 ...

41
Jon Hopkins

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.

15
Larry Coleman

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 estremamente 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 si adattano affatto a quella descrizione. Con metodi adeguati in atto, non è necessario il Ninja. D'altra parte, se l'impossibile accade, è una buona cosa averne uno.

15
user281377

Oltre ai fattori "Coolness" e "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 oltre la sicurezza in luoghi che non dovrebbero essere = Hacker

Hacker = programmatore

Pertanto, Ninja = Programmer

10
Rachel

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 come 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, penseresti 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 di ninja sia 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.

2
patterns