10 ms·
One of my favorite books of all time. It taught me how computers work from the ground up. Somewhat similar to nand2tetris: https://www.nand2tetris.org/book http
by guzik 4y ago
One of my favorite books of all time. It taught me how computers work from the ground up. Somewhat similar to nand2tetris: https://www.nand2tetris.org/book https://www.nand2tetris.org/book
- AndrewDucker 4y agoI'd recommend that pair of books to anyone wanting to really understand computers.
- xmonkee 4y agoI've already "completed" (and loved) nand2tetris. Would Code still be good to read?
- AndrewDucker 4y agoIt's very different, and useful more from a general approach to what computing is. The two complement each other.
- FearlessNebula 4y agoWhich order would you read them in? I assume NAND to Tetris is more interactive exercises?
- AndrewDucker 4y agoIt is. I'd tend to start with Code, but it would work either way
- coletonodonnell 4y agoI got the nand2tetris book and such and am about to start. Why would you recommend Code first over nand2tetris in your opinion?
- AndrewDucker 4y agoReally really don't worry about it. One is not a precondition for the other. "Code" is fascinating for talking about the history and the "Why", while N2T is excellent for giving you the hands-on practice at building one yourself.
- jackosio 4y agoI did the nand2tetris on Coursea, it's what started my passion for software, I was just tinkering and hacking before that, did that course and knew without a doubt it's what I want I want to dedicate myself to.
- wildmanx 4y agoSometimes I'm wondering whether this is the future, or whether we (as an industry teaching the next generation) are taking shortcuts that will hurt us in the long run. Honest question. I don't have the answer or am insinuating anything. What do I mean? Well, I also acquired all that knowledge, but through a formal university CS degree. Before starting my degree, I was also "just" tinkering and hacking. I had been "programming" for like a decade before that, different languages, solving some problems that I found interesting or practically useful. During my degree though, I got all the details. I had full courses on hardware (transistors and upwards, all the way to CPU architecture), on mathematical logic, on compilers, on programming language paradigms, on algorithms, on complexity theory, on formal methods, in-depth on C++, Java, Prolog, computer networks, databases, cryptography, real-time systems, statistics, and a few more. This also allows me to in-depth describe a "nand to tetris" process, but obviously my education has been much broader than that. Was it necessary to take that 6-year degree? Would that have been equally well covered by a bunch of Coursera online classes and then a few years of work experience? I really don't know. I have a small sample set of colleagues who are self-taught and though ambitious are sometimes lacking broader perspective and in-depth understanding of CS foundations (that includes my boss), and of colleagues who went through a similar degree and do have a similar perspective as me, some of them not really remembering what was taught (or not caring), so those samples go both ways. I don't really know anybody without a formal degree who has the full fundamentals groked though. That would let me to conclude that the degree is a good thing, but frankly my sample is too small to tell.
- personalidea 4y agoAs a self taught dev, I can confirm that observation. I did not spend six years of my life studying all those details that, though not crucial to my day job building a JS Frontend, might sometimes help with the big picture decisions. And I am fully aware of all the things I don’t know. Would I like to study those details? You bet. But I came to that realization in my late thirties, after having changed careers twice, kids, marriage, the whole nine yards. I have responsibilities and am lacking the time and free headspace to sit down and study. So a course on coursera or Udemy or whatever it is. And little by little I am patching my CS knowledge. Will it ever be as complete as that of someone who started programming in their teens and went straight for the degree? Definitely not. So I agree, if you have the luck and the opportunity to be in the situation to have a chance for a degree and take it, it’s a good thing. At the same time, I think that it is a good thing that software development/ working with computers in some shape or form is open to people from many backgrounds, similar to the creative fields, because kn the end it is important that you can do your job, not necessarily how you acquired those skills. Because it enriches the industry. Bringing all kinds of life experiences to the table is a good thing. It is a team sport after all. And T-shaped isn’t limited to software skills. E.g. I might not have studied CS, but having taught adults in foreign languages for years gives me presentational and pedagogical skills that help me explain the things I do know to our junior devs, because I know how learning processes work. So I would encourage a more optimistic view on the situation. Not asking what are your colleagues lacking, but asking what else do they know? What did they do, while you were studying CS.
- cebert 4y agoI am hoping someone here can recall the name of the book that got me interested in computers and Computer Science. It was a Microsoft Press book that taught fundamentals of computing. The book started with discussing relay switches, and progressed to how one could build computational units using them. This book was available at my local public library in the mid 90’s.
- milkey_mouse 4y agoThat’s almost certainly (the first edition of) the book in this post.
- comprev 4y agoDid it involve a story about kids communicating at night with flashlights? Yup, that's the first edition.
- cebert 4y agoYes, ok thanks that’s the one. I’ll have to buy the first edition. It was very impactful to me.
- abnry 4y agoI had a very similar experience. I read the book from the library as a kid. I originally thought it was to do with ciphers, as I was into codes then. It introduced me to the programming section of the library, and I expanded to the math section from there. A couple of STEM degrees later and here I am.