Programming is writing, not math
Programming (the act of putting a computer program together, independent of the problem domain) has nothing much to do with math. It is primarily about communication. It’s about us communicating with customers, with each other, and with the machine. Programming is a language skill, not a mathematical one.
Consequently, I get tired of claims that programming (again, creating code—not solving problems that are mathematical in nature) has anything to do with math. Beyond a little logic (which stems from Philosophy), a little set/graph theory, and a little statistics, I’ve never used any real math in my decades of programming unless it was required by the domain. The things that people claim math brings to programming (e.g., analytical thinking and problem solving) are part of almost every human activity, from law to carpentry to oil painting. They are not the unique purview of math or programming.
Of course, if you’re a mathematician, you will see parallels. Somebody else can draw equally valid parallels with other disciplines entirely. Programming is a lot like gardening, for example. When math is the hammer, everything looks like a mathematical nail.
Some programs do implement problems in mathematical domains, but in those cases, the math is part of the domain, not the programming process. Some programs involve dating profiles, but that doesn’t mean that dating is an integral part of the programming process.
That is, do not confuse programming (stories, TDD, coding, debugging, testing, CI/CD, software architecture, UX, etc.) with the problem domain. The domain is distinct from the programming process itself. That is, the programming part is the part we use in every program we write, regardless of the problem we’re solving. Certainly, some problem domains (aviation is often brought up) are mathematical in nature. If you have a fundamentally mathematical problem, you’ll need math to solve it, just as if you have a fundamentally social problem, like a dating site, you’ll need knowlege of dating and human social interaction to solve it. You don’t need dating knowlege to create avionics, and you don’t need math to go on a date (unless you’re dating a mathematician 😄).
So, when a programmer doesn’t have domain knowlege, they use domain experts. Those experts do not, for the most part, know how to program. Sometimes, programmers are domain experts, but not usually, and more to the point, they don’t have to be. A programmer working in a mathematical domain doesn’t need to know any math, provided that they’re working with a domain expert who does (and most mathematicians are lousy programmers—I wouldn’t let them touch the code).
Also, computer programs are not mathematical formulae, as some claim. If they were, we could prove program correctness mathematically, and we’d have no bugs. Be nice, but that’s not the current reality. People argue that you can prove correctness in the sense that the code will run, and I’ll buy that. You cannot mathematically prove that the program does anything useful or doesn’t make significant mistakes (i.e., have bugs) at the domain level.
I think this false equivalence dates back to the very early days of computing, when computers were used almost entirely to solve mathematical problems. The Babage engine was a calculator, and Ada Lovelace was a calculator programmer. That was indeed math. Modern computers are far more than simple calculators, and the problems we solve are not simple ballistics and the like. In the present, mathematical problems are only a tiny fraction of the problems we solve.
Of course, computer science—the branch of mathematics concerned with the analysis of computer programs and algorithms—uses some math (though the 1.5 years of calculus and differential equations that were required prerequisites for every CS class I took were used in exactly zero of those classes, and I’ve never used either in my work). However, I’m talking about the creation of computer programs, not the analysis of them—programming, not computer science.
So, returning to my original claim, if you want to be a good programmer, forget the math. Instead, focus on developing communication and writing skills. That’s what we’re really doing. When you need knowlege of a domain (math or dating) to write the program, consult a domain expert.

