Now, I have just read this article on the Orielly web site. And I have to say, I disagree. And for several reasons.

As my post to the article states, in the business world Math is a requirement. Everything from knowing various accounting principles(its math) to being able to understand the equations of some statistical requirement(insurance). Continuing this further, when working for a workers compensation state agency. We calculated the amount we would pay on any medical procedures based on a percentage of Medicare with this figure being worked off the last years percentage if I remember correctly.

In my experience, if you could not understand various equations. You could not fulfill the requirements of the task. This does not take into account where a person may come out of school and go into various other programming backgrounds(science, graphical).

I don't understand how math should not be a requirement. A schools job is to broadly prepare you for as many possible work environment as possible. If they do not provide a math background to your education, they severely limit your possibilities in what backgrounds you may want to choose.

Edited to add: If you read any of georges columns, you will notice he does statistics constantly on the various hardware/software that he tests. I don't know how reliant it is anymore, but I use to read application dumps when being on call at 3am. Not being able to convert hex to decimal and vice versa would have been an issue. I have also seen db admins use math to find the position of a record within a database when their was integrity problems. How can a Computer science major not have a math background>

Dan

This conversation is currently closed to new comments.

Quite often it is enough to use a formula or algorithm that can solve a real world problem without knowing how it was derived this is useful and saves a lot of time even if you have a PhD in mathematics, why reinvent the wheel? If an algorithm or formula already exist to model the problem and there is no accuracy or performance problems you should use it. Unfortunately we are not in control of the problems we are going to encounter and from time to time a new situation crops up that you need to model yourself, this is where mathematical knowledge becomes indispensable, if you are a programmer without mathematical skills I can assure you that you are going to feel inadequate, I challenge you to find every solution in ?Numerical recipes in C? , ?Numerical recipes in Fortran?, or any other book or the Internet for that matter, it won?t happen, you will be surprised to know how many seemingly small problems can result in mathematical knowledge requirements. While this knowledge is not necessary sometimes, it can be a powerful friend to have when the time comes. I would not say you have to be a genius at tensors and calculus but a little college mathematics can go a far way in any type of programming. The universe is a mathematical entity and the problems therein. You cannot escape from using or knowing mathematics if you want to become an independent first class programmer. The objective of every teacher is to prepare the student to reach the top. If you do not grasp mathematical concepts, modeling a situation becomes more difficult and you will remain at the bottom of the programming heap using snippets of code that may not be optimal and sometimes scouring the internet in vain for that special solution, this is far from enjoyable. As an Engineer I find myself not using some branches of mathematics I learnt for quite some time now but should I had skipped learning those branches of mathematics that I knew I would not likely use? Of course not, I do not know when the requirement for them will come up, the argument posed here is not whether higher mathematics will be used or how often it will be used in programming but if a programmer should be taught mathematics, I would certainly believe so.

You are missing the point, we have not yet discovered that one formula that governs all the forces in the universe, Einstein died trying, (See The unified field theory),or a Theory of Everything but even without these we have gathered enough knowledge to realize that mathematics is at the centre of understanding celestial mechanics, the behavior of atoms and subatomic particles, electromagnetism and so on, if you read something on astronomy or cosmology you will realize that our galaxy and others like it cannot be understood without mathematical treatment. The Plastic that makes your keyboard, the food you eat and any other material on this earth all have chemical models that can be understood by mathematics. As far as humans are concerned what we know now suggest that the universe is mathematical in so far as we need mathematics to properly describe it or at least the observable part, this should not be the point of focus, it is a little mischievous to ask for such proof, this argument was only used to illustrate how many problems in this world we find ourselves demand mathematical solutions, be it a gaming, scientific or business system, which takes us back to the core of the discussion as outlined by this analogy: There are some auto mechanics working without being taught the basic physics of the automobile, yes they can grind your valves and know enough symptoms to effect a repair on your car, they may even know how to use a dwell meter to adjust the timing and so on but if they understand a little of the physics along with their experience and rules of thumb they would be far more equipped to deal with new situations, that is what we mean by being at the top, you have a serious edge over your competitors, I am not saying the mechanic should be able to explain the Carnot cycle or the Otto cycle but if he can I would be more inclined to give that mechanic more business than the one who knows not, all else being equal. Therefore if you are running a school on automotive repair you would have as a part of your curriculum basic automotive physics it can only help. God forbid even a little mathematics may help him, maybe he will run into a velocity ratio calculation problem with a gear train. There is no good reason not to apply this same thinking to teaching programming, based on the simple fact that some problems may require an original mathematical solution. Nobody is going to tell me that a game programmer that has a good grasp of linear algebra won?t be better off than if he does not. How do you know what problems you are going to face as a programmer? You may be able to seek a solution from outside but would it not be smoother if you could solve your problem yourself? You can ride a motorcycle without a helmet for years without a problem you may even walk away from quite a few accidents without serious injury without this protection but by law in most countries you are required to wear a helmet, for a good reason, it may very well save your life, there has been no known cases where a helmet causes death. The statistics that suggest that you can become a motorcycle rider without head protection for years without harm is not used to determine whether or not you should be required to wear one, rather it is the statistics that suggest that when the cyclist is in an accident the helmet more often than not saves his life. Yes there are many who break the law and are happy riders but are they on a sound footing? I think not. The same applies to programmers that have the protection of mathematical understanding; it can be a life saver or maybe a job saver.

The universe is an entity that has some properties that can be abstracted through mathematics.

The map is not the territory. Other than that I fail to see how my disagreement with you one that isue, got me painted as a mathematical luddite.

How do I know the problems, I've been doing it for thirty years. Number of times used calculus, none. Numbers of times got messed up by, global variables, memory corruption, memory leaks, side effects, bad comments, ambiguous logic, compile depenadant logic, poor exception management, races, deadlocks, livelocks.. Too many to count.

<p class="MsoNormal">Oh no my friend I am not for one minute suggesting that you are a mathematical luddite, I read what you said and I could not conclude from that any such thing, I am not like that, I respect what you are saying I was just hoping that we could just find some common ground, for your argument is not by any means baseless, if I thought you were a novice I would not even bother to reply.</p> <p class="MsoNormal">The map is not the territory that is for sure but you can reason that the whole territory can be mapped and that it obeys the laws of that already mapped. This is a priori reasoning that has to be used countless times in science. <span style=""> </span>It is then safe to say the territory is mappable, similarly I did not say mathematics is the universe; I said the universe is mathematical. All the major strides we have made in science and technology over many years come from mathematical understanding of our surroundings.</p> <p class="MsoNormal">Please <span style=""> </span>let us focus on the core of the argument, even the original discussion that triggers this one suggest what I am saying, here is a quote from the original article; ?Occasionally I do feel the lack of higher calculus or linear algebra or graph theory? I have already admitted that you do not have to learn advanced mathematics to be a programmer , however, mathematics is such a useful tool to use for abstracting our ideas, a technical communication language if you will, that I believe it should be taught with any high quality programming course you should not indulge too much in the statistics of your own experience, mine is different. Once I was developing an Excel spreadsheet using VBA this application was used to program some communications receivers and transmitters that requires as part of the synthesizer calculation to convert some number to binary Excel?s engineering add-in has a DEC2BIN function for this purpose but to my surprise anything over 511 causes a #NUM! error and the calculations were coming out quite often greater than 511 the solution was needed quickly and could not wait too long, since the input number is not going to be negative and all the zeros need to be retained I came up with this function to solve the problem; note; error traps left out here.</p> <p class="MsoNormal"><span style="font-size: 10pt; line-height: 115%; font-family: "Courier New";">Function Deci_to_Bin(n As Double) <o></o><br> Dim bitval() As Integer<o></o><br> ReDim bitval(0 To 15)<o></o><br> For a = 0 To 15 Step 1<o></o><br> bitval(a) = (Int(n / (2 ^ a)) Mod 2)<o></o><br> Deci = bitval(a) & Deci<o></o><br> Next a<o></o><br> Deci_to_Bin = Deci<o></o><br> End Function<o></o></span></p> <br> <p class="MsoNormal">Now you may have a more clever solution to this problem but it did not take long for me to come up with this mathematical solution <span style="font-size: 10pt; line-height: 115%; font-family: "Courier New";">(Int(n / (2 ^ a)) Mod 2)</span>and fit it right into the for next loop</p> <p class="MsoNormal">While there may be none mathematical ways to solve this simple problem, a search on the internet turned up nothing at the time, even recently I noticed someone at this<a href="http://www.dailydoseofexcel.com/archives/2005/12/02/decimal-to-binary/"> link</a> that has a similar problem and having a hard time finding a solution on the internet. This is just a simple example of what I am trying to illustrate, just a question of being armed with the right weapon when the time comes.</p>

I expect that what you wrote is quite enlightened. You may well have well thought out points that would amaze us with their brilliance.

Without spaces between logical groupings (paragraphs) it is really annoying to try to read.

I know that this will appear picky to you as your text is way above such trivial matters but it is a small request and I hope you can take it to heart.

We now return you to the regularly scheduled deep ponderings.

I also prefer to understand how things work at the level of the underlying math. Most folks prefer to understand how things work at the minimum level required to make them "go". They won't be persuaded.

Collapse -

This would depend on whose definition of "first class programmer" you use.

In some circles it is defined as the person that can make the computer do exactly what you want it to do. If what you want involves little to no math skills then the math skills may well get in the way. I can see a Monty Python skit work it's way out of this scenario.

Also, the Universe is made up (again, depending on whose definition you use) of stars, planetary systems, dust and people.

The jury is still out on whether or not you can define people using a function. And with that in mind, I am sure that there are a lot of folks out there that will be perfectly happy being the programmer equivelent of a french fry cook.

is one who writes code that does what it is supposed to and can be changed at minimal cost.

Sometimes math lends itself to this, sometimes it doesn't.

Math can help you program, just as domain knowledge, psychology, communication and language skills can.

However if you come out of a CS course still writing code that can't be read, therefore can't be understood, therefore can't be tested, maintained or enhanced, a qualified developer is going to rip you a new one, until you pick up what's important.

The annoying thing is 'french fry' programmers have the most tools to do it well, yet in general seem to make the poorest use of them, most of them have CS degrees as well.

If you're asking for technical help, please be sure to include all your system info, including operating system, model number, and any other specifics related to the problem. Also please exercise your best judgment when posting in the forums--revealing personal information such as your e-mail address, telephone number, and address is not recommended.

## I Just Want to Program! Don't Make Me Learn Math!

Now, I have just read this article on the Orielly web site. And I have to say, I disagree. And for several reasons.

As my post to the article states, in the business world Math is a requirement. Everything from knowing various accounting principles(its math) to being able to understand the equations of some statistical requirement(insurance). Continuing this further, when working for a workers compensation state agency. We calculated the amount we would pay on any medical procedures based on a percentage of Medicare with this figure being worked off the last years percentage if I remember correctly.

In my experience, if you could not understand various equations. You could not fulfill the requirements of the task. This does not take into account where a person may come out of school and go into various other programming backgrounds(science, graphical).

I don't understand how math should not be a requirement. A schools job is to broadly prepare you for as many possible work environment as possible. If they do not provide a math background to your education, they severely limit your possibilities in what backgrounds you may want to choose.

Edited to add:If you read any of georges columns, you will notice he does statistics constantly on the various hardware/software that he tests. I don't know how reliant it is anymore, but I use to read application dumps when being on call at 3am. Not being able to convert hex to decimal and vice versa would have been an issue. I have also seen db admins use math to find the position of a record within a database when their was integrity problems. How can a Computer science major not have a math background>Dan