| I agree with what you say, but it seems obvious to me. On the other hand, what gets overlooked, IMO, is the "other stuff". Humanities, law, business, biology, take your pick! When faced with a problem, a programmer is always looking at at least two issues: 1. to implement,
2. to understand the problem domain. I see math being exceptionally helpful in 1), but at most somewhat helpful in 2) -- because at the end of the day, programs that we write tend not to be about math, or logic. Category theory does not help you understand the contract your company signed with some other company 12 years ago, and the amendments they made 7 years ago. It does help you implement these things concisely and correctly. What'd would help you understand would be for a programmer to know something about contracts. Most programmers that I know have a certain talent for and knowledge about math. Most programmers that I know, also don't know a lot about the world outside of computers. That includes me, fwiw. I think that their careers would profit from considering learning some non-mathematical domains more than from learning more math. I'm not arguing against math, but I'm arguing for a good balance. To know at least the basics of some other domains, before you set out to learn a lot about one. |
I think the reality is the opposite of what you suggest, programmers are in no way an example of a profession where most practitioners have a deep and extensive knowledge. For most programmers, the learning method is finding out how to DO things (as in, find an example on the internet, try it, it works, I'm done) without actually understanding anything.
You must be very lucky in where you work if you think programmers know a lot of math and even know what "category theory" is.