Typically learning programming involves learning syntax, patterns and algorithms. Are there resources to learn it from ground up ? For instance why C is structured the way it is and how cpu and memory can be optimized by the program etc ?
This is where the value of an undergraduate degree comes in. They provide a structured tour across the entire stack. My masters was largely a second tour in greater depth
Most software today is so high level you'll never get close to that. Maybe in graphics or embedded systems plus electrical engineering and and computer systems architecture?<p>There's still a lot of stuff on YouTube, including the open university course stuff from a decade ago, Khan Academy, etc. And of course Coursera more recently, etc.<p>The field is probably growing faster than you can learn though, so at some point you just gotta choose a part to specialize in, and even then it's probably several lifetimes worth of material.
Compilation of courses I made for self study <a href="https://github.com/Lesabotsy/bootcamp">https://github.com/Lesabotsy/bootcamp</a>