The Elements of Computing Systems: Building a Modern Computer from First Principles
G**Y
The most amazing book on computers that I've ever read!
A book for the laypersons and those self-taught individuals who have a strong curiousity on how the hardware and software of a computer work, but have never really ventured into those deeper waters. If you fit that description, then you'll be rewarded in this adventure of "Nand to Tetris" as you go through this book. For those in college that are getting into Computer Science, this book will serve you well for your upcoming classes.Note, like another review mentioned, you will need internet access and computer to download the accompanying material and also access the forums (you will need the forums if the material is new for you). Also, on Coursera, there are lectures that are helpful, I especially enjoyed the "Perspectives."As a layman, I bought the first edition quite some time ago and was only able to get to Chapter 4. It was a bit overwhelming and I didn't fully understand the material, so I wasn't able to build the computer. This edition and the accompanying lectures on Coursera have filled the gaps for me. They've updated the text and the lectures to make it more accessible to those who are not in the hardware or software industry.It is pretty concise and yet explanatory without being overly wordy. They try to use words and explanations to those unfamiliar with the terminology. That is one of the reasons that I really like this book, as I have read similar books, but they use unfamiliar terminology which make it difficult to follow for me.Think about it. You are setting out to virtually build, learn and understand a computer starting with a Boolean NAND gate to the Tetris game. This book more than any that I've seen can pull this off. It is written for those who do not yet understand this computing eco-system. They use a simpler and yet elegant, real world computing hardware and software architecture.You will spend a lot of time! I cannot stress this enough. For those who are new to hardware and software and are of average intelligence like me, you will spend a lot of time! But if you also wanted to understand the entire computing system, it will be very rewarding to you.It is helpful if you've had exposure to Boolean logic or binary numbers and counting, otherwise you will need to spend some time and work to get familiar with it. You will need to understand it because you will be using a simplified HDL code to build the different logic gates. You will build the components and eventually the ALU which makes up the heart of the CPU. Building the ALU is challenging, expect to spend some time there.Another challenging but rewarding aspect was in completing the build of the computer hardware because you will also learn Assembly language. This was a another great section, because you get to see registers in action. You will have to understand Assembly language and the usage of registers and the HDL code, but they've simplified as much as possible so it is attainable, but it could require a lot of time if these topics are new, it is worth the effort!The authors have made this very accessible in their updated 2nd edition and lectures I've found. What is incredible is the simplicity of the machine language, it is basically a bunch of simple operations and jumps, who new?! Yet from this simplicity rises all the amazing things that we do day in and day out on our computers and iPhones. The software is equally amazing. You will learn about compilers and translation, and also the idea and structure of the software stack. If you've ever gotten deeper into software, you will hear about this, but now you'll know more specifically about it! I would strongly recommend having some software programming exposure, preferably object-orientated, even just a little will be helpful. You may be able to get by without it, but it will be very helpful.If you go through the book, the Coursera lectures, the projects in the book and utilize the forum, and you have a strong interest in understanding the entire computer eco-system, then you will be rewarded and find yourself with a lot of 'aha' incredible moments! Furthermore, it is a great springboard into more complex and rich books that were previously inaccessible to you. It is quite a remarkable journey!
R**T
I enjoy the projects in this book - building a computer via software emulation from the ground up
The book is really what is advertised - the chapter 1 project literally starts you off with a single Nand gate to be used as a basis for building a core set of logic gates and you'll eventually work your way up to developing your own apps using a java-like language.The authors have also provided a great set of simulation tools to help you along the way as you work through the 6 hardware and 6 software projects - a hardware simulator, CPU emulator, Assembler and a Virtual Machine emulator.
F**.
Ótimo conteúdo
O conteúdo é indiscutivelmente maravilhoso. O produto embora tenha as páginas bem impressas e claras, fica devendo na capa que é uma porcaria, esse foi o motivo de eu não ter dado 5 estrelas.
S**L
Good printing quality
Good
H**T
An amazing experience
Together with the online course it is a wonderful experience. It really taught me what it promised: from the most elemental building block, a NAND gate, I was able to build a working, fully functioning, albeit heavily simplified computer (at least virtually). Furthermore, I managed to create a high-level compiler, and did some wonderful projects.Understanding every single detail of how computer programs run on chips and do their magic, to the last bit and the last wire, is truly a breathtaking journey. If you are interested even a little, I highly recommend this book, together with the online lecture.
Trustpilot
3 weeks ago
1 month ago