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.

The study of mathematics is much more than add/subtract/multiply/divide. I would suggest that the appreciation of the correlation between the study of mathematics and application programming is one of the characteristics defining the difference between an average programmer and an exceptional programmer.

I disagree that programmers do not need higher level math. Calculus may not be used in a business application, but learning Calculus teaches you how to analyze problems. Programming requires that one fully analyze a problem. Personally, I think they need to make students learn the math without having the aid of a calculator. The math principles are more important than memorizing how to solve the equations.

If you are going to define the problem, you will have to analyze it. You need to know what questions to ask to define the problem. How are you going to know the right questions? You may not explicitely analyze everything, but you better be able to implicitely do it. I should retract "fully analyze" since in most cases it is impractical. What I actually meant is that you need to analyze to a practical degree the problem. Although, I frequently see code that hasn't been analyzed very well. A good example is not taking into account nulls or division by zero.

You cannot mathematically analyse an undefined problem. You can attempt to state the problem mathematically, potentially prove it, definitely disprove it. Whether this math has anything to do with the real problem, which has not been defined is anybody's guess.

That's where you analogy of mathematical reasoning versus requirements analysis breaks down.

Both Null and div by zero are failures of representation, both can be dealt with by a richer definition of a 'number'. They aren't because it's impractical.

Both could be completely out of scope for the programmer. If I was reading it as a type integer from a Field in a table defined as MyNumber int not null default 0

Should I check for null and div by zero ?

PS By preference I'd check, and I'd do it in every routine that used the value as an integer and an extra check where it was a divisor. That could cost big style though.

However, it does show why some analysis should be done. Most problems that I have encountered could have been solved simply if the programmer or analyst had just thought about what they were doing. For example, I ran into one problem where calculations were off because of duplicate records in the data table. The programmer designed the table with a surrogate key to make it easier to write to it. The problem was that the surrogate key undermined the uniqueness of a compound candidate key. If he would have thought the problem through, he could have created a unique constraint for that candidate key or he could check his inserts to make sure that they were truly unique. Since he did not think the problem through, he ended up creating a new row in the table everytime someone calculated the form. Customers get really testy when there are charged over and over again for the same items.

In those case where the systems analysis and the programming are separate functions, performed by different persons, you are correct.

However, it long ago became the practice of combining those functions, with both being performed by a Programmer/Analyst, regardless of whether or not that individual's title contained the word "analyst."

Thus, it is no longer possible to make broad assertions re. that knowledge & those skills which are unessential to the "programmer."

My job title has always had developer in it (well once I switched to IT), except when it was Systems Engineer.

I do systems analysis, never worked with one though, with me as the coder. Started in IT commercially in 87 as well.

Business Analysts / Domain Specialists, a few, very different job in my opinion.

I wasn't saying math was unessential, I'm dubious of pure math being essential. I'm also made distinctly uneasy that there is an equivalence of concepts in mathematical reasoning and that done in programming or requirements analysis.

You end up with the Vienna Development method if you go down that route.

They are both systems of logic and to be successful, you have to express yourself correctly within that system. Other than that they are wildly different though and that's before you get near implementation which is effectively what coding is.

I think I see where you are coming from. I concede the point that mathematical reasoning and programming logic are very different beasts. I do agree that Math != programming. However, I do feel that the one discipline can and does complement the other.

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