<p>I happened to debate with a friend during college days whether advanced mathematics is necessary for any veteran programmer. He used to argue fiercely against that. He said that programmers need only basic mathematical knowledge from high school or fresh year college math, no more no less, and that almost all of programming tasks can be achieved without even need for advanced math. He argued, however, that algorithms are fundamental &amp; must-have asset for programmers.</p>

<p>My stance was that all computer science advances depended almost solely on mathematics advances, and therefore a thorough knowledge in mathematics would help programmers greatly when they're working with real-world challenging problems.</p>

<p>I still cannot settle on which side of the arguments is correct. Could you tell us your stance, from your own experience?</p>

computer science != programming
OK, seriously, I know good and bad programmers who were English and Psychology majors and some that were Computer Science majors.  Some very famous guys that I admire as developers didn't have a CS background.  Larry Wall(Perl), for example, was a linguist.
On the other hand, it helps to know something about the domain you are working on because then you can at least see if your data makes sense and help your customer/users drill down to what they really want.
And yes, there's the issue of computational complexity and efficient data structures and program correctness.  That's stuff you learn in Computer Science and that's useful to know in almost any domain, but it's neither necessary nor sufficient.