4 ms·
The Elements of Computing Systems ("From NAND to Tetris")
- silentbicycle 16y agoI just got this book a couple days ago. I didn't have a chance to look at it until today because I was off at ErlangCamp, but it looks really good. The first chapter starts with logic gates (NAND, XOR, etc.), and then adds an emulated chip, than assembler for it, then a VM built on it, then an OS and a compiler for the VM. The course is designed to tie together the whole CS stack, whose pieces tend to get discussed in isolation. Some of the coursework is online, and it would probably be really useful to those of us who are mostly learning CS through self-study.
- cadr 16y agoThe other nice thing is that, while each chapter builds on the last, you don't have to do them in that order. For example, you build your compiler to compile for the virtual machine you build, but they provide a VM to use also. This way, if you have build a computer from scratch before but haven't built a compiler, you can do it in that order.