<story><title>“Code” 2nd Edition</title><url>http://www.charlespetzold.com/blog/2022/06/Announcing-Code-2nd-Edition.html</url></story><parent_chain><item><author>unwind</author><text>Uh, 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.</text></item><item><author>scop</author><text>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 &lt;i&gt;contextual understanding of how computers worked&lt;/i&gt;. Without having that knowledge, I think my career would have been vastly more difficult and frustrating.&lt;p&gt;While I understand many “get started programming” books&amp;#x2F;tutorials put an emphasis on getting coding asap, I really had to stop and learn about &lt;i&gt;computers&lt;/i&gt; 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!).&lt;p&gt;Thank you Mr. Petzold!!!</text></item></parent_chain><comment><author>percentcer</author><text>I&amp;#x27;m not the OP, but some personal examples:&lt;p&gt;- why is little-end &amp;#x2F; big-end a thing?&lt;p&gt;- why is volatile memory called volatile? and why can&amp;#x27;t we just keep that data around?&lt;p&gt;- what can a 64-bit computer do that a 32-bit computer can&amp;#x27;t?&lt;p&gt;- what do people mean when they say &amp;quot;code is data&amp;quot;&lt;p&gt;- what&amp;#x27;s an instruction, really?&lt;p&gt;- how did people program computers before they had screens?&lt;p&gt;- how did people program computers before they had keyboards?&lt;p&gt;- why is it called 2&amp;#x27;s complement?&lt;p&gt;And others that I can&amp;#x27;t recall right now. It&amp;#x27;s a fantastic book and I recommend it to everyone who is the slightest bit interested in how computers work.</text></comment>
<story><title>“Code” 2nd Edition</title><url>http://www.charlespetzold.com/blog/2022/06/Announcing-Code-2nd-Edition.html</url></story><parent_chain><item><author>unwind</author><text>Uh, 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.</text></item><item><author>scop</author><text>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 &lt;i&gt;contextual understanding of how computers worked&lt;/i&gt;. Without having that knowledge, I think my career would have been vastly more difficult and frustrating.&lt;p&gt;While I understand many “get started programming” books&amp;#x2F;tutorials put an emphasis on getting coding asap, I really had to stop and learn about &lt;i&gt;computers&lt;/i&gt; 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!).&lt;p&gt;Thank you Mr. Petzold!!!</text></item></parent_chain><comment><author>scop</author><text>That&amp;#x27;s a great question. I started out as a programmer having been a casual computer user through my childhood&amp;#x2F;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&amp;#x27;s a couple of things off the top of my head:&lt;p&gt;- The terminal was completely foreign to me. Why is it structured so? How are permissions set? Octal?!?!?!&lt;p&gt;- Why do I have to specify a type in a programming language?&lt;p&gt;- What&amp;#x2F;why are all these special characters used in programming?!&lt;p&gt;- Why is a program structured in the way it is? What are the levels of abstraction working in a given program?&lt;p&gt;- What happens when I run&amp;#x2F;compile my program?&lt;p&gt;I would also say that learning a little bit of C also really helped illuminate computers for me. Not only in the sense of &lt;i&gt;how&lt;/i&gt; 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.</text></comment>