Anyone can glue some APIs together[1] and make some kind of application, but it takes some math skill to design and implement strong algorithms. Computer science is not about syntax and semantics, it's about about algorithms and data structures-- and if you're not good at algorithms and data structures, it doesn't matter how good you are at memorizing Python syntax.
This is anecdotal, but every good programmer i know of has a strong math background, or at least knows how vitally[2] important math is to being a good programmer. Incidentally, most bad programmers i've met put much more weight on memorizing APIs and language semantics (e.g. Why do i need to know the big-O running time of bubblesort? python has sort() built in!) than learning math.
[1] And they do. You can find them on odesk and elance charging $10/hr and blowing past deadlines, producing unworkable code.
[2] Seriously. I cannot stress this enough.
There's your problem right there. He isn't talking about computer science, he's talking about actually programming.
Sad thing is, on HN, many more people will probably support your side.
1) Drawing code. One recent example was an (animated) undefined progress bar designed all in code I did last friday: http://akhun.com/seo/skitch/photo-20110805-195455.png
2) Sorting, ranking and scoring algorithms. Eg. figuring out which ad to show based on the average eCPMs, or which option to show based on a Quicksilver fuzzy search algorithm.
Everything else is as grandparent condescendingly calls it, stitching APIs together. Design patterns, data managements, doing all the little polish that makes up a real app.
I would be "good at math" if it were about how well we could invent methods of solving problems, rather than how accurately we can apply the method we were taught 100 times.
I have a pretty good grasp of the behavior of systems, it's just that I'm likely to drop a coefficient or confuse a 0 and a 9, which is the source of nearly every B. I have rarely lost points in a situation where I would not have known how to write a program to do the work for me.
We have a variety of tools and abstractions in Computer Science which allow us to view what is fundamentally mathematics from a more abstract and 'natural' standpoint. I've known many people with a poor grasp of higher level math who had an innate ability to understand logic and hierarchies, making them extremely skillful at solving business problems.
I assert that something on the order of less than one in ten programmers need to have significant command of mathematics proper. I'll take nine programmers with solid domain knowledge who can write clear, concise code on a schedule, who are self-aware and will defer to the one research guy, over a team of nine research guys. ;-)
If you are writing a complex model, while it is ultimately math, it has more in common with the skills required to write a great essay than it does with the skills required to do complex calculus. A great essay is understandable on multiple levels of detail: if you read just the introduction you should get a sense of what is going to happen in the essay. If you want a more detailed explanation of what exactly happens it should be contained in a logical place later on in the essay. The body paragraphs should reference the structure of the introduction and they should contain those arguments in more detail. If you are writing a particularly large body of writing you might need a more expansive structure: chapters, maybe even multiple volumes etc.
The same should be true of your application. If I read the main file of it I should get a basic idea of what is going to happen. If I want more detail I should be able to understand clearly where to look for the detail I want.
The sad truth is that you have a very limited view of what math is if you think of logical syntax and parsing as something other than math.
Frankly, I'm a little tired of the position calculus holds, where it is the pons asinorum for everyone who wants to do the more advanced (that is, non-arithmetic non-trivial-algebra) math regardless of what their true focus is. I think proof construction should be its own class and CS folk should take that and discrete math in order to move up the ladder. Engineers-in-training could take proof construction if they want a math minor and, yes, calculus their little brains out because calculus is what physics uses for a language.
You are not alone. Here is a quotation from John Stillwell that I put in a FAQ for parents about mathematics education:
"What should every aspiring mathematician know? The answer for most of the 20th century has been: calculus. . . . Mathematics today is . . . much more than calculus; and the calculus now taught is, sadly, much less than it used to be. Little by little, calculus has been deprived of the algebra, geometry, and logic it needs to sustain it, until many institutions have had to put it on high-tech life-support systems. A subject struggling to survive is hardly a good introduction to the vigor of real mathematics.
". . . . In the current situation, we need to revive not only calculus, but also algebra, geometry, and the whole idea that mathematics is a rigorous, cumulative discipline in which each mathematician stands on the shoulders of giants.
"The best way to teach real mathematics, I believe, is to start deeper down, with the elementary ideas of number and space. Everyone concedes that these are fundamental, but they have been scandalously neglected, perhaps in the naive belief that anyone learning calculus has outgrown them. In fact, arithmetic, algebra, and geometry can never be outgrown, and the most rewarding path to higher mathematics sustains their development alongside the 'advanced' branches such as calculus. Also, by maintaining ties between these disciplines, it is possible to present a more unified view of mathematics, yet at the same time to include more spice and variety."
That's from the preface to his book Numbers and Geometry (New York: Springer-Verlag, 1998), which is a delight to read and full of thought-provoking problems.
http://www.amazon.com/Everything-More-Compact-Infinity-Disco...