How important is Maths for Programming

Associate
Joined
8 May 2009
Posts
296
I've seen so many examples now where adverts for jobs or courses say "Must have good Mathematics qualifications". It seems learning C, C++, Java, etc... is heavily related to Maths.

I've got a D in GCSE Maths. I think I'm one of many who could have been fairly decent at it, but it just wasn't a well taught subject in my School. When I did my GCSE the class I was in could only ever achieve a D as it's highest grade.

Do you think maths is a large part of programming?

If Yes - why and how does it come in?

If No - why do loads of adverts mention it?
 
Maths is important for two reasons: 1) there's lots of applications of programming (graphics, machine learning, data analytics etc.) which require maths 2) maths is a good predictor for programming ability (I work at a "not bad" university and maths a level was the best predictor for passing our intro java course ...)

I was recently at a games industry recruitment talk where they essentially said "if you're not strong in maths forget it" (also C++)

Of course not having a maths qualification doesn't mean you have neither mathematical ability or programming ability but qualifications act as predictors and most recruitment is a statistics game.

Marcus
 
Learning to program does not require you to be good at maths. Writing software to solve mathematical problems however, does require you to be good at maths. Two separate things surely.
 
I love programming, I absolutely adore it.

The only problem i've found in the last 10 years is, I'm really not that great at it :-( I don't mind too much. I love Linux, I love coding, I love the whole VIM environment, of being in a black box and lots of technical stuff on the screen.

I'll never be the best programmer but then I'm not aiming for that.

I'm aiming for a move to IT Security, or IT Management or something similar, but just wondered as lots of IT jobs are about programming and Maths.

BSc Computer Science states you need a Maths A-Level too - but I guess that's a little different - right?
 
Maths is probably the most important aspect of programming.

You dont need to be an expert but you need to know the concept of logic, transformation and algebra.

By the way am no expert but I know what to do and how to do it just cannot be *****!
You need that type of mindset and I just dont have it... :(

Goodluck! ;)
 
It depends on the type of programming you do. For web stuff, for example, it's not massively important. There will be the odd occasion it will help, but a basic understanding should suffice.

On the other side, doing something such as graphical work, or games development absolutely will require you to have a very sold understanding of advanced mathematics.
 
What others said. But I'd venture that it's more important to love programming and all its avenues. The rest will should take care of itself. In my younger years I had it in my head to develop software as a hobby, then onto developing for a living. I had a pretty advanced skillset but never cared enough to do it everyday and work at it. I suppose Maths would come more easy if you cared about it and worked at it.
 
Totally depends on what type of programming you want to get into. However a good grasp of algebra is required for all programming IMO.
 
Even fairly basic programming you'd have to deal with things like bit flags, binary shifts, etc. so having a reasonable understanding of maths will tend to give you more of an insight into the behaviour of that code rather than just working it out by trial and error or leaning by rote which inputs to use for a desired output or vice versa.
 
Learning to program does not require you to be good at maths. Writing software to solve mathematical problems however, does require you to be good at maths. Two separate things surely.

Things like Discrete Maths and binary/hexadecimal arithmetic imo will always come in handy.

@OP - check out Project Euler if you want to combine your love of programming with learning some cool Maths e.g. prime number calculations, which as I understand it is essential for encryption algorithms.
 
I teach Computing at a large secondary school/sixth form. Having a strong grasp of Mathematics is essential in doing well at the subject of Computing. This is nearly entirely down to the link with programming.

I would never say you can't learn programming if your Maths is weak, however I would say the strongest young programmers I have met are superb budding Mathematicians as well.
 
OP - What type of programming do you envisage yourself wanting to do. That will guide people better. Various type will require differing strengths. To put it into perspective for my company I have employed more programmers with Maths/Physics backgrounds than Computer Science. I think you will severely limit your options if you don't increase your strength and significantly so. You will also miss out on some pretty cool stuff to be involved with. Just because you didn't get maths sorted back in the day doesn't mean you can't do it now. Just dive in and find something that captures you and learn - you will do far better I would guess than you ever did with 'dry' textbooks.
 
As said above, many applications rely heavily on maths and even applications that don't directly do still indirectly require math skills. Data structures and algorithms are very closely tied to maths: sorting, trees, graphs, hash tables, tries, search, encryption, regex, nlp, compression, encoding, path finding, various networking algorithm etc, etc. Techniques such as dynamic programming, linear programming, MILP, Monte Carlo, etc all predate actual computers, programming refers to a mathematical technique. Programming concepts such as recursion have a strong basis in math, e.g. Proof by induction.

You don't always have to go too deep but normally your programming gets better when you understand the underlying maths. E.g. Given a binary tree representation what is the expected search time to find an item in a set, verses a red-black tree, versus a trie tree, versus a hash map. How long does it take calculate the hash key for a hash map to achive that constant time look up? Can you design a better hash function that reduces collisions?


And don't under estimate how often you directly have to use maths skills, e.g. Statistics, bussiness analytical, data mining or analysis, even when from the onset it doesn't look like these skills are needed.

Then there is the second aspect. Math is by far the best indicator of programming ability.we are much more likely to hire a math grad than a computer science grad.
 
Then there is the second aspect. Math is by far the best indicator of programming ability.we are much more likely to hire a math grad than a computer science grad.

I'm not entirely comfortable with that - some of what I'd consider the best programmers I know aren't overly gifted at maths, but good at coding robust, reusable code with a user friendly end product, etc. etc. and the ones that are gifted at maths tend to produce very focused almost machine like code thats locked entirely to its intended purpose (very easy to break if its not used 100% as intended), often not the most end user friendly or usable outside the immediate context, but extremely focused and efficient at what it does.
 
Back
Top Bottom