I did 11 of the 12 chapters of this. Each chapter is has a practical exercise. You do need some programming experience. Really teaches you how a computer works buy building on in a high level description language (processor, memory etc all from nand gates). Then you build an assembler for it. Then a compiler.
1. "How Computers Work" by Ron White - it looks like a children's book, but it provides a lot of good information about components of modern digital technology. I personally learned quite a lot from this book. https://www.amazon.com/How-Computers-Work-Evolution-Technolo...
2. A+ Certification Guide - provides practical, hands-on info on how a modern Windows PC operates, from both hardware and software perspectives. It's a long book geared towards someone who will build and repair computers professionally, but you don't have to read it cover to cover. https://www.amazon.com/CompTIA-Certification-Eleventh-220-11...
(my background: phd in computer engineering and lots of real world experience building and repairing computers and computer networks).
It takes you from individual logic gates to assembler to Tetris, all as a hands on course.
As a CS grad, I found this a truly amazing eye-opener on how it all actually _works_.
https://www.youtube.com/playlist?list=PLowKtXNTBypGqImE405J2...
PS: Yeah, I know, it's not a book...
https://www.elsevier.com/books/computer-architecture/henness...
J. Clark Scott
https://www.youtube.com/results?search_query=how+computers+w...
Video > Print