Hal Abelson on Math for Programmers
Seibel: So that explains why the book is the way it is. But in general for programmers, how much math and what kinds of math are important for working programmers to know?
Abelson: I don’t even know anymore. We have these arguments at MIT all the time. People say, well, there’s math. Other people say, well, what they really need to know are algebraic structures so you understand abstract data types, how you think about axiomatizing them. And then people say what you really need to know is what a mathematical proof is so you can think rigorously. And I don’t know what to say. These arguments have been going on for thirty or forty years.
Seibel: And have you ever had a position?
Abelson: Well, the last time I had a position I tended to say that they ought to be able to like a lot of math. I’ve never been partial to the thing that says they need to be able to do proofs, but that’s just taste. And again, these days the main thing you try to understand is abstraction. Maybe that’s related to proofs. You need to be able to say look, here’s this thing and here’s the rules for how it works. And then I don’t need to look below that layer most of the time in order to get started. And there are people who really get hung up on that.
Hal is known for, among other things, co-authoring perhaps the most influential programming book of all time, Structure and Interpretation of Computer Programs. The entire interview is here.