The most common question people ask when exploring the possibility of a career in IT is this: “Do I need to be a maths whiz to have a successful career as a programmer?”.
Unlike the nature of the IT industry where determinations are specific, the answer isn’t a simple yes or no. It’s more nuanced than that.
People make the connection between maths and programming mostly because of the type of logical thinking and problem-solving needed for both. However, you don’t necessarily need to be a number whisperer to be a great problem-solver, and vice versa.
So, do you need maths to become a programmer? The best answer is: not really, but it helps.
It all depends on what kind of programmer you want to be, the kinds of projects you wish to work on, and whether or not you’re able to deeply understand advanced mathematics.
If you want to get into more complex programming like graphics, video games, VR and AR, cryptography, encryption, machine learning, data analysis, image compressors, language design, etc. then yes, some maths is definitely needed.
In these cases, a decent understanding of linear programming, geometry, and discrete mathematics is almost mandatory.
If you are wanting to be successful in any of these programming disciplines the best place to start is by learning linear algebra. Understanding this helps tremendously if you are wanting to work with vector and matrix maths.
Discrete mathematics is a tool to be used as a building block to develop your logical thinking. It deals with finite sets and discretely increasing/decreasing numbers and is used in integers, graphs, and logical statements. It is also used for software design specifications, algorithm analysis, and various other practical applications used in programming.
To get a general understanding of useful maths concepts, it’s a good idea to learn graph theory, set theory, and type theory and build upon these as you progress.
Resource tip: If you want to work with advanced programming but need to brush up on your maths skills, we recommend checking out Khan Academy. It’s a super useful online resource that manages to deliver a deep understanding of important mathematics disciplines to help you become an advanced programmer. The best part? It’s free.
If you are not looking to work with projects that require complex programming as the above, then suddenly maths becomes not as important as it may seem, generally speaking.
The majority of what corporate programmers do in a day involves very little maths skills, if at all.
Most programming projects are built with libraries that handle a lot of the more complex code for you, including maths if it is necessary. You will need to know how to interface with existing libraries, APIs, etc. but you won’t need to build everything from scratch.
Front-end development, back-end development, mobile development, software engineering, quality assurance engineering, and DevOps engineering do not necessarily require a deep knowledge of maths. Having a basic understanding or high school level knowledge will get you by for sure.
So, we have discovered that understanding mathematics is mandatory if you want to be an advanced programmer and knowing basic maths skills is certainly helpful if you want to be a general programmer. But what else is needed to become the full package?
Decoding problems is essential to programming. But is understanding mathematics essential to being a good problem-solver? Sure, here’s why: maths and programming are essentially the same things, just applied differently. This is because, when boiled down to its core principles, mathematics is just applied logic. And logic is a fundamental cornerstone of programming.
The way you approach math problems is similar to the way you approach programming problems. With a maths problem, you are given a list of things to reach a goal. You need to put the things you know together in a way to figure out the problem. Programming is the same way. You get a list of requirements from a client and an end goal.
Programming involves collaboration with others to tackle complex challenges. In agile development, for example, working as a team is the only way you are able to arrive at a solution for the problem you are tackling. Sharing ideas, working closely with colleagues, and giving/receiving feedback are crucial components of programming culture. Developing your ability to collaborate requires working on your communication skills.
Unfortunately, the misnomer attached to programming is that it is devoid of any creativity. However, when it comes to solving various problems (of which there are many #programminglife), you’ll inevitably find more than one possible solution. Discovering multiple solutions requires a creative way of thinking about the problem in the first place. Then, deciding on the best solution involves a combination of curiosity, determination, and most importantly, creativity.
Having a solid understanding of what mathematics is will help you a lot in your career as a programmer. For most basic programming projects, you don’t need to be able to solve complicated maths problems. But, if you know what f(g(x)) means it will certainly help you a lot. It all depends on your career goals and the projects you want to work on.
We think the most fitting way to summarise this article is by creating our own formula:
Solve for X (do you really need maths to be a programmer)
X = not really + it helps x depends on career ÷ project type
An executive’s guide to AI and Intelligent Automation. Working Machines takes a look at how the renewed vigour for the development of Artificial Intelligence and Intelligent Automation technology has begun to change how businesses operate.