How important is math for software engineering, and does it help in problem solving?

I’m well aware that you can learn programming, data science, etc… without being good at math, but one thing I always keep hearing is that; the better you are with math concepts, the better your problem-solving skills become. Seeing how many things in programming derives from concepts in math (functions, vectors, matrices, etc…), do you believe having a strong foundation in math would help someone in this type of field?

I’m asking this because I’m in a bit of a tough situation right now. I’m looking to enter college this year and I have only 3.5 months left to prepare for the entrance exam.

The entrance exam is 10 math questions, and let me tell you that my knowledge in math is really, really bad (something like 7th or 8th grade perhaps) :frowning:

While I think that I have enough time to prepare myself for the exam, I think that the only way for me to pass it would be through rote learning. So I’m in a bit of a pickle where I can choose to either pause this year and study math properly to establish a good foundation, or I can go with the plan right now, enter college sooner and not ‘waste’ a year.

I’ve heard a lot that having a good foundation in math is beneficial in software engineering, so I would like to know based on the replies I get what course of action I should take.

As I matured, I began to find math actually very interesting, and it’s a science which I would love to study properly, to help me in “abstract thinking” and improve my problem-solving skills, because if I’m looking to be a software engineer, I may as well give it my best, so I hope it would help. However, if I take the entrance exam this year, it’ll be as I said, through rote learning. I won’t be able to quite understand all the concepts clearly, but at least I won’t need to wait another year just to enter college.

I really want to hear your opinions on this, how much beneficial is math for software engineers? Does having a strong foundation lead to better problem-solving? If two programmers were assigned a task and both of them have spent an equal amount of time (let’s say 10k hours) practicing programmers, but one has better math knowledge than the other, would that person be able to produce a better/faster solution than the other guy?

A slightly off-topic question I’d like to ask is: As someone who is 25 years old, am I old to enter college? I never knew what I wanted to do in life, so after graduating high school, I never planned which college I would go to, but now that I know, I think I’ll feel awkward being the oldest guy in the class :\

never to old to want to study something, even at this age it should be more clear what you want to do, instead of rushing in because it’s what is done without having any idea about what to do.

For Maths, it is not much the concept themselves (well, depending on your interest some higher maths may be needed, like for example for simulations and modelling of real systems), but is the fact that it is not much different as a concept than working with equations, functions, where you manipulate stuff without knowing the values.
Problem Solving comes maybe better from applying that maths to physics, the problems to solve there tend to be more the kind of problem solving used in programming. (obviously knowing the math is needed in advance)

If you want a good online source, can I suggest Khan Academy? there are maths and physics courses from basics to advanced stuff

2 Likes

It is mostly discrete math, so you will need some patients with that. it’s not difficult but more like learning a new language, once you read, it becomes easier.

1 Like

you need to understand algorithms. Understanding it you will learn languages quickly.

There’s obvious applications of math for specific fields, like calculus for physics engines, statistics and linear algebra for machine learning, and so on. Generally speaking, it never hurts to learn discrete math for CS, especially stuff like induction and graph theory, but honestly I’ve never approached an algorithm and said anything like “I need a Hamilton Circuit here”.

When it comes to strongly typed programming, abstract algebra definitely helps: knowing things like Functor, Monoid, Semigroup, and so forth are all amazingly helpful when structuring code. It’s like Design Patterns that never go out of style.

1 Like