Do you want to make websites, or work on embedded systems?
Do you need to squeeze every OK ounce of performance out of the machine running your code, or is developer velocity more important to you?
Will your code run on a single machine, or does it need to be networked/distributed?
The thing you want to make determines what the fundamentals will look like for that area of study. There isn't enough time to learn the fundamentals of everything needed to make good software across all domains. And even if there was, you would be wasting time learning all the principles that don't apply to 99% of things you would be working on at a given moment.