presidentender
Golden Member
- Jan 23, 2008
- 1,166
- 0
- 76
Originally posted by: Kyteland
Originally posted by: presidentender
With all due respect, most of the stuff tagged as "math" on stack overflow doesn't tell us anything about how programmers feel about math in general. The first question deals with addition and element borders, while the higher math stuff is mostly people asking "how to" questions, which are answered as a matter of course.
I'm technically a math major, and I'd argue that math can be a good skill for programmers to have. I don't see how it's essential, even from a problem-solving standpoint.
I see 50% of the questions on the first page as similar to the OPs question. That seems pretty relevant to me.
As for it being essential, to quote Code Complete:
In programming specifically, many studies have shown order of magnitude differences in the quality of the programs written, the sizes of the programs written, and the productivity of the programmers. The original study that showed huge variations in individual programming productivity was conducted in the late 1960s by Sackman, Erikson, and Grant (1968). They studied professional programmers with an average of 7 years' experience and found that the ratio of initial coding time between the best and worst programmers was about 20:1; the ratio of debugging times over 25:1; of program sizes 5:1; and of program execution speed about 10:1. They found no relationship between a programmer's amount of experience and code quality or productivity. (Code Complete, page 548)
And that difference in ability is exactly what I'm referring to when I say that a strong math background in absolutely essential. I'm not saying you can't do the job without it, but its essential to be a good programmer. A strong math background allows you to write better programs, faster.
As some background, I have a degree in theoretical computer science with a minor in mathematics. My title is mathematician and I do a lot of numerical programming, but I'm not on the programming staff where I work. The programmers here develop casino games.
I constantly run into programmers who struggle with things because they don't have the proper math background, and it rears its head in many different ways. Sometimes they can't derive an equation they need, but more often they "solve" problems very badly because they simply don't know any better. Their solutions produce correct answers, but they don't perform well and they don't understand why.
There's a reason that most of the upper level CS courses many curriculum are actually math classes. That Algorithms class you took was a thinly disguised math class. Theory of Computation, Data Structures, Finite Automata, Numerical Methods, Artificial Intelligence were all classes I took in college and were all heavily based on math.
First of all, most of the questions on that first page are nothing like the OPs. They're questions about specific problems, not about math education (except for the "Plumber programmer" guy). Heck, the OP doesn't even ask a math question, just wants to know how much math is involved. Honestly, for a software engineer, it's not much, and you know that.
As for the code complete bit, there's no evidence to support math being the difference between 1x, 5x, and 25x guys. Even your source isn't claiming this.
I know that there's a reason most upper level CS courses are math. I take those courses. Thing is, Finite Automata and AI won't have much to do with your job except in edge cases, any more than you and I use Galois theory to do our jobs (God, I hope you don't use Galois theory to do your job).
Again, OP, you should learn some math. You should not assume that math is some sort of panacea.