prerequsits to programming.

Miscellaneous Forums/General Discussion/prerequsits to programming.

When I told my teachers that I wanted to be a programmer they were baffled. They tried to discourage me by pointing out a poor grade in math. I tried to explain that most of the programming techniques involved simple algebra. One could argue that simulations take higher level math. I just make 2d games and feel that I have most of the math I need.

My questions:
1. How good do you feel you need to be in math to be a fairly comptent programmer?
2. How do you feel about your math skills?

Thanks for your thoughts.

1. Being good at math is all ways good, though most of the time if your programming 2D then you wont need to be to skilled - but when you go into 3d you should have an understanding of matrixs ad such like.

2. Though having said that my math skills are poor ( at lest thats what i belive ) which is why im reading Essential Mathematics for Games.

For your everyday run of the mill programming it shouldnt matter to much.

of course you need to be good at math, at least c+ or higher to start in blitz without any trig functions, to do anything really useful you will need to be much better at math and be able to make algorythms that can work. also being able to keep system efficency as high as possible

enemy AI is near impossible without good math skills

i am pretty good at math but i need to work on trig functions

I passed trig, but phailed alg 2. My teacher was a coach and we had ALOT of subs.

1) Really Really Important
2) Bloody Good

However your techers didnt point out that your maths skills will improve as you program. Having said that, if you buy an AI pack, a sprite pack, a collition pack a graphics engine, etc then maybe your maths doent need to be as good. And also when I say Maths I dont mean "HighSchool" maths (which is just sums). So maybe you are good at maths, but just not highschool maths

I think programming is a great way to learn and understand maths. If also my Teachers have given me concrete examples on why to use those mysterious functions, I should have been more interested in class...

if you mean to use blitz3d you dont need much math skill at all.

It all depends on what kind of programming you do.
Most commercial software solutions don't require a whole lot of math insight (Enless you dealing with scientific software).

3D Graphics/Cryptography/Advanced AI (neural nets etc.) is a different matter though.

Personally my math skills totally suck and I must say that it has stopped me from progressing with my projects on more than 1 occasion.

As said before though, Programming is a great way to learn about math, because contrary to highschool, there is a real, tanhible Use for it all in programming. You can actually See what all the different expressions do when you play with them.

I never payed attention with math in school, because I had absolutely no reason to do so. There was 0 use for it so no interest from my side. Now I have star5ted programming and I can finally see where it would have been usefull. I do occasionally smack myself over the head for not paying more attention in school, but I have also learned quite a lot over the past years while making games and other stuff.

Personally I think that Math lessons in schools need a serious change. Just reading books is not going to make young people interested in math. They should be getting math lessons through Computer programming classes. It will be much more efficient and I believe the endresults will be far better in terms of grades. Next to that, getting proper lessons in computer programming will help them in a lot of other fields as well. We simply can't go around computers anymore in this day and age.

1. A good general understanding of math will get you by. But it depends on what you're doing. If you wanted to delve deep into 3D then your math needs to be of a high standard.

2. I'd say my math skills are... no idea to be honest. They've not let me down yet.

Personally I feel logic is a key part of programming, to be able to break a task / problem down into logical steps.

you'll go a long way with simple math..
the rest is mostly up to pure logic... use your head.. :)

Lol@ the implication that "Pure Logic" isnt maths

Yah I think programming is more about logic than difficult math. You can do pretty well without having to know about complicated maths, physics equasions, etc. Unless you're writing some kind of fancy graphics library or sophisticated visual stuff you probably for the most part just need to understand the technical language and how to put it together in the right structure to get things to happen.

To make 2d games you dont need a lot of math, most of the things you require to make a good game are in the code archives anyways or there is someone out there that can point you in the right direction. So TBH you dont need to be a math wiz to make a game.

Your project is as complex as you make it...if you want
physics, custom collision code, and a.i, your probably going
hit some ugly maths at some point... and being unprepared
for this will leave you ripping hair from your skull..the amount
of times ive found a doc + then shuddered as my eyes close
in on the collection of greek symbols that supposedly
represesnt the solution....is quite frightening - i would
advise you to learn as much as you can about the world of
maths...you can never know too much..i jst wish id spent
more time on this.. ignore your teachers + focus your
efforts on studying the subject - nothing worth doing is
easy.

Maths is essential, logic is an important part of maths, can't imagine programing anything without using maths, but don't worry if you like programing you will soon be pestering your maths teachers with questions, might even find out they aren't that good at maths themselves. Really more than maths knowledge what you need is a mathematical mind and skills, you'll always be able to find the knowledge somewhere.

Logic is an important part of the maths they teach at school. But real maths is ALL Logic.

Its the maths they teach at school that is the smaller subset of maths/logic as a whole.

You cannot be good at programming unless you are could at Logic, and therefore by inference good at maths. But as I said before by learning to program you inprove you use of Logic and hence School maths suddenly makes more sence.

Trying to seperate the need to think logicaly for programming and the need to think logicly for maths is pointless. By learning to program you are also learning to do maths. (And again Im not talking about doing sums)

Most of the time in school, unless you were well on the ball and understood why such and such ment such and such all you came away with was a bunch of equations that you knew how to use in the exam.

What you didnt therefore learn were all the logic/programming steps needed to get to the equations, and came away with the impression that maths was in essence useless.

Now when you are programming you become more used to looking at the steps needed to get to each point, which is really what the teachers of maths should really teach you, that is the ability to follow a logic trail.

>When I told my teachers that I wanted to be a programmer
>they were baffled. They tried to discourage me by pointing
>out a poor grade in math.

The problem is that teachers generally live in the 50's when it comes to IT. At the same time, they know something about many careers, but not enough to actually know what a programmer really does.

>I tried to explain that most of the programming techniques
>involved simple algebra.

A poor grade in math doesn't mean that you can't learn math.

I have found that with proper motivation(the 'hmmm ... How do I make this work!?' kind of motivation), I have been able to learn even very complex math subjects. If you need it enough, you'll learn!

>One could argue that simulations take higher level math.

And one would be right.

>I just make 2d games and feel that I have most of the math
>I need.

Never rule out that you might learn something.

>1. How good do you feel you need to be in math to be a
>fairly comptent programmer?

In generic languages like C etc. you should be fairly proficient.

>2. How do you feel about your math skills?

They're poor, but I either learn what I need, or emulate the result to the point of not needing to learn the hard stuff.

Andy

Listen to Andy...

I do well in math, but I ask for help from a few fiends if I cannot figure out an algo... I asked for and GOT help form Matty on my 3D wheel spin decay algo for my SLOTS game... Tight piece of coding between the two of us... Need to retexture that so those silly Nvidia cards can see the textures when they cheat...

That Calculus stuff freaks me out, but I mostly see it in academic papers and crazy shader stuff.


Bad marks in math for me are because they don't teach it right (in my opinion), and that is actually a result of me thinking in a logical, uniform way associated with programmers.
For example, polynomials.
They taught them to me as though they are arrays of variables, where each block can be solved to retrieve the values you want.
But actually, they are functions for a reason. When a block equates to 0, that whole part of the equation becomes equal to 0. This isn't because somebody read 2x-4 and realized to have it hit the x axis when x=2, it's because the function works like that!
Gah.

yeah teachers are not the best for teaching math that you will need for programming

infact now i can out calculate my dad and most people, my dad used to program when he was younger. he knew basica

One of the problems you may run into is that if you go and actually study computer science, you'll find that a good part of the curriculum is made up of math classes.

I'm so-so at math, and even though I haven't really run into any major math-related issues while programming, it was the math classes (and them alone) that derailed my attempt for a C.S. degree prematurely.

Hello.

Vodka and the ability to cook are more important.

Goodbye.

Raw enthusiasm and dedication will serve you far better than any skills in maths (although the skills do help)

If you can understand the logic of how games operate, you may not even need the maths, I failed my A-Level Maths with an Unclassified, not even an F grade (twice, got same grade after a retake)

I'm decent at maths but crap at exams as my courseworks were always top notch. The difference being that maths is easier when you can visualise it in code, out of the text book on paper in a classroom, I've no idea what I'm writing down. I still get Cos and Sin mixed up to this day in my code, does that make me a bad coder. I'm shit at maths!

I was told by pretty much everyone to not be a games programmer, I ignored them and am now onto my 8th game.
Even if you're not particularly talented (like me) you can still make games if you try hard enough, if you don't understand some maths, just look it up and copy and paste in. Easy.

1. How do you measure being good at math? Algebra isn't too important, calculus, sets (including binary algebra), trigonomety, planar and spatial (for 3D) geometry, and matrices and vectors will certainly be required at some point.

2. Good enough to get me by, but there's lots of room for improvement.

Depending on what kind of programmer (your abstraction level) you want to be there are certainly skills more important than mathematics.

1) got to agree with others that for 2D, not that vital but for 3D much more important. Also if you are good at maths, changes are you are good at other things too like logical thought etc and are generally intelligent and thus should be a pretty good programmer (maybe).
2) Used to be top of entire year of school, but that was a long time ago...I can figure stuff out again when I need to + you've got google so no longer need to remember quadratic equations in detail etc.

Years ago I asked a mate of mine "What does it take to be a good programmer?"
He said "The ability to fit your own caffein drip."
To that I'd add "Tenacity" - the ability not to give up.

I totally failed maths at school - lowest in class. But I went on to be a pro programmer for 20 years.

The most I ever needed to understand was binary (for bit-flags) and sines and cosines to create curves. The rest I've managed to dodge with no ill-effects, and especially so with Blitz (thanks Mark!).

So unless you're writing 3d World Studio or a light-mapper ignore the teachers, and half of the comments above.
If you enjoy it - you'll be good at it.


1. How good do you feel you need to be in math to be a fairly competent programmer?


That depends on what you want to program. Although I think being capable of grasping the logic behind an algorithm as well as being able to think in a manner that lets you create your own is important. Increasing your mathematical knowledge can help programming skills. Some of the mathematics subjects I studied at university definitely come in handy - "Numerical Solutions to Differential Equations" is one example, while others "Einstein's Special Relativity" are fairly useless to most situations (unless of course we write a game involving objects moving close to the speed of light.)

On the other hand - I have a friend who hates mathematics, avoided studying it at school - did an Arts degree at university (ie English/Humanities/Writing) and who now writes programs for a large company that generate various scripted letters/mail. In that instance it is his writing ability more than his mathematics which is important as the actual logic is fairly simple - a lot of 'if..then' statements linked to blocks of text.


2. How do you feel about your math skills?


Happy with them, unfortunately as so much of what I learnt has little practical use in my current situation it is slowly being forgotten....

I always made straight A's in math classes through high school and college. Now, many (many) years later, I use almost none of this math education at all.

As others have mentioned, it really depends on what you do. I went the course of business software development, and in recent years have specialized mostly in software for the insurance trade. There's a lot of making different GL buckets add up to zero, not much more math to it than that.

If I had chosen a different programming route, then certainly math would have played a much bigger role.

When you work toward a degree in computer science, they lay the math on pretty thick. Whether you use that math after college really depends on what you choose to do with your programming talents.

Mark.

personally, I feel much better about myself knowing a little about matrices (for true 3D stuff) and Quaternion rotations. I still dont know all I need to but I was able to work around alot more problems recently that before would have stopped me dead in my tracks :)

Your standard Algebra and Trig come in very handy, even at a basic level. For instance, rotating something simple, 2D or 3D.

1. How good do you feel you need to be in math to be a fairly comptent programmer?

Math per se, it depends on what you are programming. Business apps generally require very little math - you do have to know what formulas to apply to each situation.

Most important to all computer programming is computer logic and data structures. Discreet math is a course you will need in order to be a good computer programmer. A solid grasp on data structures is an essential as well. Beyond that it is practice practice practice.

prerequsits to programming:
1. imagination
2. curiosity
3. mental elasticity

if you can 'imagine' a solution, you'll need to know other things (like math -> curiosity)...and maybe you can discover that your incredibile solution is 'old' (ie: a simple algo/test already discovered) or something total new.
Just my though (I'm a programmer for hobby - no IT school, I learn to use math every time I need to resolve a problem....).