Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Congrats on completing this guide.

> There aren't many comprehensive systems resources if you aren't going to college, so I had to sift through tons of different sources of varying quality and sometimes conflicting information.

The absolutely best resource you will find is Charles Petzold's Code: The Hidden Language of Computer Hardware and Software. The 2nd edition was just released.

https://codehiddenlanguage.com/



I think The Elements of Computing Systems by Noam Nisan and Shimon Schocken and the associated nand2tetris project is just as good if not better and is much more hands-on.

https://mitpress.mit.edu/9780262539807/the-elements-of-compu...

https://www.nand2tetris.org/


While these are great projects, they're for very different audiences. Code is a really well written pop-science book that goes into logic circuits. The Nand2Tetris book comments for example that:

> The HDL that we will use is documented in appendix 2 and can be learned in about one hour

which about as meaningful as saying you can learn X's syntax in an hour. Nand2tetris is a serious investment of time and if you've never done something like FPGA design (VHDL etc) or assembly, it takes a bit of getting your head around.

It's also worth mentioning Shenzhen IO as an interesting take on this (edutainment for programmers) https://www.zachtronics.com/shenzhen-io/


> While these are great projects, they're for very different audiences.

That was my point in posting The Elements of Computing Systems since it seems that the author of this post might be more interested in hands-on side of building a CPU and the software stack on top of that.

I think the authors are actually right in that the syntax of their HDL can be learned in an hour. It's more that learning how to use that syntax to build a CPU takes a good amount of time.

Thanks for the mention of Shenzhen IO. I'll check it out.


I read and loved that book however nowadays I highly recommend playing the game “Turing Complete” instead.

It does a fantastic job taking you from nand gates all the way to function calls but in a delightfully interactive way. Instead of just imagining how it all must work in ur head as u read, u get to build it.

I went so far as to build a little simd/gpu that drives an led matrix with my own cpu assembly and programmable shader language.


Thank you! Looks hardware-y and very interesting, I may well read through it at some point.


Indeed. It starts from first principles, assuming the reader doesn't know anything about computers or even electronics. The final chapters are about coding.

Your guide could actually serve as an addendum to the book. Based on the title of your guide, I was expecting something more like Code, but now having read your guide, it's more of an introduction to operating systems with a particular focus on Linux and the CPU/memory aspects. Well done.


I'm going to +1 this book but I also think this book would electrify you, as it did me:

https://en.wikipedia.org/wiki/The_Information:_A_History,_a_...


I’ll +1 this too - it’s very good and he’s a good teacher, it’s enjoyable to read.


Yes! I was reminded of this book looking at the website.

I bought it 15 years ago and my eyes glossed over the CPU arch section, but maybe I am ready now. I bought 2e recently.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: