views:

726

answers:

13

Possible Duplicates:
Is mathematics necessary for programming?
Do you have to be good at math to be a good programmer?

Hello everyone! I am still in my last 2 years of highschool, but I plan to go to a technical school for software development. I want to know what kind of math is required for the job? I have done Algebra, Geometry, and I'm now working on Algebra 2. Would I need to go further into Trigonometry and Calculus for software dev?

The kind of software development I would like to get into would be business or web services. I'm not into the deep core low-level stuff due to its ability to be brain busting and hours can be long. :P

So what is recommended for that?

Thanks

+2  A: 

Honestly, if you have arithmetic down, that's basically all you need in most cases for the area of work you're looking at.

I've used algebra, physics, vector math, matrix math, and even calculus but those were all in graphics and simulation programs.

The hardest calculations you'll be up against are financial ones (which can be complicated, but they don't typically use higher math).

colithium
+1  A: 

Anything logic-based will help, even philosophy. If you want to do graphics or game development, you'd want to learn as much math as possible, but for basic web programming I've never had to rely on any calculus, but knowing it definitely won't hurt.

stereointeractive.com
+1 for philosophy.
Erik Forbes
A: 

Math and especially linear algebra helps you to get in a special mindset that helps you in software development.

In most cases the math itself won't help you a lot. Especially if you don't do computer graphics, games or financial hardcore stuff.

Patrick Cornelissen
+17  A: 

Generally, math promotes logical thinking which is in itself very useful for programming. In addition, the field of discrete mathematics is generally cited as useful for programming and I personally tend to agree with this.

Cide
+1 for discrete mathematics, and that field is more fun than the others as well :)
Johan
Very useful, but for strictly "business or web services"?
colithium
@colithium: I consider "business or web services" to be vague enough to warrant an "in general..."-like response 8)
Cide
Totally: Do you use a list or a hash in your web service? Discrete math explains why.
Andres Jaan Tack
+1 for discrete math for sure.
01010011
+1  A: 

Math is definitely a good thing for software development. For business software development, discrete math will be very helpful, especially when dealing with databases and SQL. Set theory really helps in that arena.

asciiville
+2  A: 

I think most people would agree that math never hurts.

I just wanted to mention that you shouldn't think that just because you are going into a more "business" side of software development that the hours won't be long. That usually depends on the culture of the company and the specific project you are working on (and the marketing department that set the launch date ;) ).

Oh yeah, and sometimes your brain may still get busted. :)

Tuzo
+1 I was going to say the same thing (re brain-busting hours).
Greg Hewgill
A: 

I've used but modest amounts of calculus (and hardly any trig) as a developer -- the former mostly to help good understanding of statistics and probability theory, which ARE absolutely crucial in many application fields (I'm currently doing mostly SW for Business Intelligence, and great command of probability and stats is really a must in order to excel in this business area, to give just one example). Oh, and a little bit for advanced economics and econometrics, which also DO help a lot in this field.

I do agree with other answers that if you have to choose, areas such as discrete math and logic will help any programmer, while others will only help in certain fields (geometry and trigonometry for graphics and games, which I've never done, for example).

Alex Martelli
A: 

I agree fully with Cide about logic thinking, and would like to highlight:

Johan
A: 

I've used quite a bit of calculus and trigonometry when doing robotics programming. As others here have said, if you're just interested in web dev or similar, then it's not really necessary, but I wouldn't want to limit my options like that. My advice: do as much math as you can! Especially discrete math. Set thory finds its way into many, many aspects of programming, including databases (which will be also impossible to avoid in a career doing business applications).

Anyway... math is fun, right?

David Claridge
+1  A: 

Since it hasn't been mentioned, I'll add graph theory to the list. Set theory, discrete and continuous mathematics, and category theory also matter quite a lot, though you can probably grasp quite a lot of set theory and category theory intuitively.

Nearly all type systems, business domain problems, game decision problems, constraint satisfaction problems, and even basic things like hit testing algorithms or search problems can be reduced to or informed by graph problems.

JasonTrue
+2  A: 
Jonathan Dugan
+7  A: 

My advice is that all math is good math. Since coming into the workforce I've been surprised how much math was useful. Calculus added to my understanding of algorithm complexity, probability and statistics allowed me to usefully analyze performance data, geometry/trigonometry has helped me with graphics. The list goes on.

The one area that I suggest you spend a good amount of time on derivations and proofs. The reason I say this is that deriving and proving are basically the same processes as coding and testing. I find that applying mathematical formalism to my coding process leads to very solid, bug-free code.

Imagist
+1 for Prob and Stats.
Casey
+1 for the proofs. Verifying programs involves countless little formal proofs and good math skills really come in handy.
Accipitridae
+1  A: 

Counter argument: you don't need any maths at all. What you need is the ability to gather, organise and analyze information; to think creatively; and to devise solutions quickly and clearly. Learning maths may well do that for you but so will many other disciplines.

There are some areas of software where deep maths training is essential, such as scientific computing or anything to do with graphics. But those are niche areas. Most business IT requires basic numeracy and not much more.

Obviously. studying maths is a good thing. Anything which trains your mind to think logically is a good thing. But study the stuff that really interests and excites you.

Otherwise you might as study accountancy. In fact that's not a bad idea. The world - alas - will always need accountants, and it pays them well. You could still go into software. Too few people in IT understand double entry book-keeping.

APC