I graduated in 2010 with a ECE degree and learned all of this. Essentially all of that material is covered in CMU's 15-213 "Introduction to Computer Systems", which is taken by a huge proportion of the undergrad CS & ECE program.
However, my first job out of college was doing low-level optimization at a cellular silicon provider, but now I work on the web since it seems like most hardware companies are bigger and have more suburban locations (neither of which is my preference), and if you're working hardware you can't work remotely. Hardware companies also aren't necessarily the best software organizations.
Comments
I graduated in 2010 with a ECE degree and learned all of this. Essentially all of that material is covered in CMU's 15-213 "Introduction to Computer Systems", which is taken by a huge proportion of the undergrad CS & ECE program.
It looks like book from the course, which covers all of that material, is pretty widely used, too: http://csapp.cs.cmu.edu/public/adoptions.html
However, my first job out of college was doing low-level optimization at a cellular silicon provider, but now I work on the web since it seems like most hardware companies are bigger and have more suburban locations (neither of which is my preference), and if you're working hardware you can't work remotely. Hardware companies also aren't necessarily the best software organizations.