Thank you for taking your time out for writing a response Hussein. But I do not completely agree with what you said. I agree that we are not balancing the trees in our real life basis, but knowing the fundamentals gives us a lot more perspective on how the problems are being solved (btw you said no one gives rat’s ass about difference between hashes and arrays, but they are part of even simplest of programs, so these basic data structures definitely deserve some attention). It gives you a lot more power to solve some real complex problems in easier way.
And there is no excuse of not knowing the fundamentals even if you need “solutions that were due yesterday”. In my professional experience, I noticed that guys who had all their basics covered, came up with much more efficient and out of the box solutions and that too in quicker time. And as you said “Academic boring definitions and best practices might be useful for the top notch bleeding-to-death next year tech” — Well at some point we all would want to/would be expected to create top notch bleeding-to-death next year tech right?
And when that time comes, we should rather be prepared than sorry.