Debo confesar que no era tan fuerte en estructuras de datos cuando me gradué de la universidad. A lo largo de las ubicaciones en el campus durante mi graduación, he sido testigo de que la mayoría de las grandes empresas de tecnología como Amazon, Microsoft, etc. se centraban principalmente en las estructuras de datos. Parece que las estructuras de datos son lo único que esperan de un graduado.
Para ser honesto, me sentí mal por eso. Escribo buen código. Sigo patrones de diseño estándar de codificación, sí uso estructuras de datos pero a nivel superficial como en las API expuestas de Java como ArrayList, LinkedList, etc. Pero las compañías generalmente se enfocaron en los aspectos complejos de las Estructuras de Datos, como la manipulación de la memoria basada en punteros y las complejidades de tiempo.
Probablemente debido a mi fondo Java, en aquel entonces, entendía la eficiencia y la lógica del código solo cuando se hablaba en términos de Programación Orientada a Objetos como objetos, instancias, etc. pero nunca profundizaba en el nivel de bits y bytes. No quería que la gente me mirara por este déficit de conocimiento en Estructuras de datos.
Entonces, ¿por qué todo este énfasis en las estructuras de datos?