Comments (8)
Depending on what type of programming we do, other math disciplines can be extremely useful, but A2 was what taught me how to do things like refactor, use variables, functions, and balance; all skills that have direct analogues in general-purpose programming.
[EDITED TO ADD] Also, stories. Word problems were very important.
My problem is that it still relies on some mathematical intuition - that large sample sizes approximate the true distribution. Similarly bad intuition (like the gambler's fallacy) could easily be coded.
I agree that formally calculating the probabilities isn't necessary if you have the right intuition. But I believe getting good intuition is the result of training on problems (and then you can learn how to formalise it - which is the easier part).
Edit: Being good at mental arithmetic isn't necessary for programming, but being good at mental arithmetic isn't necessary for working as a mathematician either.
The only intuition you need is that you can become better at the game by practicing. This is a good (if optimistic) belief to have as a default. Then it's just a matter of playing over and over again and keeping score. It doesn't even have to occur to you that the strategy can be automated, you can play yourself. Just doing this you could build intuition for the best strategy the same way that most people can learn to play poker or dice.
You can say that the brain or learning process or whatever is obeying mathematical laws, or has learned a mathematical fact, but that's not the same thing as doing math or thinking mathematically.
I was repeatedly told in school that math is a very important skill to possess as a programmer even though the teachers never wrote a line of code in their lives. This would be one of its main points. Where the hell do people get this idea from?
Or: You don't necessarily have to take math classes to be a good programmer, but the skills that differentiate a good software engineer from an LLM (previously 'code monkey') happen to correspond to things that mathemeticians would recognize and could give you a word for. This CoRecursive episode comes to mind: https://corecursive.com/050-sam-ritchie-portal-abstractions-...
Yeah, sometimes it helps to actually know math, but even when it doesn't there are some concepts that come from math and are super useful, for example: commutativity, associativity and idempotency are really useful for building robust distributed or parallel systems.
Building robust code by construction from properties of earlier code, like a proof is a great skill to have.
Making things that compose well... there are a million examples.
I mean, yeah, you can be a mediocre programmer without math but I wouldn't brag about it.