Bunkobons

← All books

Code: The Hidden Language of Computer Hardware and Software

by Charles Petzold

Buy on Amazon

Recommended by

"I picked it because it tells you how a computer works. A lot of times, people think that the monitor is the computer. I don’t know how common of a misconception that is, but it is definitely one! This book talks about all the chips and the gates, and it goes from a very low level all the way up. It gets you to use your imagination to virtually build a computer. It’s easy to read, you can lie down on the couch and enjoy it—it’s not so much of a textbook. It demystifies the magic of a computer and what it is. There is no theory involved, rather it presents the components and how they come together. Exactly. If you don’t want to learn how to code but still want to learn what a computer is and a little bit of history behind it, this is a very good book. It goes all the way from the chips that make up the computer, up to the peripherals like the screen and keyboard. The details of how we build computers haven’t changed since Petzold wrote the book. But the size of things has changed! Yes, the first book tells you about the hardware. Then if you want to learn how to program, you’ll need to learn a programming language. To do this, you don’t have to use a book, there are many tutorials online. The first reason is that more people want to learn how to program, and languages like C/C++ and Java are cumbersome, so the syntax is not as easy to understand. What makes Python interesting and easy to learn is that it’s like a rough translation of English into code. You’re speaking this sort of broken English, and if you read Python code out loud, you can often tell what’s going on, which is nice. In Python you also don’t have to declare types of variables, as you’d have to do in C/C++ or Java; that makes it even more accessible. You don’t have to think about that aspect, the language does it for you. Having eliminated these annoying little things is what makes Python enjoyable to everyone. “It’s tough to understand that an algorithm is just a recipe, and even tougher to come up with new recipes yourself” The other reason is the push towards data science , and generally working with a lot of data. It makes Python nicer to use, because it’s close to languages like Matlab or R. With Python, you can write easy and quick scripts, without too many pesky language details. A lot of people who are not computer scientists or programmers want to get into this field of data science and analyse the data that’s coming their way. Usability makes Python a very attractive language. Python is the easiest to learn, and is enough if you’re not going to work in the field of computer science and programming. Beyond that, Java is the other big one that I would recommend, and then C++. You have a lot more control in those languages and your code becomes much more efficient. If you’re dealing with a critical application like flying an airplane, you would not want to write that software in Python! There’s no right or wrong way to teach programming, but one specificity is that I don’t actually get into code before chapter 4. I focus on getting the reader to understand what computer science is, and getting their head around that way of thinking about things. “What makes Python interesting and easy to learn is that it’s like a rough translation of English into code” One of the earliest chapters is “principles of learning a programming language”, the fact that you only do what you’re told to do. As humans we can infer things; if someone tells you to make dinner, you know that means going to the kitchen, taking pots and pans, using ingredients, etc. But if you said “make dinner” to a computer, it wouldn’t know where to start. So I’m trying to get readers to understand that a computer needs very specific commands, because it doesn’t know how to infer anything. Then the book goes through learning Python, while continuing to stress those points along the way. It’s funny you should say that. When I started thinking about this interview and the books I would choose, my first reaction was that you almost don’t need to read books anymore. It’s much easier and quicker to search online. When you have a question, chances are that several people already asked and answered it on sites like StackOverflow. Books can’t compete with that. What you can get out of programming books is the thought process behind the ideas. Language takes a back seat to the concepts presented, in the sense that ideas in a book should be universal to any programming language. They should be relevant to beginners as well as people who have been programming for 20 years, and as relevant today as when people started programming. I tried to focus on books that present this: not books that are language-specific, but books that present ideas you should be aware of, no matter your programming background and what year this is."
Computer Science and Programming · fivebooks.com