¿Qué camino (enfoque de estudio) debo seguir para ser un buen ingeniero de software en los próximos tres años?

Todo buen ingeniero de software tiene que pasar por algunas etapas con la posibilidad de no avanzar, no necesariamente una mala elección.

Descifrador

Un programador es alguien que ha adquirido fluidez con un lenguaje de programación o de secuencias de comandos capaz de comportarse de forma dinámica. Digo dinámico porque introduce las complejidades que son necesarias para abordar muchos problemas del mundo real. Así que HTML no te calificará para esta etapa. También quiero prefijar que fluidez, para mí, no es la memorización de toda la sintaxis disponible o incluso la cobertura de un porcentaje de la sintaxis disponible, sino el punto en el que “piensa” en el idioma al definir su solución.

Desarrollador

En esta etapa, domina al menos un idioma (y sí, solo se necesita uno) y puede crear software con un equipo o solo. Está familiarizado con las buenas prácticas en lo que respecta a escribir software (es decir, usar el control de código fuente y cumplir con los estándares de codificación). En esta etapa, puede ser un buen jugador en casi cualquier equipo, tal vez incluso el mejor “lanzador” con muchos equipos posiblemente considerando a esta persona un rol de nivel Sr.

Ingeniero de software

La ingeniería de software es la ingeniería de software utilizando principios de ingeniería. Así que esto viene con la expectativa de no solo ser capaz de contribuir bien a un equipo, sino también de definir cómo se debe crear el software para garantizar una alta calidad. También espero que alguien en este nivel también entienda los patrones de diseño y haya memorizado unos cuantos populares. Saben cómo no solo contribuir a un equipo, sino que, naturalmente, lo hacen dentro de los “patrones” establecidos, el estilo de codificación y las prácticas del equipo (suponiendo que sean buenas prácticas).

Algunas personas pueden superar todas estas etapas en un plazo de 5 años, yo diría que el promedio es de 8, y muchas personas se quedan “estancadas” por elección o “entorno” en la posición de Codificador o Desarrollador. Mucha gente confunde al desarrollador y al ingeniero de software por ser lo mismo, pero las expectativas y las capacidades entre los dos roles son bastante amplias. También estoy seguro de que algunas personas calificarían estos roles como Jr, Mid y Sr, pero personalmente creo que esto elimina muchas de las expectativas de los mismos roles. Facilita que las personas intenten y justifiquen su posición mediante la comparación en lugar de la competencia, que en el mundo del software es el rey.

1. ¿Qué tipo de codificación prefieres? Desarrollo móvil, diseño de páginas web, gestión de bases de datos, software, diseño de juegos, etc.

2. Utilizando el desarrollo móvil como su estilo de codificación preferido, busque en la web las aplicaciones móviles más populares. Haz una lista de los 10 mejores.

3. Invertir al ingeniero ese código. Use sitios como GitHub para encontrar el código, no lo copie y pegue, solo escríbalo usted mismo para tener la “memoria muscular”. Ejemplo; Te gusta cómo funciona la aplicación Quora, recrearla, cada paso.

4. Repita la ingeniería inversa de las aplicaciones móviles en su lista, debería tomar algún tiempo.

5. Encuentra mejoras en el código. Resuelve los errores que te encuentres. Y comienza a cronometrarte para el código que generas.

6. Una vez que haya completado algunas aplicaciones móviles, busque el administrador de proyectos de la aplicación original y muéstreles lo que ha hecho. Y muéstrales tus mejoras en su trabajo. ‘ESTO ES UN RESUMEN’

7. Si les gusta tu trabajo … ¡podrían contratarte!