This post popped up on my twitter feed today, and it’s not the first time I’ve seen it floating around. I understand and agree with the author’s thesis - programming is definitely not math and you don’t need one to understand the other. There are some great points made about how programming and CS have evolved over time and how the tight link between math and programming is growing increasingly archaic.
However, I understand the confusion that the author addresses, because I’ve always felt that being a mathematician is the reason I’ve found programming easy. I’ve been steeping in the idea of a “function” since I was in 10th grade. I understand if/else statements and conditionals because I know how to construct a logical proof. I understand objects and properties and methods because I have dealt with sets, mappings, and graphs. Of course, these concepts exist in other disciplines also, but there is definitely some overlap here; the folks who say you “need” math to program are naming a real resonance between the two disciplines.
All that needs to happen here is a better stating of the way that math and programming are related, which can be found within the very same blog post.
I wholeheartedly agree that programming is a language. So is math. Both programming and math are symbolic languages with a similar grammar, and so speaking one allows you to speak the other with greater ease.
Why does this matter? The post above debunks the “math requirement” for programming. The implied message: anyone can program! I’m totally on board with that message, but I want to go even farther. I’d also like to debunk the “numbers requirement” or “nerd requirement” for mathematics. If we think of programming and mathematics as language skills, learnable by anyone who can learn language, both become more accessible. The message, part 2: anyone can do math! It’s a win-win.