¿Por qué los buenos programadores se conocen como Ninjas? [cerrado]

36

¿Cómo se define un programador Ninja? Si solo se trata de un desarrollador experimentado, ¿no hay una mejor manera de describirlo? Ninja suena como una estratagema de marketing infantil diseñada para atraer a los desarrolladores con delirios de grandeza. ¿O me estoy perdiendo algo? En particular, quiero saber qué cualidades de un Ninja se desean en los programadores que hacen que la comparación sea válida (además del factor de frescura).

Encontré este artículo que hace algunas buenas comparaciones entre las características de Ninja y el desarrollo ágil. Sin embargo, me gustaría saber de personas que han usado la palabra Ninja para fines de contratación y cuál fue su motivación.

Actualización: Hubo varios buenos puntos planteados en ambos lados del argumento. He tratado de resumir esto en mi blog . Elegí la respuesta de JB como la aceptada porque resume todas las razones válidas para hacer la comparación.

Alinium
fuente
3
Los ninja son expertos en artes marciales. Los buenos programadores son expertos en programación.
55
Nunca ha sido llamado un Ninja. Guru o Master por otro lado ...
nadie el
40
Esto me recuerda el 'método Ninja' cuando trabajo con punteros: simplemente arroje estrellas (*) hasta que funcione. ^^
gablin
10
El término correcto es "asesino que codifica el gurú del mono ninja y el héroe guapo sexmachine".
Maxpm
2
@maxpm, ¿espero que la etiqueta "sexmachine" no sea relevante durante la programación?

Respuestas:

33

En mi opinión, hay algunos paralelismos entre un Ninja y un buen programador:

  1. Armas ocultas / estilo poco ortodoxo: si alguna vez vio la caricatura de GI Joe de la década de 1980, puede recordar el personaje de Storm Shadow . Tenía una espada y algunas estrellas arrojadizas, pero con las secuencias correctas de golpes y patadas logró desmontar un tanque en un episodio. De manera similar, se puede llamar a los programadores para que realicen un trabajo que les obligue a sacar armas que quizás no pensaste que tenían. Este es un pariente del punto "Hacker" que se ha mencionado en algunos lugares.

  2. Honor / respeto: es cierto que he visto esto más en las representaciones occidentales de un ninja como GI Joe o Teenage Mutant Ninja Turtles, pero parecía haber esta actitud de honrar al enemigo, posiblemente tomada de "Art of War". Los buenos programadores pueden respetar que puede haber mejores en algún lugar. La humildad también está en esto en cierto sentido.

  3. Dominio implícito: puede suponerse que todos los ninjas son maestros y, por lo tanto, realmente han perfeccionado sus habilidades para saber cómo luchar bien. Los buenos programadores pueden haber dominado de manera similar algunas habilidades que son bastante beneficiosas para hacer el trabajo.

Esas son las pocas implicaciones superficiales, "Oh, eso suena genial", ya que tenía que haber algo de carne para que se pegara. Si bien estoy de acuerdo en que Samurai puede ser el título más correcto, una vez que las cosas han salido por un tiempo en una forma incorrecta, uno tiene que conciliar las cosas aquí, ya que el TMNT no es realmente lo que la mayoría consideraría como mercenarios encubiertos, eso es lo que Ninjas técnicamente lo son. Sin embargo, para aquellos de nosotros que crecimos con representaciones de dibujos animados de Ninjas en esta luz positiva, esto es lo que nos puede quedar, por lo que también hay un elemento de nostalgia aquí.

JB King
fuente
19
¿Qué pasa con la ropa oscura y no hablar mucho? :-P
JBRWilkinson
Ssshhh ... el sigilo está entre esas armas ocultas. :)
JB King
44
"Entre su armamento hay sigilo, armas ocultas y una devoción casi fanática por los buenos estilos de codificación ... también menos hablar ... ¡bah! Entraré de nuevo ..."
Timothy Baldridge
Estás pensando en samurai. Los ninjas son simplemente asesinos sangrientos. No hay honor con los ninjas.
BЈовић
¿Alguna vez viste "Teenage Mutant Ninja Turtles" en forma de dibujos animados o película?
JB King
41

Es más o menos como usted dice: un intento de implicar frialdad y elite (con frecuencia entre aquellos que no lo son) al hacer comparaciones muy tenues.

Personalmente, odio la frase (junto con "Rockstar Programmer" que hace que queramos matar a golpes a las personas: puedes ser un programador de rockstar cuando tienes un hábito de drogas, un problema de alcohol y has destrozado al menos un automóvil y una habitación de hotel )

Eres un programador, si tienes problemas para ser un programador porque quieres hacer algo que crees que es más genial, entonces trata con ellos (o deja de hacer algo que creas que es más genial). Si no le gusta la forma en que otros ven a los programadores, comprenda que ese es su problema, no el suyo.

Ciertamente no va a cambiar de opinión con frases que harían pensar que un niño promedio de 12 años está tratando de ser un poco impresionante.

/despotricar

Editar: Para que quede claro, la diatriba no está dirigida al interrogador ...

Jon Hopkins
fuente
66
@Larry: la mayoría de las comparaciones podrían aplicarse igualmente a profesionales realmente buenos en otros campos, pero no obtienes abogados ninja, médicos ninja o personal de cuentas por cobrar ninja (excepto quizás Herbert Kornfeld). ¿No es la pregunta interesante por qué los programadores sienten la necesidad de hacer esto?
Jon Hopkins
99
@Jom Hopkins, el NHS en el Reino Unido está lleno de médicos ninja ... ciertamente nunca los ves.
Kevin D
66
@ Jon Hopkins: la cultura de programación fomenta la vinculación y el humor a nivel subcultural. Muchos programadores ven a los ninjas como geniales y quieren ser geniales, por lo que ser llamado ninja es bastante impresionante. Naturalmente, esto no se aplica en todos los ámbitos y hay programadores que odian ese tipo de cosas. Depende de la persona. Pero en general, la programación evolucionó para convertirse en una profesión convencional como médico, abogado, etc. y trajo consigo referencias de subcultura (estrellas de rock, ninjas, etc.)
Adam Lear
3
@Adam Lear, si se supone que esto es una parte esencial de la "cultura de programación", no quiero tener nada que ver con esa "cultura". El vínculo más profundo que he experimentado con otros desarrolladores se basó en la capacidad y el mérito.
jonathanconway
3
@ Adam - Entiendo los antecedentes, solo encuentro todo un poco adolescente y creo que denigra a los programadores como profesionales serios una vez que tenemos entre 20 y 30 años (y más). No digo que los programadores deban abandonar la cultura del programador, pero hay una diferencia entre, por ejemplo, leer XKCD y Neal Stephenson o pasar nuestros fines de semana aprendiendo sobre criptografía (que puede ser geek pero también inteligente), y esto es un poco infantil. y en realidad tan lejos de ser genial como puedas.
Jon Hopkins
15

Un concepto que los expertos en artes marciales y los buenos programadores tienen en común es esa economía de esfuerzo. Los expertos en artes marciales evitan el movimiento perdido; Los buenos programadores evitan códigos innecesarios.

El concepto de invisibilidad se traduce en transparencia en la escritura de la biblioteca. Una buena biblioteca tiene una interfaz intuitiva, y puede conectarla y no preocuparse por eso.

EDITAR: Olvidé lo más importante: tanto los ninjas como los buenos programadores son altamente calificados como resultado de la capacitación y la práctica.

Larry Coleman
fuente
1
1. Depende del arte marcial. ¿Estás seguro de que evitan el desperdicio de movimiento en kung fu o capoeira? 2. Puedes ser un ninja y / o un programador y ser muy malo en eso. Dicho esto, agradezco tu respuesta de todos modos;) +1
@Pierre: gracias. Mi respuesta podría usar algunos ajustes, pero quería poner algo allí para ayudar a demostrar que la pregunta era válida. Como puede ver, ya hay un voto para cerrar.
Larry Coleman
15

Según tengo entendido, no todo programador bueno o excelente es un Ninja. Los ninjas son una raza especial. Un programador Ninja es el que aparece en momentos inusuales (p. Ej., 3 am), hace algunas cosas peligrosas a las que las personas normales son reacias (como usar un editor hexadecimal para corregir un error muy crítico en un programa presuntamente insostenible de una década de antigüedad) en el servidor de producción) y desaparece sin ser visto.

Obviamente, aunque un Ninja necesita excelentes habilidades técnicas para llevar a cabo tales acrobacias regularmente y sobrevivir, muchos programadores excelentes no encajan en absoluto en esa descripción. Con los métodos adecuados, no hay necesidad de Ninja. Por otro lado, si sucede lo imposible, es bueno tener uno.

usuario281377
fuente
10

Además de los factores "Coolness" y "Elite", los ninjas a menudo son sigilosos y se sabe que hacen cosas como pasar a escondidas la seguridad para llegar a lugares que no deberían. Debido a que este rasgo es compartido por los hackers, creo que alguien pensó que "Ninja" sería un buen título para ellos. Para una persona que no es de TI, los piratas informáticos y los programadores son lo mismo, y piensan que la palabra "ninja" es muy buena, por lo que es un poco atascado

Entonces la lógica es:

Ninja = Persona sigilosa que puede infiltrar la seguridad del pasado en lugares donde no debería estar

Persona sigilosa que puede infiltrar la seguridad del pasado en lugares donde no debería estar = Hacker

Hacker = Programador

Por lo tanto, Ninja = Programador

Rachel
fuente
¡Otro teorema probado a través de la propiedad conmutativa de dudosas comparaciones!
Qualidafial
1
@qualidafial, estoy bastante seguro de que te refieres a transitivo.
dan_waterworth
2

Voy a ir en contra del sentimiento popular aquí. Creo que se está produciendo una gran cantidad de romanticismo y estiramientos excesivos para establecer la conexión entre ninjas e ingenieros. Lo mantendría simple a medida que los ninjas entran, hacen el trabajo y salen generalmente sin ser detectado . El único salto que haría es que en la subcultura puedes escuchar chistes sobre Chuck Norris versus ninjas y obviamente cada programador quiere ser Chuck Norris o Jack Bauer, pero solo hay un Chuck Norris y Jack Bauer para que cada uno sea un ( anónimo) ninja.

En segundo lugar, ninja es un término utilizado con frecuencia en WoW y puede tener connotaciones negativas. Además, el ninja tradicional no es honorable en comparación con el samurai. Entonces, con todas las cualidades admirables de un samurai, uno pensaría que veríamos al "programador de samurai" con mayor frecuencia si fuera el caso de que se elogiaran las cualidades externas percibidas. Es por eso que me suscribo a la idea de que el uso de ninja es más para enfatizar las habilidades misteriosas, de capa y daga, furtivas. Para hacerlo más positivo, estas son las habilidades de stock en el comercio de espías; pícaros, inteligencia y agentes secretos inclusive.

patrones
fuente