Devo confessar que não fui tão strong em estruturas de dados quando me formei na faculdade. Ao longo das colocações do campus durante a minha graduação, testemunhei que a maioria das grandes empresas de tecnologia, como a Amazon, a Microsoft, etc. concentraram-se principalmente em estruturas de dados. Parece que as estruturas de dados são a única coisa que eles esperam de um graduado.
Para ser honesto, me senti mal com isso. Eu escrevo bom código. Eu sigo padrões de design padrão de codificação, eu uso estruturas de dados mas no nível superficial como em APIs expostas Java como ArrayList, LinkedList etc. Mas as empresas geralmente focam nos aspectos intrincados de estruturas de dados como manipulação de memória baseada em ponteiro e complexidades de tempo.
Provavelmente por causa do meu background Java, naquela época, eu entendia a eficiência e a lógica do código apenas quando falava em termos de Programação Orientada a Objetos como objetos, instâncias, etc., mas nunca detalhava o nível de bits e bytes. Eu não queria que as pessoas me desprezassem por esse meu déficit de conhecimento em Estruturas de Dados.
Então, realmente por que toda essa ênfase em estruturas de dados?