I recommend the associated book[0] to everyone who asks me about programming book recommendations. The book arrives, and you are shocked at how small it is, just a few hundred pages. If you follow all of the exercises, you get an understanding of how logic works inside of processors (logic gates, adders, etc.), how machine code drives them, how assembly maps to machine code, how a basic virtual machine language (like the JVM) can compile to assembly, then how a higher level language is designed and compiled to the VM.<p>After doing all of this, you make Tetris in the high level language. It's a badass book, super well-written, and what I consider an essential text.<p>[0] <a href="https://www.amazon.com/Elements-Computing-Systems-Building-Principles/dp/0262640686" rel="nofollow">https://www.amazon.com/Elements-Computing-Systems-Building-P...</a>
I can't recommend this book enough. I read it around 9th grade and I've never looked at computers the same. It gives the reader confidence in understanding how these magical machines work from top to bottom. I am seriously emphatic about this book whenever friends ask about how computers work in the slightest. I'm so glad to see it frontpaging HN because of what this book taught me; I hope others will see it here and find it as great as I did
Previous discussion from a few years back:
<a href="https://news.ycombinator.com/item?id=5888705" rel="nofollow">https://news.ycombinator.com/item?id=5888705</a>
BTW: Just saw this was a duplicate by clicking 'past'. I had searched by URL and turned up 0 results. Next time, I'll try to remember to search by page name.