As more and more positions open for computer programmers and scientists, many are confused: do you need to know math as a software developer? This is a very old question that resulted in countless debates, but common sense and popular opinion still incline that you, indeed, need math in order to succeed. Of course, there are exceptions to any rule and I will try to explain everything I know on this topic in this post.
Who needs math
To some extent, everyone needs math. It helps develop abstract reasoning (as this whole subject is abstract) which is valuable in computer programming, where we also have to deal with levels of abstraction. It allows the whole team to be consistent in skill, language and problem solving techniques, simplifies the hiring process.
An analogy with a car might help: do you need to know how a car works in order to drive it? While it is possible to drive a car with no knowledge whatsoever about ICE and transmission, it would definitely help and provide competitive advantage to know.
It can also be used as an indicator if CS is for you: if you had troubles with pre-calc in high school, chances are, you are not going to enjoy computer science in university.
Who does not need math
While math is extremely valuable for everyone, some programmers may get away with knowing only the basics. That relates to people who deal with a lot of mechanical work and might include system administrators, QA, support, DevOps and general programmers who do not deal with inventing new algorithms, principles and concepts. Shortly, if you want to bring something new in Computer Science – you cannot do so without math.
What kind of math
When you come up the point where you have to choose which type of math do you need to study, it really depends on what exactly are you working on. For example, machine learning has a lot to do with linear algebra and to study efficient algorithms you need to have an idea about discrete mathematics, number theory and proofs. There is no fits-all size answer for this question, but it is easy to find for yourself: once you get more proficient in whatever it is that you are interested in, you will get an idea of what are you missing and what should you study.
I think that the role of math in our everyday life is really overlooked and we should spend more time studying it. While you do not necessarily need math to succeed in Computer Science and programming, you must know it to invent/develop something entirely new and solve complex and essential problems.