¿Qué habilidades necesita un ingeniero de software? Mi universidad adopta un enfoque de gestión con algunas habilidades de código. ¿Está bien?

Como ingeniero de software, necesita las siguientes habilidades:

  • Analizando un problema.
  • Proponiendo una solución
  • Codificando la solución
  • Corrección de errores (sí, siempre tendrás errores)
  • Optimizar la solución (cuando sea necesario y factible).

Un enfoque de “gestión” no le enseñará estas habilidades. Es un juego de pelota totalmente diferente.

Como ingeniero de software, administras computadoras. Y como gerente, administras personas. Administrar computadoras es bastante sencillo. La computadora hace lo que usted programa que haga. Si algo no funciona como lo espera, es SU culpa, no la computadora. Entonces la responsabilidad recae en usted para solucionarlo. No se puede perder la culpa culpando a su computadora o sus colegas.

Si manejas personas, las cosas se ponen más complicadas. Los humanos son impredecibles. Puedes hacer todo bien, pero aún así terminarás en un desastre si las personas que te informan son incompetentes o no cooperan. Y también podría salirse con la suya culpando a su personal por sus errores (un movimiento imbécil, pero muchos gerentes hacen esto).

En mi experiencia, los ingenieros de software hacen la transición a la administración solo cuando no les apasiona la programación o no son tan buenos (por supuesto, siempre hay excepciones).

Por lo tanto, no pueden aprender habilidades de codificación y gestión juntas (ya que son un poco opuestas).

No.

Sobre todo, un ingeniero de software necesita habilidades de resolución de problemas superlativas. Esos no se enseñan en las universidades.

El siguiente en la línea son las habilidades de aprendizaje: saber cuánto aprender de una nueva tecnología para usarla. Esas habilidades deberían enseñarse en la universidad, pero no lo son.

Por último, pero no menos importante, está hablando claramente. Por lo general, ese es el polo opuesto de la administración.

Escribir software se aprende mejor haciendo, es decir, asumir un proyecto y hacer que funcione. Eso implica mucho diseño, escritura y pruebas.

Otra cosa que las universidades podrían estar enseñando fácilmente, pero generalmente no lo están, es la parte de “ingeniería” de la ingeniería de software: cosas no atractivas como el control de versiones, la ramificación, el etiquetado y la producción de resultados repetibles.

More Interesting

¿Qué tan frecuentes son las drogas inteligentes en Silicon Valley?

Comenzaré mi primer día en FB en dos semanas como nuevo ingeniero de software graduado. ¿Cómo le pido a un ingeniero sénior en el mismo equipo que sea mi mentor?

¿Qué debe hacer un ingeniero de software senior con más de 8 años de experiencia en la industria de TI, si no quiere asumir la responsabilidad de un líder de equipo?

¿Puedo comenzar mi carrera como ingeniero de software a los 30 años?

¿Cuáles son algunas diferencias de pensamiento entre los ingenieros de desarrollo de software y los ingenieros de prueba?

¿Qué quiere decir la gente cuando dice que un lenguaje de computadora es difícil que otros?

No puedo formatear ni convertir mi tarjeta SD del sistema de archivos exFAT de 64 GB a FAT32. ¿Qué se puede hacer?

¿Cómo es el día promedio de un ingeniero de software en Bangalore con un salario superior a Rs 50,000 por mes?

Soy un gerente por primera vez que acaba de hacerse cargo de un equipo de 8 ingenieros de software. ¿Cómo envío mensajes a la productividad del equipo?

¿Cuáles son los requisitos necesarios para convertirse en ingeniero de software en Google o en ese tipo de empresas?

¿En cuántos idiomas debería especializarse alguien en ingeniería de software?

¿Los programadores competitivos se patrocinan como lo hacen los atletas en otros deportes?

¿Cuánto tiempo se tarda en ascender a ingeniero de software iii en Amazon?

¿Qué porcentaje de ingenieros de software en Bangalore llevan una vida feliz y contenta?

¿Por qué muchos programadores se oponen a la programación en pareja?