Por que bons programadores são chamados de Ninjas? [fechadas]

36

Como é definido um programador Ninja? Se é apenas um desenvolvedor experiente, então não há realmente nenhuma maneira melhor de descrever isso? Ninja parece uma jogada de marketing infantil, criada para atrair desenvolvedores com ilusões de auto-grandeza. Ou eu estou esquecendo de alguma coisa? Em particular, quero saber quais qualidades de um Ninja são desejadas nos programadores que tornam a comparação válida (além do fator de frescura)?

Eu encontrei este artigo que faz algumas boas comparações entre as características do Ninja e o desenvolvimento Agile. No entanto, gostaria de ouvir pessoas que usaram a palavra Ninja para fins de contratação e qual era a motivação deles.

Atualização: Houve vários pontos positivos levantados em ambos os lados do argumento. Eu tentei resumir isso no meu blog . Eu escolhi a resposta de JB como a aceita, porque resume todas as razões válidas para fazer a comparação.

Alinium
fonte
3
Ninja são especialistas em artes marciais. Bons programadores são especialistas em programação.
5
Nunca foi chamado de Ninja. Guru ou mestre, por outro lado ...
noone
40
Isso me lembra o 'método Ninja' ao trabalhar com ponteiros: basta jogar estrelas (*) até que funcione. ^^
gablin
10
O termo correto é "assassino que codifica o guru dos macacos ninjas, herói bonito, máquina de sexo".
Maxpm
2
@maxpm, espero que o rótulo "sexmachine" não seja relevante durante a programação?

Respostas:

33

Na minha opinião, existem alguns paralelos entre um Ninja e um bom programador:

  1. Armas ocultas / estilo pouco ortodoxo - Se você já viu o desenho GI Joe dos anos 80, deve se lembrar do personagem Storm Shadow . Ele tinha uma espada e algumas estrelas, mas com as seqüências certas de socos e pontapés conseguiu desmontar um tanque em um episódio. De maneira semelhante, os programadores podem ser chamados para realizar algum trabalho que exija que eles retirem armas que você pode não ter pensado. Este é o ponto "Hacker" que foi mencionado em alguns lugares.

  2. Honra / respeito - É verdade que eu já vi isso mais nos retratos ocidentais de um ninja como GI Joe ou Teenage Mutant Ninja Turtles, mas parecia haver essa atitude de honrar o inimigo, possivelmente tirada de "Art of War". Bons programadores podem respeitar que pode haver melhores por aí. A humildade também está nesse sentido.

  3. Domínio implícito - pode haver essa suposição de que todos os ninjas são mestres e, portanto, realmente aprimoraram suas habilidades para saber como lutar bem. Bons programadores podem ter dominado de maneira semelhante algumas habilidades que são bastante benéficas na realização do trabalho.

Essas são as poucas que estão além das implicações superficiais de "Oh, isso parece legal", pois era preciso haver um pouco de carne para grudar. Embora eu concorde que Samurai possa ser o título mais correto, uma vez que as coisas saem por um tempo de forma incorreta, é preciso reconciliar as coisas aqui, pois o TMNT não é realmente o que a maioria consideraria mercenários secretos, é isso que Ninjas tecnicamente são. No entanto, para aqueles de nós que crescemos com desenhos animados de Ninjas sob essa luz positiva, é isso que pode nos interessar e, portanto, também há um elemento de nostalgia aqui.

JB King
fonte
19
E as roupas escuras e sem falar muito? :-P
JBRWilkinson
Ssshhh ... furtividade está entre aquelas armas escondidas. :)
JB King
4
"Entre seus armamentos estão furtivas, armas ocultas e uma devoção quase fanática por bons estilos de codificação ... também menos faladas ... bah! Voltarei ..."
Timothy Baldridge
Você está pensando em samurais. Ninjas são apenas assassinos sangrentos. Sem honra com ninjas.
BЈовић
Já viu "Teenage Mutant Ninja Turtles" em forma de desenho animado ou filme?
JB King
41

É praticamente como você diz - uma tentativa de implicar frieza e elegância (freqüentemente entre os que não são), fazendo comparações altamente tênues.

Pessoalmente, eu odeio a frase (junto com "Rockstar Programmer", que faz com que queremos espancar pessoas até a morte - você pode ser um programador rockstar quando tem um hábito de usar drogas e tem um problema com álcool e destruiu pelo menos um carro e um quarto de hotel )

Você é um programador, se tiver problemas em ser um programador porque deseja fazer algo que considera mais interessante, então lide com eles (ou saia para fazer algo que considera mais interessante). Se você não gosta da maneira como os outros veem os programadores, entenda que esse problema não é seu.

Você certamente não vai mudar de idéia com frases que levariam a média de 12 anos a pensar que estava tentando um pouco impressionar.

/ discurso retórico

Edit: Para ser claro, o discurso retórico não visa o interlocutor ...

Jon Hopkins
fonte
6
@ Larry - A maioria das comparações pode ser aplicada igualmente a profissionais realmente bons em outros campos, mas você não recebe advogados ninja, médicos ninjas ou funcionários a receber contas ninjas (exceto talvez Herbert Kornfeld). Não é uma pergunta interessante por que os programadores sentem a necessidade de fazer isso?
Jon Hopkins
9
@Jom Hopkins, o NHS no Reino Unido está cheio de médicos ninjas ... você certamente nunca os vê.
Kevin D
6
@ Jon Hopkins: A cultura de programação incentiva o vínculo e o humor no nível da subcultura. Muitos programadores vêem ninjas como legais e querem ser legais, e ser chamado de ninja é bastante impressionante. Naturalmente, isso não se aplica em geral e existem programadores que odeiam esse tipo de coisa. Isso depende da pessoa. Mas, em geral, a programação evoluiu para se tornar uma profissão tradicional como médico, advogado, etc, e trouxe consigo subcultura referências (rockstars, ninjas, etc.)
Adam Lear
3
@ Adam Lear, se isso deveria ser uma parte essencial da "cultura de programação", não quero nada com essa "cultura". O vínculo mais profundo que já experimentei com outros desenvolvedores foi baseado na capacidade e no mérito.
precisa
3
@ Adam - Eu entendo os antecedentes, acho a coisa toda um pouco adolescente e acho que denigra os programadores como profissionais sérios quando chegamos aos 20 e 30 anos (e mais velhos). Não estou dizendo que os programadores devam abandonar a cultura de programadores, mas há uma diferença entre, digamos, ler XKCD e Neal Stephenson ou passar nossos fins de semana aprendendo sobre criptografia (que pode ser nerd, mas também inteligente), e isso é um pouco infantil e, na realidade, o mais longe que você conseguir.
Jon Hopkins
15

Um conceito que especialistas em artes marciais e bons programadores têm em comum é essa economia de esforço. Especialistas em artes marciais evitam desperdício de movimento; bons programadores evitam código desnecessário.

O conceito de invisibilidade se traduz em transparência na escrita da biblioteca. Uma boa biblioteca possui uma interface intuitiva, e você pode conectá-la e não se preocupar com isso.

Edição: Eu esqueci a coisa mais importante: ninjas e bons programadores são altamente qualificados como resultado do treinamento e da prática.

Larry Coleman
fonte
1
1. Depende da arte marcial. Você tem certeza de que eles evitam desperdício de movimento no kung fu ou na capoeira? 2. Você pode ser um ninja e / ou programador e ser muito ruim nisso. Dito isto, agradeço sua resposta de qualquer maneira;) +1
@ Pierre: obrigado. Minha resposta poderia usar algum ajuste fino, mas eu queria divulgar algo para ajudar a demonstrar que a pergunta era válida. Como você pode ver, já há um voto para fechar.
Larry Coleman
15

No meu entendimento, nem todo programador bom ou excelente é um ninja. Ninjas são uma raça especial. Um programador Ninja é aquele que aparece em horários incomuns (por exemplo, 3 horas da manhã), faz algumas coisas perigosas com as quais as pessoas normais relutam (como usar um editor hexadecimal para corrigir um bug altamente crítico em um programa supostamente insustentável de uma década, diretamente no servidor de produção) e desaparece sem ser visto.

Obviamente, embora um Ninja precise de excelentes habilidades técnicas para realizar tais manobras regularmente e sobreviver, muitos programadores excelentes não se encaixam nessa descrição. Com métodos apropriados, não há necessidade do Ninja. Por outro lado, se o impossível acontecer, é bom ter um.

user281377
fonte
10

Além dos fatores "Frieza" e "Elite", os ninjas geralmente são furtivos e são conhecidos por fazer coisas como escapar da segurança para chegar a lugares que não deveriam. Como esse traço é compartilhado pelos hackers, acho que alguém pensou que "Ninja" seria um bom título para eles. Para uma pessoa que não é de TI, hackers e programadores são a mesma coisa, e eles acham que a palavra "ninja" é muito legal, por isso meio que ficou presa

Então a lógica é:

Ninja = Pessoa furtiva que pode esgueirar-se pela segurança passada para lugares onde não deveria estar

Pessoa furtiva que consegue passar pela segurança em lugares que não deveriam estar = Hacker

Hacker = Programador

Portanto, Ninja = Programador

Rachel
fonte
Outro teorema provado através da propriedade comutativa de comparações duvidosas!
Qualidafial
1
@qualidafial, tenho certeza que você quer dizer transitivo.
22412 dan_waterworth
2

Vou contra o sentimento popular aqui. Eu acho que há muito romantismo acontecendo e se estendendo demais para fazer a conexão entre ninjas e engenheiros. Eu simplificaria a maneira como os ninjas entram, fazem o trabalho e saem normalmente sem serem detectados . O único salto que eu daria é que na subcultura você pode ouvir piadas sobre Chuck Norris versus ninjas e, obviamente, todo programador quer ser Chuck Norris ou Jack Bauer, mas há apenas um Chuck Norris e Jack Bauer, para que cada um seja ( anônimo) ninja.

Em segundo lugar, ninja é um termo usado com freqüência no WoW e pode ter conotações negativas. Além disso, o ninja tradicional não é honrado em comparação com o samurai. Portanto, com todas as qualidades admiráveis ​​de um samurai, você pensaria que veríamos "programadores de samurais" com mais frequência se fosse o caso das qualidades percebidas externas que estão sendo elogiadas. É por isso que subscrevo a ideia de que o uso de ninja é mais para enfatizar as habilidades misteriosas, de manto e adaga, sorrateiras. Para ser mais positivo, essas são as habilidades de estoque no comércio de espiões; bandidos, inteligência e agentes secretos, inclusive.

padrões
fonte