Perché i bravi programmatori si chiamano Ninjas? [chiuso]

36

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

Ho trovato questo articolo che rende alcuni buoni confronti tra caratteristiche Ninja e sviluppo Agile. Tuttavia, mi piacerebbe sentire da persone che hanno usato la parola Ninja per scopi di assunzione e quale fosse la loro motivazione dietro di esso.

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

    
posta Alinium 02.12.2010 - 15:27
fonte

6 risposte

33

A mio parere ci sono alcuni paralleli tra un ninja e un buon programmatore:

  1. Armi nascoste / stile non ortodosso - Se hai mai visto il G.I. Joe cartoon degli anni '80 potresti ricordare il carattere di Storm Shadow . Aveva una spada e alcune stelle da lancio, ma con le giuste sequenze di pugni e calci è riuscito a scovare un carro armato in un episodio. In modo simile, i programmatori possono essere chiamati a fare un lavoro che richiede loro di estrarre armi che probabilmente non pensavano di avere. Questo è un parente del punto "Hacker" che è stato menzionato in alcuni punti.

  2. Onore / rispetto - Certo che l'ho visto di più nei ritratti occidentali di un ninja come G.I. Joe o Teenage Mutant Ninja Turtles, ma sembrava esserci questo atteggiamento di onorare il proprio nemico, possibilmente tratto da "Art of War". I bravi programmatori possono rispettare il fatto che potrebbero esserci dei migliori là fuori da qualche parte. L'umiltà è anche in questo in un certo senso.

  3. Padronanza implicita - Potrebbe esserci questa supposizione che tutti i ninja sono maestri e quindi hanno davvero affinato le loro abilità per sapere come combattere bene. I bravi programmatori potrebbero aver assimilato allo stesso modo alcune abilità che sono piuttosto utili per portare a termine il lavoro.

Questi sono i pochi oltre il superficiale, "Oh, sembra interessante", implicazioni in quanto c'era bisogno di carne per attaccare. Mentre sono d'accordo che Samurai potrebbe essere il titolo più corretto, una volta che le cose sono state fuori per un po 'in una forma scorretta, bisogna conciliare le cose qui perché i TMNT non sono realmente ciò che la maggior parte considererebbe mercenari segreti che è ciò che Ninjas tecnicamente lo sono. Tuttavia, per quelli di noi che sono cresciuti con le raffigurazioni di cartoni animati di Ninja in questa luce positiva, questo è ciò che potrebbe rimanere per noi e quindi anche qui c'è un elemento di nostalgia.

    
risposta data 02.12.2010 - 16:30
fonte
40

È più o meno come dici tu - un tentativo di implicare la freddezza e l'elitismo (spesso tra coloro che non lo sono neanche) facendo confronti molto tenui.

Personalmente odio la frase (insieme a "Rockstar Programmer" che ci fa desiderare di colpire le persone fino alla morte - puoi essere un programmatore rockstar quando hai un'abitudine alla droga un problema di alcol e hai cestinato almeno una macchina 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, quindi affrontali (o smetti di fare qualcosa che pensi sia più bello). Se non ti piace il modo in cui gli altri vedono i programmatori, capisci che non è il tuo problema.

Sicuramente non cambierai idea con frasi che farebbero pensare che la media di 12 anni stia tentando di essere impressionante.

/ rant

Modifica: per essere chiari, lo sfogo non è rivolto all'interrogante ...

    
risposta data 02.12.2010 - 15:40
fonte
15

Un concetto che gli esperti di arti marziali e i buoni programmatori hanno in comune è quell'economia dello sforzo. Gli esperti di arti marziali evitano il movimento sprecato; i buoni 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 grazie all'allenamento e alla pratica.

    
risposta data 02.12.2010 - 15:40
fonte
15

Nella mia comprensione, non tutti i programmatori bravi o eccellenti sono dei Ninja. I ninja sono una razza speciale. Un programmatore Ninja è colui che appare in momenti insoliti (ad esempio 3 am), fa alcune cose pericolose che le persone normali sono riluttanti (come usare un editor esadecimale per correggere un bug molto critico in un programma decennale, presumibilmente non mantenibile, direttamente sul server di produzione) e scompare invisibile.

Ovviamente, sebbene un ninja abbia bisogno di abilità tecniche eccellenti per tirare fuori tali acrobazie regolarmente e sopravvivere, molti eccellenti programmatori non si adattano affatto a questa descrizione. Con i metodi corretti, non c'è bisogno del Ninja. D'altra parte, se succede l'impossibile, è una buona cosa averne uno.

    
risposta data 02.12.2010 - 15:55
fonte
10

Oltre ai fattori "Fresco" e "Elite", i ninja sono spesso nascosti e sono noti per fare cose come sgattaiolare sicurezza per entrare in luoghi che non dovrebbero. Poiché questa caratteristica è condivisa da 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 in grado di intrufolarsi con la sicurezza in luoghi che non dovrebbero essere

Persona furtiva che può infiltrare la sicurezza in posti che non dovrebbero essere = hacker

Hacker = Programmer

Pertanto, Ninja = Programmer

    
risposta data 02.12.2010 - 15:50
fonte
2

Ho intenzione di andare contro il sentimento popolare qui. Penso che ci sia un sacco di romanticismo in corso e di allungamento per creare la connessione tra i ninja e gli ingegneri. Lo terrei semplice poiché 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 possiamo essere entrambi un ( anonimo) ninja.

In secondo luogo, ninja è un termine usato frequentemente in WoW e può avere connotazioni negative. Inoltre, il ninja tradizionale non è onorevole in confronto ai samurai. Quindi, con tutte le qualità ammirevoli di un samurai, penseresti che vedremmo "il programmatore samurai" più spesso se fosse il caso che siano le qualità percepite verso l'esterno che vengono elogiate. Questo è il motivo per cui mi associo all'idea che l'uso di ninja è più per enfatizzare il misterioso mantello e il pugnale, abilità subdole. Per farla girare più positivamente, queste sono le abilità di scorta nel commercio di spionaggio; ladri, intelligence e agenti segreti inclusi.

    
risposta data 16.12.2010 - 19:55
fonte

Leggi altre domande sui tag