Já que vc compartilhou uma pequena história, deixa eu contar a minha também :-)
Teve uma vez que eu precisava analisar um arquivo gigante. Era um formato antigo de um software mais antigo ainda, que continha basicamente dependências (similar a um package.json
). Ou seja, lá tinha descrito que o módulo A depende do módulo B, e o B depende do C, etc.
Só que o software que processava o arquivo dava erro de dependência circular, mas não dizia onde era. E como o arquivo era gigante, analisar somente "no olho" era inviável. Mesmo lendo o arquivo e gerando uma saída mais "bonitinha" e formatada, ainda era difícil detectar todos os problemas, pois era muita informação pra analisar manualmente.
Então eu acabei usando grafos, que é uma daquelas coisas que eu vi na faculdade e achei que nunca fosse precisar. Basicamente eu li o arquivo, montei um grafo direcionado (se A depende de B, criava uma aresta de A para B) e rodei um dos algoritmos clássicos para detectar os ciclos. Pronto, no fim o programa mostrava somente as dependências circulares.
Pode ser apenas um caso anedótico de uma situação rara, mas foi só pra ilustrar que os fundamentos e a "teoria chata" são importantes sim. Teve gente que não propôs esta solução simplesmente porque nem sequer imaginava que ela podia existir. Sabendo a base - no caso, matemática e a capacidade de abstração que ela nos dá - vc pode vislumbrar as soluções mais adequadas para cada caso. Até porque os fundamentos não mudam há décadas, muita coisa já tem pronta, e se vc não souber que elas existem vai acabar reinventando a roda sem necessidade...