How important is Maths for Programming

Aspects of programming are quite difficult. Most of programming is also fault-intolerant in that typing errors or missing semicolons can waste a lot of time.

Mathematics is also quite difficult and intolerant of mistakes. I suspect part of why mathematical ability is considered an indicator of programming ability is that the skill sets involved are similar.

If you're considering software as a career move, it would probably be worth learning some maths. Not necessarily because it will be useful in your day to day work, but because the precision in reasoning it'll encourage will be useful.
 
Depends on what you are developing.

If you work at a company where your role is to make things shiny-shiny, or easy for the user to use, then its not massively important. i.e. Front-end developers, and programmers that are really customisers.


For everything else its very important.
 
Most games programmers have an extremely limited grasp of maths. Mostly people implement things designed by other people who understand the maths, poke things until they work or learn a narrow subset that helps with the work they actually do.

The maths you need to do computer graphics isn't taught at GCSE anyway.

All too familiar an experience for me, should have seen my learning curve with vector maths when I started modding games lol (I don't think my secondary school even spent a moment on teaching it that I recall).
 
As has been started by others, it depends what kind of programming you're doing as to how much maths knowledge you need. I'm a "professional" developer but I'm the first to admit my maths skills aren't the best. I have extremely good logic skills and pretty good algebra/formula skills though and for the work I do (back-end systems, databases, etc in varying languages - some involving lots of maths) it's not a problem.

There's no way I'd make it in the games industry though because no matter how many times I've been taught matrixes and vectors I always forget how to use them :D.
 
Most games programmers have an extremely limited grasp of maths. Mostly people implement things designed by other people who understand the maths, poke things until they work or learn a narrow subset that helps with the work they actually do.

The maths you need to do computer graphics isn't taught at GCSE anyway.

This, but,

I love quarternians, rotations about any arbitrary axis. I have absolutely no idea what the heck it is, how it works, or why it uses a fourth dimension, but I can read the formula and program in the functionality to make it work. You do not need to be a mathematical genius to use the fruit of other peoples research, just as you don't have to be Einstein to understand E=mc^2

OP there are mixed results here. Generally, it helps to understand the science that underpins computing, but high level languages are human readable languages, not mathematician readable languages.
 
Last edited:
Programming is a toolkit - the subject domain itself usually requires maths.

For example - image processing often requires fast fourier transformations, the idea beyond just making an FFT requires maths. Vector spaces aren't complex, they're just arrays.. but implementing algorithms needs understanding of maths.

If you're doing UI design - you'll need human understand etc rather than the back end maths.

For the record - I have a BSc in Software Engineering (rather than computer science) and a large amount of international business experience, after 14 years I moved into product management but now do programming for fun in conjunction with astro work - I'm writing an image alignment tool in my spare time using FFT and a phase correlation, along with other optics based algorithms such as deconvolution.
Here's some links showing the maths I work with:
Phase correlation: http://en.wikipedia.org/wiki/Phase_correlation
Deconv - nice as it has nice piccys: http://www2.ujf-grenoble.fr/medecin...DeconvolutionMicroscopy_Sibarita_Springer.pdf

The difficulty I have is that I can't, quickly, optimise the algorithms without spending time researching the maths (I find that quite therapeutic). That is the difference between doing maths then adding programming.. vs my SE training of managing and producing software which is child's play but then I did 4 years of things like turning english into set based maths etc (formal methods, Z) as well as quality, management etc.
 
Last edited:
Programming is a toolkit - the subject domain itself usually requires maths.

For example - image processing often requires fast fourier transformations, the idea beyond just making an FFT requires maths. Vector spaces aren't complex, they're just arrays.. but implementing algorithms needs understanding of maths.

I remember having great difficulty with fast-fourrier at Uni (computer science). Haven't had to touch them for years but now it looks like I've been drafted into a project where I've got to re-write lots of algorithms currently written in VBA into a "proper" system. Help :D.
 
I'd like to think that the kinds of skills that you learn whilst studying Maths are quite helpful when applying them to programming. Logical problem solving, and symbol manipulation(things like algebra, for example) allow you to learn how to adapt to different problems and abstract from them to find a solution.

Other than that, (which people have already said) it depends on which areas of programming you will be looking at and to what extent you will be looking at them.
 
I love quarternians, rotations about any arbitrary axis. I have absolutely no idea what the heck it is, how it works, or why it uses a fourth dimension, but I can read the formula and program in the functionality to make it work.

No mathematician would use quaternions to represent rotations. They're a horrible, vile hack of a thing. Personally, I hate them.
 
I'd like to think that the kinds of skills that you learn whilst studying Maths are quite helpful when applying them to programming. Logical problem solving, and symbol manipulation(things like algebra, for example) allow you to learn how to adapt to different problems and abstract from them to find a solution.

Other than that, (which people have already said) it depends on which areas of programming you will be looking at and to what extent you will be looking at them.

^^ This is very fair and quite accurate. Lots of comments have focused on specific applications of mathematics in computer programming (eg. graphics), but unless you find yourself working in that area, chances are you'll never need to know anything about it. Understanding logic and analytical method, on the other hand, is always useful; as is having sufficient mathematical ability to understand the basics behind cryptography and algorithm design.
 
Solving a complex maths problem requires a methodical logical mind. Breaking a big problem down into discrete steps.

THAT is where maths and programming really meet.

Maths is only used in programming if you are solving a maths problem.
 
I'm an engineer. My experience of coding is for scientific computing (FORTRAN, Matlab, C etc).

SURELY if you want to write some proper code you need to have a decent understanding of vectors and matricies, what they are, and how they are defined and written in code.
 
Fro my limited experience I don't think math is essential but certainly beneficial. Unless of course you're running in silico experiments in Matlab, Mathematica or other languages used in science.
Even then, for what it's worth, I bluff my way through it. Math while not a crippling weakness isn't my greatest strength due to lack of use. Who'd have known after a degree in genetics I'd suddenly need to rely on math.
 
Developer for nearly 15 years; Never needed anything beyond rudimentary maths.

It entirely depends on the industry you are writing software for. If it's an industry that does maths, then the software will need to do maths, and you'll need to do maths to write it.

However, even within industries, there are sub-sets. I worked in the finance sector for 5 years and never did anything mathematical. (I was writing webservices for obtaining reference information and similar).

I wouldn't even know where to start if I was asked to write software for any kind of simulation, though. Like a games engine or engineer modelling.
 
Last edited:
if your a quant developer for an Investment bank, you will need maths. Most of us have PhD in maths/Physics or at least MsC. But that's a Quant developer. Other developers usually just require good maths skills. The reason is more that there is a wide selection pool rather than the necessary need
 
Security and especially encryption related algorithms also require a very solid understanding of maths.

Exactly this!

I did a cryptography module for my computer security degree final year. Understanding an algorithm is one thing, being able to write a program that uses the algorithm is another. If you really struggle with maths, then the cryptography area will likely be very hard for you.
 
Back
Top Bottom