Posts Tagged ‘computer-science’
Jeff Atwood posted a thought provoking post that I very much wanted to disagree with. He argues that most people will not benefit from learning to code, and that coding is not at all similar to those fundamental skills (reading, writing, mathematics) that everyone should know. He’s certainly correct. Most of my friends and relatives do not know how to program anything, and they don’t suffer for that ignorance.
But the post bothered me. I don’t just enjoy programming, I enjoy teaching young people to program, and I have often told technically minded young men that it is essential that they learn programming skills. I also enjoy advanced mathematics, and I have very much enjoyed teaching calculus, linear algebra, probability, abstract algebra, and topology. Math is more fun for me than programming, but somehow … Read the rest of this entry »
This is an unusual book. The first thing to know is that it does not contain chapters that are made up of paragraphs. It is a list of problems. The only way to gain anything from this book is to do the problems. Sure you may look at the first few and think you get the idea, and feel like you are doing fine just by reading the problems and solutions and thinking about them. But it won’t be long until you realize that you have no idea what is going on, and worse, you won’t know where you lost the trail.
So don’t be lazy, if you are going to read this book, set up an interpreter, and start coding.
The second thing to know about this book is that it does not attempt to teach you the Scheme programming language. Which is good news, because you don’t really want to be a Scheme programmer. What this book does teach, however, is of interest to every programmer. Read the rest of this entry »
When programmers talk about the timeless books that will always be relevant, certain classics always come up: The Mythical Man Month, Structure and Interpretation of Computer Programs, Design Patterns, Refactoring, Code Complete, and others. Code is never mentioned in that group, and for good reason. This is not a book about programming, and it is not a book about software development.
Nevertheless, it is a book of importance to software developers. Code is a book about how computers are built to understand data and logic, and how the combination of data and logic allows for automation and computation. Read the rest of this entry »
If you are a programmer, you know that zero-indexed arrays and lists are just the right thing. Perhaps you read Dijkstra’s paper, or maybe you’ve encountered enough practical benefits to be convinced. But to non-programmers and students, zero-indexed lists seem extremely odd, and needs explanation. After all, we all know how to count, and it seems like it works OK when we start at one. What’s your good reason for starting at zero?
We have made this too complicated. While it is appropriate to have a careful answer for academic settings, we should have a casual illustration that is useful for casual inquiries. Here are my two suggestions: