Full description not available
R**.
Thrilling although kind of falls apart at the end, but still well worth the experience
This book is an unparalleled companion in explaining, piece-by-piece, how you can build a somewhat realistic computer from the ground up in a way that is tremendously satisfying. However, it does kind of fall apart at the end, and it's difficult to finish without outside resources. Still, as a concise guide, it is unparalleled, and I am extremely happy I went on this journey, even if it kind of runs out of steam at the end.This book is simply a guide to the project on the website of the same name. Completing the project is the primary intellectual profit of this book.In chapters 1-5 you build up the hardware of the computer, from logic gates to CPU and RAM. These chapters are a breeze and take maybe 5 hours max. Easy and enjoyable.In chapters 6-11, you build up the compiler to translate from a high level language (Jack) to machine code. The difficulty rapidly ramps up at this point. The assembler (chapter 6) probably took me 3 hours, but wasn't difficult. Chapters 7 and 8 (the virtual machine translator) are where it gets really hard. Each chapter took me 10 hours, since you're translating from VM code to assembly. Programming in assembly is a pain in the ass no matter how easy you make the assembly language. In chapter 9-10, you build the lexer and parser of the front-end of the compiler. At this point, the book gets even harder. It gives you almost no theory on how to actually build it. I needed to refer to a compiler book to help me along. I would say chapter 10 took me 20 hours alone.Finally, chapter 11 (where I stopped), it gets nasty. You're writing a syntax-directed translator compiler. You now write the code generator from jack to VM, and there's a lot of OS functions that it keeps calling whose functionality hasn't even been explained yet. After writing a skeleton translator (in about 10 hours), I figured I'd gotten most of what I can out of the book and stopped.In chapter 12, you write a whole bunch of OS library functions in jack. There's very little guidance.Overall, even though things fell apart for me at the end, I still learned so much, and I don't know where else I could have gotten this experience. It was fun (and frustrating), but I feel like I understand computers so much better now.Highly recommend. I would estimate it takes 10 hours to read the book and 50+ hours to do the project (to the point that I did it, chapter 11).
P**L
Excellent Textbook for Self-Starters
I wanted to learn some programming languages and concepts to make my Technical Writer resume meatier. Problem was, any attempt to learn Python, SOAP, or MySQL just lead me to ask a million questions about how this stuff actually worked beneath the straightforward, high-level application stack: How does this code interact with the OS? How do lines of text get turned into binary instructions? How does all this abstract graphics, text, and data actually meet up with electrical signals and semiconductors? It has to at some point, right? It's not magic, right? (And so on).I grabbed this book because working from the bottom up, from NAND gates to a functional OS, sounded like the best process to learn. I'm on Chapter 6 right now (about half way through the book), and I know I've made the right choice. The best part of this course is that you actually build every single layer of the computer architecture using their free suite of visualization tools. This means that, every time you start a new chapter and take the next step up the ladder of the computer hierarchy to the place you actually live in (i.e. an operating system with a graphical user interface), you understand exactly why you're building what you're building--and how exactly it relates to all the layers beneath it.I'm not a mathematics guy (I spent seven years in college studying literature; hence why I need this book!), but with some perseverance, several hours spent with a constantly furrowed brow, and a not insignificant amount of cursing, I've been able to puzzle through every single one of the tasks set out by the book so far. If you have some natural curiosity and critical thinking skills, you'll be able to get through this book no matter how non-technical your background is. What's especially helpful is that there are resources outside the book itself: The online forums for this book are (as of April 2014) very active, and you can either wait a day or two to have an expert look at your code and see all the various ways you're screwing up, or you can search to see if your particular question has already been answered (it usually has).It's not all wine and roses, of course. The UI of the software suite is pretty rough, with a few apparent bugs (I'm using them in a Mac OS, so that might be the root of some of the problems). Also, the hardware description language (HDL) you use in the first half of the book often seems unnecessarily finicky (I hope you didn't put "and" instead of "And" somewhere in your 100 lines of code...). And, though the book mostly follows a path straight up the latter of abstraction, Chapter 4 jumps up to the software (assembly code) level, then follows with Chapter 5, which drops back down into the hardware of the CPU and memory. This structure actually kind of makes sense once you get through both of these chapters (there may be no other way to do it, now that I think about it), but it's pretty disorienting trying to get through the lower layers of software when the hardware is still sitting around in pieces, only half explained. Some context/additional explanation at the beginning of Chapter 4 would have helped with this.Also note that, when you hit Chapter 6, you'll need some prerequisite high-level coding/scripting experience. It doesn't really matter what language you know; you just need to know one. If you're completely new to coding, I would recommend learning some Python via Codecademy; it'll probably be a month or two detour from the book (depending on how fast you work), but it'll be worth it.In summary, I can't think of a more efficient way to get a thorough overview of Computer Science than this book. Any shorter of an explanation won't really make sense; any more in-depth of an explanation would probably lose everybody but the people getting college degrees in this stuff. For new students to the field, or for amateurs with an interest, this book hits the sweet spot.
J**É
Excelente Livro!
Excelente livro, mostra passo a passo como construir um computador do "zero" em todos os níveis e ainda tem material já desenvolvido no site deles.
L**N
Good book
Good book but recommend getting the newer version now in 2022.
G**O
This is great winter-time geek fun!
While the price of this book may be prohibitive to some, the authors have posted the first half, along with related coursework, for free online. It's a fantastic journey through the design and implementation of a simple yet functional computer. While the authors provide the skeletal architecture, you must be very resourceful to work through each chapter and project; you get to act as designer and engineer as you build the most rudimentary of circuits, then glue them together with abstract logic to produce high and higher levels of functionality into a variety of chips. Once you build the hardware (virtually) you continue to build the tools to program and use the computer, such as an assembler a compiler and an operating system.
Y**K
Addicting in a nutshell
I am a hobbyist programmer and this book answered a lot of my questions about why code works the way it does.The explanation is lucid, the software suite is updated and easy to use. It's a truly rewarding experience.
T**1
Great if you like a challenge
Great if you like a challenge, opens your eyes to the foundations of computing. It is a bit tricky when you get stuck though, but you have to persist or just come back to it later with fresh vision.Don't be hard on yourself if you can't do it. I've had this book for 5 years and still I'm only on chapter 6. It's probably only suitable for undergraduates or graduates, but I might be wrong there I'm not sure.Very fun and unique book. The material that comes with it is essential. You can't really read this book without working through the exercises. Would be good to know other books like this that get you building things and feeling accomplished.
Trustpilot
3 weeks ago
1 month ago