Tienes 2 preguntas en una:
- ¿Por qué son importantes las estructuras de datos?
- ¿Planeo con anticipación todos los cálculos al programar, utilizando las estructuras de datos correctas todo el tiempo?
Pues resulta que sabes el número 1 de los primeros cursos de informática. Algoritmos + Estructuras de datos = Programas.
Pero eso no es suficiente. La mayoría de los cursos de informática suponen que conoce todos los requisitos de antemano, pero la mayoría de las veces, no.
- ¿Cuál es el algoritmo de programación del juego para una temporada regular de la NBA?
- ¿Qué significa limitado como sufijo para una empresa?
- ¿Podría haber un límite superior en la 'inteligencia' de una IA?
- ¿Cuál es el mejor algoritmo para encontrar números primos? ¿Cuál es su sintaxis?
- ¿Por qué el cifrado de la función Algoritmo de hash no puede transformar el texto cifrado en texto sin formato?
Lo que significa que usar buenos algoritmos y buenas estructuras de datos es casi imposible, ya que pronto se dará cuenta de que no puede ser óptimo para todas las operaciones requeridas, o al menos, es demasiado difícil.
Por ejemplo, la mayoría de las veces los desarrolladores optimizan manualmente cada diseño y cada pieza de código, lo que hace que sea muy difícil distinguir los requisitos del diseño. Incluso algunos libros confunden ambos: la ingeniería de software orientada a objetos de Ivar Jacobson es uno de los peores delincuentes.
No solo eso, sino que todas las decisiones de diseño de los desarrolladores están equivocadas, y dado que todas están mezcladas con los requisitos no escritos en una gran bola de lodo, resulta imposible deshacerlas, y esa es la verdadera razón por la que la mayoría de los proyectos de software fallar.
Entonces, sí, las estructuras de datos son importantes, pero conocer sus requisitos, escribirlos, escribir todas las decisiones de diseño, eso es aún más importante.