¿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.
fuente
Respuestas:
En mi opinión, hay algunos paralelismos entre un Ninja y un buen programador:
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.
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.
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í.
fuente
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 ...
fuente
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.
fuente
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.
fuente
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
fuente
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.
fuente