¿Cuáles son los criterios para que alguien sea considerado un talento de ingeniería de software?

Para ser un talento, necesitas poder hacer algo que otros ingenieros de software (no talentos … 😉 no pueden hacer).

Por ejemplo, es posible que pueda escribir súper rápidamente un sistema de trabajo. En mi empresa actual (Plataforma de inteligencia de conversación n. ° 1 para equipos de ventas | Gong.io), nuestros talentos de ingeniería de software pudieron reunir un sistema de trabajo que registra, transcribe e indexa llamadas de conferencia en unas pocas semanas. El sistema aún no era totalmente escalable, pero permitió a los clientes iniciales comenzar a usar el producto y darnos su opinión.

Alternativamente, es posible que pueda resolver algoritmos súper complicados que otras personas no pueden tener en sus manos.

O bien, puede llegar a un diseño limpio para un sistema complicado (de varios componentes): póngalo a funcionar y elimine la complejidad.

O bien, puede llegar a una implementación súper robusta para un sistema complejo (por ejemplo, uno que involucra toneladas de componentes externos). Algo escrito una vez y que funciona para siempre. Por ejemplo, en mi empresa actual, un talento de ingeniería de software creó un sistema de programación súper complejo, que apenas necesitábamos tocar desde hace más de 1,5 años.

O bien, podría ser un aprendiz súper rápido y dominar nuevas tecnologías o herramientas. Como armar una aplicación React / Redux súper complicada o una tubería de trabajo basada en Hadoop y Elastic Search.

La conclusión es que debe tener algún rasgo que le haga, como ingeniero de software, “especial”, poder hacer algo que a otras personas les resulta difícil de hacer.

Todo lo dicho y hecho, no siempre es fácil identificar ese talento. Las personas (con razón) ven las calificaciones universitarias como un proxy (razonable) de talento. Pero la realidad es que dado que el “talento” puede manifestarse de diferentes maneras (como lo anterior), uno realmente necesita mirar debajo de la superficie para identificar dónde podría “brillar” el talento potencial.

Más o menos cuáles han sido las respuestas a esta pregunta: ¿Qué habilidades se necesitan, especialmente si uno es de un entorno que no es de ciencias de la computación (por ejemplo, ingeniería de potencia) y está dispuesto a aprender con entusiasmo, para obtener un trabajo de ingeniería de software en empresas como Google y ¿Facebook?.

Muy inteligente o muy experimentado o ambos.

Uno que es inteligente siempre sabe qué hacer. Quieren probar todos los métodos y siempre pueden identificar nuevos métodos o combinaciones de métodos que no hayan probado antes.

Uno que tiene experiencia siempre sabe qué no hacer. Porque lo han mordido en el pasado.

Por supuesto, siempre puedes ser ese culo inteligente experimentado e inviable que probablemente será despedido muy rápidamente.