5 ms·
This book was absolutely essential when I was first sinking my teeth into software programming. Things that seemed either arbitrary or completely mysterious sud
by scop 4y ago
This book was absolutely essential when I was first sinking my teeth into software programming. Things that seemed either arbitrary or completely mysterious suddenly made sense now that I had a contextual understanding of how computers worked. Without having that knowledge, I think my career would have been vastly more difficult and frustrating.
While I understand many “get started programming” books/tutorials put an emphasis on getting coding asap, I really had to stop and learn about computers before I could start coding in a well rounded way (and that’s coming from a WebDev, who doesn’t even have to deal with low-level stuff too often!).
Thank you Mr. Petzold!!!
- Breza 4y agoI'm a big fan of teaching the fun part first, but that really ought to be followed by learning the boring stuff. I think of it as teaching the What followed by the Why. Too many programs seem to stop after the first part.
- SkyMarshal 4y agoSame. I think some of us learn best by having a map of the territory and an understanding of how everything all fits together first. Having that better helps us deep-dive into and master specific areas. This one single book provides that map.
- _jal 4y agoAbsolutely. I tend to be mystified and lost without some way to place what I'm doing in some larger context, even if that context is super-vague or wrong in technical ways. Had several teachers who utterly refused to provide that, repeating "it'll all make sense eventually." Well, it did, after I got better teachers.
- scop 4y agoThat's a great observation about teachers. I was fully convinced in late middle school that I was an idiot who had no hope to achieve good grades or a grasp of subjects. Then suddenly I found myself getting As in high school without a real change in effort/routines. I attribute that in large part to learning the "why" behind various subjects via new teachers.
- unwind 4y agoUh, as someone with too many years of programming behind me to imagine that, can you mention some concrete things that you found arbitrary or completely mysterious, and that the booked cleared up for you? Thanks.
- scop 4y agoThat's a great question. I started out as a programmer having been a casual computer user through my childhood/teenage years. I never took apart computers or ventured into how they worked. Thus, when I decided to pursue this as a career, I had a lot of catch up to do. Here's a couple of things off the top of my head: - The terminal was completely foreign to me. Why is it structured so? How are permissions set? Octal?!?!?! - Why do I have to specify a type in a programming language? - What/why are all these special characters used in programming?! - Why is a program structured in the way it is? What are the levels of abstraction working in a given program? - What happens when I run/compile my program? I would also say that learning a little bit of C also really helped illuminate computers for me. Not only in the sense of how they work, but also why programs use their current syntax. For example, for developers who look at Javascript for the first time seeing parenthesis, colons, curly brackets, etc all make an initial sense: they seem familiar. However, to somebody first diving in all of these characters seem totally arbitrary! Having gained a sense of how computers worked and then a very basic introduction into low-level programming, suddenly these high level languages seem much less arbitrary.
- slingnow 4y agoNone of these sound like particularly low-level concepts the book is purported to cover. Like you said, "learning a little bit of C" would probably cover most of the things you listed. It sounds like you're a web developer.
- unwind 4y agoThanks for sharing! I can (of course) understand that many of these things seem arbitrary, but would never have been able to come up with the list on my own. :)
- 4y ago
- coldpie 4y agoWish I had something to say other than "me, too." I read it sometime in high school, well after I'd learned C, and it really made me understand what was actually happening to the code I wrote. Very helpful later in my career and hobbies too, when I have to do reverse-engineering.