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

36

Como um programador Ninja é definido? Se é apenas um desenvolvedor experiente, então não há melhor maneira de descrever isso? Ninja soa como um truque de marketing infantil projetado para atrair desenvolvedores com delírios de auto-grandeza. Ou eu estou esquecendo de alguma coisa? Em particular, eu quero saber quais qualidades de um Ninja são desejadas em programadores que tornam a comparação válida (além do fator de frescor)?

Eu encontrei este artigo que faz algumas boas comparações entre as características Ninja e o desenvolvimento ágil. No entanto, gostaria de ouvir de pessoas que usaram a palavra Ninja para fins de contratação e qual foi a motivação deles por trás disso.

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

    
por Alinium 02.12.2010 / 15:27
fonte

6 respostas

33

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

  1. Armas ocultas / estilo não ortodoxo - Se você já viu o G.I. Desenhos animados de Joe dos anos 80 você pode recordar o caráter de Storm Shadow . Ele tinha uma espada e algumas estrelas de arremesso, mas apenas com as seqüências certas de socos e chutes conseguiu desmontar um tanque em um episódio. De maneira semelhante, os programadores podem ser chamados para fazer algum trabalho que os obrigue a retirar as armas que você pode não ter imaginado. Este é o ponto "Hacker" que foi mencionado em alguns lugares.

  2. Honra / respeito - Admito que eu já vi isso mais nos retratos ocidentais de um ninja como G.I. Joe ou Teenage Mutant Ninja Turtles, mas parecia haver essa atitude de honrar o inimigo, possivelmente tirado de "Art of War". Bons programadores podem respeitar que pode haver melhores em algum lugar. A humildade também está nisso de certo modo.

  3. Domínio implícito - Pode haver essa suposição de que todos os ninjas são mestres e, portanto, realmente aperfeiçoaram suas habilidades para saberem como lutar bem. Bons programadores podem ter dominado similarmente algumas habilidades que são bastante benéficas para fazer o trabalho.

Essas são algumas das implicações superficiais, "Oh, isso soa legal", já que tinha que ter um pouco de carne para isso. Enquanto eu concordo que Samurai pode ser o título mais correto, uma vez que as coisas estão fora por um tempo de forma incorreta, é preciso conciliar as coisas aqui, já que as TMNT não são o que a maioria consideraria como mercenários encobertos que é o que Ninjas tecnicamente são. No entanto, para aqueles de nós que cresceram com representações de desenhos animados de Ninjas nesta luz positiva, isso é o que pode ficar para nós e por isso há também um elemento de nostalgia aqui também.

    
por 02.12.2010 / 16:30
fonte
40

É bem como você diz - uma tentativa de implicar frieza e eliteness (freqüentemente entre aqueles que não são nenhum dos dois) fazendo comparações altamente tênues.

Pessoalmente eu odeio a frase (junto com "Rockstar Programmer", que faz com que a gente morra até a morte - você pode ser um programador rockstar quando você tem um vício em drogas e tem problemas com álcool e destruiu pelo menos um carro) um quarto de hotel).

Você é um programador, se tiver problemas em ser programador, porque quer fazer algo que acha mais legal, então lide com eles (ou pare de fazer algo que acha mais legal). Se você não gosta da maneira como os outros vêem os programadores, então entenda que o problema deles não é seu.

Você certamente não vai mudar sua opinião com frases que fariam a média de 12 anos pensar que você estava tentando um pouco ser impressionante.

/ rant

Editar: Para ser claro, o discurso não é direcionado ao questionador ...

    
por 02.12.2010 / 15:40
fonte
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 movimentos desperdiçados; bons programadores evitam código desnecessário.

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

EDIT: Eu esqueci a coisa mais importante: ambos os ninjas e bons programadores são altamente qualificados como resultado de treinamento e prática.

    
por 02.12.2010 / 15:40
fonte
15

No meu entendimento, nem todo bom ou excelente programador é um Ninja. Ninjas são uma raça especial. Um programador Ninja é aquele que aparece em horários incomuns (por exemplo, 3h da manhã), faz algumas coisas perigosas que 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 de idade diretamente no servidor de produção) e desaparece sem ser visto.

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

    
por 02.12.2010 / 15:55
fonte
10

Além dos fatores "Coolness" e "Elite", os ninjas costumam ser furtivos e são conhecidos por fazer coisas como passar por segurança para entrar em 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, então é meio que presa

Então a lógica é:

Ninja = Pessoa furtiva que consegue passar segurança passada para lugares que não deveriam estar

Pessoa furtiva que consegue roubar segurança passada em lugares que não deveriam ser = hackers

Hacker = programador

Portanto, Ninja = Programador

    
por 02.12.2010 / 15:50
fonte
2

Vou contra o sentimento popular aqui. Eu acho que há muita romantização acontecendo e mais alongamento para fazer a conexão entre ninjas e engenheiros. Eu manteria simples enquanto os ninjas entrassem, fizessem o trabalho e saíssem normalmente sem serem detectados . O único salto que eu faria é 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 possa ser um ( 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 é honroso em comparação ao samurai. Assim, com todas as qualidades admiráveis de um samurai, você pensaria que veríamos "programador samurai" com mais frequência se fosse o caso que são as qualidades percebidas externamente que estão sendo elogiadas. É por isso que eu subscrevo a idéia de que o uso de ninja é mais para enfatizar o misterioso, manto e adaga, habilidades sorrateiras. Para girar mais positivamente, essas são as habilidades das ações no comércio de espionagem; ladinos, inteligência e agentes secretos, inclusive.

    
por 16.12.2010 / 19:55
fonte