http://www.charlespetzold.com/code/
He starts with electricity and builds all the way up to modern computers. It isn't a hands on guide, but it is a very entertaining read.
As the author states, it can be hard for CS students to see the forest for the trees among all the computing topics. I know that while I was learning these topics individually I never took the time to step back and really connect them.
With TECS you get to build each layer and define a an interface between them from logic gates to virtual machines, to compilers, to operating systems, etc. In the end you have a fully functioning computer that you have built from scratch. By removing all the "magic" from the system I feel like I have a much deeper understanding of these topics than I did before.