How important is Maths for Programming

And you're missing the point that no, it doesn't. I think I've only ever had to worry about binary searching once in my entire career, and that was for an interview test. The rest of the time it is just of insignificance.

.indexOf() or .FirstOrDefault() et al. do the work for me, in 9999/10000 cases.

You ate probably one of these programmers that use a Vector for everything and wonder why your code us so slow
 
You ate probably one of these programmers that use a Vector for everything and wonder why your code us so slow

No, because I never need to use anything like a vector. The issue of speed has never come up with any of my software, aside from issues brought in by frameworks like NHibernate/EF and their malpractice of database queries.

Why is it so hard for you to understand that there is a massive amount of software out there that just doesn't ever need to do anything with vectors, trigonometry, or other "mathematical" thing?

Do you think any and every .com needs to implement Pythagoras's theorem or something?
 
Last edited:
No, because I never need to use anything like a vector. The issue of speed has never come up with any of my software, aside from issues brought in by frameworks like NHibernate/EF and their malpractice of database queries.

Which tells me all I need to know.


Deciding upon which Collection to use is a daily occurence. And if you do choose any hash map derived structure you will frequently need to create your own hashing function for objects.
 
Which tells me all I need to know.
Do go on... there's no point pretending to hide something you have to say.


Deciding upon which Collection to use is a daily occurence. And if you do choose any hash map derived structure you will frequently need to create your own hashing function for objects.

No, it isn't. new List<T>() is sufficient for ... I'm not even going to bother making up a fraction because it's just not worth it. There are so many times it is just ridiculously unimportant to worry about these things.
 
Last edited:
Which tells me all I need to know.

Deciding upon which Collection to use is a daily occurence. And if you do choose any hash map derived structure you will frequently need to create your own hashing function for objects.

I've got to say, for the most part, I agree with DJ_Jestar.

Yes, it's important to know when to use a hashmap over a list but for the everyday things where you have a handful of items then using a list and iterating over it is no big deal.
Similarly, I've not had to code a hash function by hand for ages. These days it's a case of selecting an option in the IDE, selecting which fields you want to use in the hash and letting it generate the function for you.

Again, it's useful to know how to construct a function that will minimise collisions, but it's not vital knowledge to get most programming tasks done.
Similarly knowing the relative big-O time and space complexity of various different sorting algorithms is something that for most cases doesn't matter as you will just call the Sort method on the collection you're using, or use a built in library.

There are things that do require deep algorithmic knowledge, but you have to remember that the average developer is knocking up simple CRUD websites and generally doesn't have to do that sort of stuff on a day to day basis.

I personally would put the ability to structure code well and write it in a way that can be understood by others way above algorithmic knowledge for the vast majority of development tasks.
 
Last edited:
I'd say logic is very important, which is linked with being mathematically-minded.

I don't think you'll be doing differentiation 8 hours a day, 5 days a week however.
 
Quarternians have dimensions of Complex^2, so aren't strictly 4 dimensional, but are represented as such for exactly the reason you describe, to make it work on a computer.
They are horrible ways of doing rotations though.

No mathematician would use quaternions to represent rotations. They're a horrible, vile hack of a thing. Personally, I hate them.

Hack and horrible they may be, but how are you doing your rotations about an arbitrary axis? Have things changed since I was at university?

My other favourite hack was using Bézier curves to pre determine a trajectory and attaching the end node to a target in motion.
 
Last edited:
Quarternians (from just looking at the wiki page) seem like just going from one dimension to another before then mapping to the next..

Sort of an early object orientated model design :D
 
Hack and horrible they may be, but how are you doing your rotations about an arbitrary axis? Have things changed since I was at university?

I always preferred matrices, but the higher memory requirement puts people off. Axis/angle works seems to me to be a much more natural and desirable method than quaternions for the same memory footprint. However, the games I've worked on have always had this stuff put together already so I just use whatever they're using. Most of the time if you're working in a team you don't get free choice of stuff like this.
 
No, because I never need to use anything like a vector. The issue of speed has never come up with any of my software

Why is it so hard for you to understand that there is a massive amount of software out there that just doesn't ever need to do anything with vectors, trigonometry, or other "mathematical" thing?

Is there any chance you're making extensive use of library routines for, say, searching or drawing pictures on a screen? If so there's rather a lot of maths in the library routines, written by someone else.

If so it would follow that you don't need to worry about whether sort() is heap or insertion because someone else did worry about it. Presumably someone like D.P..

I worry about asymptotic performance of algorithms and obsess over API design, but that's because I'm attempting to write developer friendly libraries in the hope that other people will find them useful. So I do lots of maths :)
 
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.

??? I'm not quite sure why you're quoting me with this post - I just pointed out that graphics can be more maths heavy than most business applications

yes clearly some programmers do make extensive use of libraries etc.. this is true with business applications too - I know of one quant dev with a masters in maths who seems to have forgotten most of it and is now seemingly clueless when it comes to optimization - most of what he needs day to day has already been implemented.

though I'd also point out that 'maths' as far as programming is concerned isn't just limited to machine learning, numerical methods etc... as soon as you write an algorithm you're doing maths... programming at a very basic level is maths.
 
??? I'm not quite sure why you're quoting me with this post - I just pointed out that graphics can be more maths heavy than most business applications

I was making the point that even graphics programmers get by with a very limited grasp of maths. Graphics is maths heavy, no doubt, but you don't actually have to be very good at it to make it work. I know plenty of programmers who couldn't tell you what an affine transformation is but can easily write code using one.

though I'd also point out that 'maths' as far as programming is concerned isn't just limited to machine learning, numerical methods etc... as soon as you write an algorithm you're doing maths... programming at a very basic level is maths.

While this may be true at an abstract level, it isn't true at the practical level. What you do when you're doing maths and what you do when you are programming are very different beasts indeed.
 
Have to agree with DJ Jester in 10 years of programming never need anything other than GCSE level maths.

I'd be interested to know what grade you got at GCSE, whether you have any other maths qualifications (like an A level), and what you earn now as a programmer...

Just because you've been doing something for 10 years doesn't mean you have a successful career in it.
 
While this may be true at an abstract level, it isn't true at the practical level. What you do when you're doing maths and what you do when you are programming are very different beasts indeed.

not necessarily... perhaps if you're just making use of a bunch of libraries etc.. for everything you do. But generally programming is maths.
 
You ate probably one of these programmers that use a Vector for everything and wonder why your code us so slow

Are you for real?

Speed when it comes to the majority of code hasn't been an issue for over a decade, time is money. This isn't the days of Assembly anymore.

Programmers make use of libraries. This is a good thing. It keeps things nice and consistent. The majority of programmers don't need to worry about the details of those when it comes down to it. Those who are going for library creation and optimisation, then what you say works. Trying to say it is a must for all programmers though (as is the impression I'm getting) couldn't be farther from the truth.
 
Last edited:
I'd be interested to know what grade you got at GCSE, whether you have any other maths qualifications (like an A level), and what you earn now as a programmer...

Just because you've been doing something for 10 years doesn't mean you have a successful career in it.


B grade. Didn't do A-Levels, HNC, then comp sci degree at Cardiff. 40k - South Wales which is pretty good for around here. Obviously it's crap if you live in London.
 
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?

I can assure you that you do not need to be a programmer to build a career in IT, although obviously it will help in some areas. I think there are skills that can help with programming, of which Maths in one, but more a general ability to think systematically and those skills can typically be applied across a broad range of roles.
 
Back
Top Bottom