If you ignore the theory, you end up with sub-optimal software that only kinda works (who cares about studying the theory and actually verifying those pesky edge cases) and is slower than it should be (who cares about advanced data structures, just use arrays and hash tables everywhere).
...literally any time you are performing a computation on a collection of items and care even the least bit about performance?
It sounds like your bar for what makes "excellent code" simply excludes performance issues completely. That's fine if you're talking about scrappy startup devs who move from MVP to MVP. But when it comes time to turn an MVP into an honest-to-goodness P, you can't totally ignore the efficiency of your code. And you can't write efficient code without understanding the basic strengths and weaknesses of the data structures your programming language implements.