¿Cuánta estructura de datos y conocimiento de algoritmos debo obtener para ser un mejor ingeniero de software?

No estoy seguro de cuánto tiempo dedican las personas que realizan concursos de programación a convertirse en mejores ingenieros de software, pero diría esto:

Si desea que su código haga lo que hace, solo necesita resolver el problema en cuestión y ponerlo en el código.

Sin embargo, si desea que su código funcione correctamente Y sea óptimo (resuelva el problema lo suficientemente rápido y use la menor cantidad de espacio posible), entonces el conocimiento profundo de estructuras de datos y algoritmos es crucial. Las estructuras de datos le enseñan a elegir el dispositivo de almacenamiento óptimo para el problema correcto, mientras que el análisis de algoritmos lo ayuda a encontrar soluciones óptimas en general y a comprender por qué algunos algoritmos son mejores que otros. Ser crítico con tu trabajo viene aquí.

Por lo tanto, puede ser totalmente un ingeniero de software sin un conocimiento profundo de DS y Algoritmos, pero eso no siempre sería lo mejor a medida que los proyectos se hacen más y más grandes. El error de optimización más pequeño puede costarle mucho a largo plazo, por lo que le sugiero que aprenda el análisis de algoritmos y fortalezca su conocimiento en estructuras de datos. Aprenderás muchas habilidades útiles a lo largo del camino (de hecho, agudizarás tus habilidades para resolver problemas, que son las más importantes en mi opinión). Esto también le enseñará buenas prácticas de diseño:

  1. Pensando en tus algoritmos
  2. Elegir la estructura de datos correcta para la tarea correcta
  3. No apresurarse de cabeza al problema. Tomar pasos lentos hasta que lo haya diseccionado
  4. Darse cuenta de que el uso del tiempo y el espacio son importantes a largo plazo
  5. Probar su código a fondo. Aprender a hacer análisis de algoritmos significa aprender a lidiar con casos extremos.

Como sugerencia, lea Introducción a los algoritmos de CLRS. Es un buen libro que le enseña las estructuras de datos fundamentales, el análisis de algoritmos, así como algunos algoritmos geniales.

¡Salud!

20 kg de estructuras de datos y 30 litros de algoritmos están muy por encima del promedio.