Cuáles son las formas de convertirse en un mejor Ingeniero de Software?

Yo mismo he estado bastante interesado en este tema.

Es cierto que no soy ingeniero de profesión. Soy escritor y comercializador, pero trabajo con muchos equipos de software y escribo mucho sobre productividad, rendimiento y la ciencia del desarrollo.

Recientemente, hice básicamente esta misma pregunta a los Rangers de Microsoft ALM.

Quería saber: ¿Cómo miden los desarrolladores su rendimiento? Y, ¿qué pueden hacer para mejorar sus habilidades? A partir de sus aportaciones, escribí un artículo bastante completo sobre el tema.

Cómo ser un mejor desarrollador de software: A Handbook on Personal Performance

Como señalaron las otras respuestas, uno de los aspectos más importantes es definitivamente la ciencia o la teoría detrás de la ciencia y la ingeniería de la computación. Muchos programadores competentes carecen de una comprensión profunda de los principios subyacentes que hacen que el código funcione (o no).

Esto se convierte cada vez más en una barrera en tu desarrollo a medida que avanzas en tu carrera.

main-qimg-a9aff04592d1f78166e14ab05756ed14

Pero la otra parte de la ecuación es, esencialmente, aprender a analizar y resolver mejor los problemas. Esta es una habilidad ampliamente aplicable, pero es especialmente importante para los desarrolladores de software.

Hubo algunas sugerencias específicas que vinieron del equipo Ranger:

  1. Lee y aprende. El consejo obvio es obvio
  2. Practicar la alternancia entre el pensamiento enfocado y el difuso
  3. Empezar y construir proyectos paralelos
  4. Leer el código de otras personas
  5. Utilizar la intercalación para aprender nuevos conceptos
  6. Enseñar a otros lo que has aprendido
  7. Entender tus propias fortalezas y debilidades
  8. Aprender las fortalezas/debilidades del equipo
  9. Definir tu papel dentro del equipo

Uno de los consejos másconsejos que he recibido durante la investigación de este artículo es que, en última instancia, tus capacidades individuales no son tan importantes. Incluso si eres el mejor programador del mundo, la única forma de mejorar de verdad es entendiendo el contexto más amplio del trabajo que estás haciendo.

Eso significa centrarse en el trabajo en equipo y en la dinámica de equipo.

Significa pensar de forma amplia en la resolución de problemas con ciertas limitaciones. Hay usuarios con capacidad limitada. Hay un tiempo y un presupuesto limitados. Dados esos parámetros, ¿cuál es la mejor solución al problema?

Tener este contexto más amplio es realmente importante. Te ayuda a tomar decisiones mejores, más inteligentes y más estratégicas.

En lugar de correr hacia cada problema con las armas en ristre, te tomarás el tiempo necesario para analizar el alcance completo del problema, hacer un balance cuidadoso de todas las consideraciones y luego tomar una decisión informada sobre cómo avanzar.

Espero que esto sea útil. Hazme saber si tienes la oportunidad de revisar la guía!