4 ms·
Unfortunately I have to strongly disagree with the author's central thesis. > But I think that most programmers who are serious about what they do should know
by throwawaymath 7y ago
Unfortunately I have to strongly disagree with the author's central thesis.
> But I think that most programmers who are serious about what they do should know calculus (the real kind), linear algebra, and statistics. The reason has nothing to do with programming per se — compilers, data structures, and all that — but rather the role of programming in the economy...One way to read the history of business in the twentieth century is a series of transformations whereby industries that “didn’t need math” suddenly found themselves critically depending on it.
There are two ways to interpret the claim that more programmers should know advanced math. One of them, which the author preempts, is the idea that programmers will improve their own work through significant mathematical maturity. It seems the author and I already agree that isn't the case, so I won't address this interpretation. But I still consider this interpretation to be more defensible than the other one.
The other way to interpret it, which the author seems to be explicitly pushing, is that programmers with a strong mathematical background will be better situated to proactively find fertile areas of the economy which can be improved through a combination of computing and advanced math. I don't believe this is realistic. None of the author's specific examples - control theory, optimization, linear programming, econometrics, or Black-Scholes - were pioneered by generalist engineers with a strong grounding in mathematics. They were just applied mathematicians (and in a few of those cases, repurposed pure mathematicians).
Likewise the bar is constantly rising. Knowing calculus, linear algebra and statistics won't empower you to make significant, groundbreaking improvements to any major field. That knowledge is necessary but insufficient. What's considered low hanging fruit these days is something that could be conceivably noticed and tackled by a postdoc. Mathematics itself is ossifying as a field of specialists, to the point where prominent researchers within subfields like algebraic geometry can be unfamiliar with each other's principal work.
This is really why find the appeal to economic advancement less than convincing - every advancement the author mentions has an implicit foundation in specialization. Historically, the most notable advancements in technology have come about through division of labor and cross-pollination. You would be better served by having two collaborating teams of mathematicians and engineers than by a team of engineers who know undergraduate math. It's already common for applied mathematicians to be able to program competently; they dominate the authorship of fast, low level math libraries. If you need them, hire them.
Conversely, I would argue we should actually reduce the education for more developers, not add even more material to it. Most developers already don't need to learn a significant amount of the material in a standard computer science degree. Piling on math courses isn't going to be a fundamental improvement for the vast majority of engineers working on real world software.
- justinmeiners 7y agoI think I agree with a lot of your post, but do you really think something isn't worth learning just because other people are going to know it better? Will hyper-specialization make better developers? Or would developers be better if their education was more general?
- jamessb 7y ago> None of the author's specific examples - control theory, optimization, linear programming, econometrics, or Black-Scholes - were pioneered by generalist engineers with a strong grounding in mathematics. They were just applied mathematicians (and in a few of those cases, repurposed pure mathematicians). With regards to control theory, whilst some key people like Bode [0] had mathematics degrees, others such as Kalman [1], Nyquist [2], and Black [3] had electrical engineering degrees. Claude Shannon had a bachelor's degree in both electrical engineering and mathematics. [0]: https://en.wikipedia.org/wiki/Hendrik_Wade_Bode https://en.wikipedia.org/wiki/Hendrik_Wade_Bode [1]: https://en.wikipedia.org/wiki/Rudolf_E._K%C3%A1lm%C3%A1n https://en.wikipedia.org/wiki/Rudolf_E._K%C3%A1lm%C3%A1n [2]: https://en.wikipedia.org/wiki/Harry_Nyquist https://en.wikipedia.org/wiki/Harry_Nyquist [3]: https://en.wikipedia.org/wiki/Harold_Stephen_Black https://en.wikipedia.org/wiki/Harold_Stephen_Black