I Just Want to Program! Don't Make Me Learn Math!
by chromatic
Why has an interesting opinion in Math (Eww?) (and read the comments for much, much more).
Perhaps it's finally time to break the close connection between mathloving computer science and programming.
19 Comments
monopole 20070502 14:52:26 
The problem isn't math it's the teaching of the math and the programming. Even if you don't explicitly know it you are doing math at regular intervals when programming. Knowledge of the underlying mathematical framework allows you to spot impossibilities, find very powerful optimizations, and understand the why of algorithms.

Steve R. 20070502 15:45:10 
I would add, 'GEB' isn't just for experienced programmers  it is also an excellent book to help someone who is 'not a math person' to understand and perhaps (in my case) take another stab at learning it  and even come to enjoy it. 
chromatic 20070502 16:05:50 
Maybe this isn't the place to admit that I made it three chapters into GEB as well.... 
sysadmin 20070502 20:51:32 
I think that's what Informatics programs are trying for. However, I recently was asked to improve performance on a Informatics MA thesis project and found that the webapp was querying the database for every single page element, so maybe some BigO complexity teaching should sneak in there. (In some cases there were 60000+ db calls in generating one page, no exaggeration, and MySQL was pumping it out in less than a second!) 
Dave J 20070504 07:09:14 
I have been a programmer, mostly web programming but with some other work, for over 10 years. In school, going for my CS degree, it took 4 years plus summers to get through the 2 years of math. And so far, the only practical mathbased programming I've ever done is using sine and cosine to make the arms of an "analog" clock. And truly, that was a toy, done for my amusement. 
Ravenor 20070507 14:08:07 
I agree with you 100%. 
dan 20070507 17:03:00 
What about business programming that requires various levels of algebra? I have worked in the business area of development all my life. Furniture stores required various algebra for cost factors for the longevity of goods sitting in the warehouse to working for a workers compensation company which was a lot of statistics.

Jeremiah Foster 20070508 03:19:14 
I agree completely. Furthermore I would argue that requiring advanced math skills for certain types of programming job descriptions is specious. Formal logic, things like syllogisms, are key to programming and should be considered more important than Calculus, for example. The computer should mediate the math for the programmer, that is its purpose.

kabel 20070508 08:28:22 
What about the approach that it's not necessarily the mathematics that's important, but a structured approach to solving a problem that should be the hallmark of computer scientists? Making a good looking web page is nice, but not computer science. Learning how to write scripts is helpful, but not computer science. Computer science is just that: the science of computing. Everything else is application and, while very important, should not be confused with the emphasis of computer science.

Zipster 20070508 12:13:31 
When I went to transfer to the U of MN for CS I got talking with their person in charge of transfers. I looked at the curriculum and noticed 4 semesters of Calc and 2 semesters of calc based physics. One year of my life and four year degree essentially devoted to math. With the number of up and coming technologies out there and the myriad of other areas that were never even touched on in the curriculum I asked him why oh why so much math? His reply was classic "We want to turn out well rounded students." I almost replied, 'Hmm. I guess they stopped teaching art, philosophy, biology and Shakespeare at the U then'. The discrete structures classes that I took (later, elsewhere) were exceptionally helpful later on, give me a year of that. 
WayneM 20070510 06:45:52 
The truth is that a vast majority of programming revolves around data entry and state manipulation. No mathematics are involved. I'm sure there are problem domains that involve basic equations, but even here the emphasis is on correctly implementing an equation that someone else has derived. Though interesting, calculus, topology, etc. do not help in programming. 
frankl 20070510 08:00:44 
My comment is simply this. You might get "the program to run"..but how do you then know the product is correct if you cannot compute it manually. I am of course referring to ANY program that has ANY math in it. I know what I speak as way back in 1970's using code most never ever heard of.. "the very old crude stuff" we did lot's of weather data..and HAD to be able to verify the programs. Same today and rather frightening that numbersmath is part of the more basic forms of our lives.. all of which runs off software I really hope done by someone that understands what is going on and has proven result are correct.. 
CVgeek 20070510 10:44:49 
C'mon, a base in mathematics, especially numerical analysis and numerical methods is essential to producing a good and accurate program. The scientist may provide you with a forrmula that you can just plug in but unless you know in what order to perform the operations associated with that formula, you have no control of your error. And going from symbolic math to a digital representation of a binary calculation, you will always have some error. Now that may not be important if you are calculating the number of raisins in a pound of raisin bran but if you are calculating the trajectory of a passenger jet on landing a not knowing your error or its limits could ruin your whole day. Math is necessary to be an effective programmer. 
Hamos 20070510 16:29:44 
I have found that when one works with any relational database, not knowing math is akin to shooting yourself in the foot for how can you understand the relationships of any bit of data with any other. I admit that I am a mathematician with a degree in Relational Theory, but I have been programming since 1965  most of it business and in an archaic language (which has more than 6 billion lines of active code at last count). Not knowing math would not have allowed me to get anywhere in the field. Since they have come out, I have worked with just about every relational database on the market (and some that aren't any more) and without knowing math I would not have gotten anywhere.

Darth_Loki 20070514 05:18:03 
Learning math teaches you more than math. It teaches you a step by step methodology for approaching, evaluating and resolving problems through the use of logic and formulae. The halo effect reaches far beyond being able to calculate a tip in your head or to calculate interest or tax.

Nyaope 20070517 01:56:12 
I couldnt agree with you more. We apply maths in our everyday lives, with or without our knwoledge. Maths should be a prerequisite in CS, or programming. 
jon 20070517 06:35:43 
It depends on how good a programmer you want to be. If you want to be average, just learn the least amount possible to get started. If you want to be good, you will have to learn a lot.

Darin 20070517 08:32:25 
Of all the programmers I've worked with in 25 years of software development, the ones who knew and enjoyed math were the ones who came up with the best solutions. The other guys could solve the problem and make it work, but the guys who knew math could make the solution more elegant, more performant, easier to maintain, and just plain better.

Neo 20070520 19:56:10 
As long as we have people who share your ideas. I have job security. If you want to be just a web designer or something less daunting (in computations), then choose the right degree. Computer Science! Please check what it stands for before you come out ranting. I work with people with over 20 years experience and have no good math background. They struggle with SQL queries which is setbased (math). They have terrible logic because they do not fully understand boolean logic (and shortcuts). They create most akward queries because they do not understant kmaps, sum of products or products of sum. Eveything we do in computer science in simplest form is mathematical. When you understand it well, you produce better products. Yes you might not have to calculate velocity but if you understand how it works you know what your program needs. If you have never written an application that used some form of math, for lack of better term, you are not worthy to be called a real programmer. I believe the best description is to call you a hobbyist(desperado) who gets paid. Be a true computer scientist without strong math background is like web designers(masters or maintainers) who do not know html. I do not care what tool you use to genereate web pages, if you do not know html you are extremely limited. If you understand html, you can use the development environment optimally. 