It’s a question that comes up time and time again in all the “Would you be a good software developer/engineer?” articles and YouTube videos. For me, it was always the most nail-biting question of them all when I was considering whether or not to pursue development as a career.
Where does maths come into coding anyway, I hear you ask? Long story short: If you’re familiar with mathematical and logical ways of thinking, you’ll be more likely to think of an elegant solution to a complex problem, able to condense your code down into fewer lines, and it will probably be more efficient and easier to read.
Some people say being good at maths is essential, some say it’s not necessary. I didn’t know who to believe, because hey, this is some random person on the internet, they could be right, they could also be wrong, everyone’s different… right?
Well folks, I am about to become yet another one of these random people on the internet. But this time, I’m going to approach the question from a new angle - an angle that I think will give anyone who is unsure of whether or not their mathematical ability is a deal-breaker for a career in software development. I’m then going to argue why that angle may be complete and utter rubbish.
Confusing, I know. Bear with me. First I’ll tell you why I think you do have to be good at maths, then I’ll tell you why restricting yourself to that way of thinking is a bad idea. I’m sure you’ve already read the argument that coding requires logical thinking, as does maths, so if the reason you’re not good at maths is because you’re not good at logical thinking, you won’t fare well. And this is absolutely true. However, you can improve these skills, if you want to.
Here’s the question I think people worried by the importance of maths in software dev need to ask themselves and truthfully answer:
If you had to take a high school maths class again, right now, and for an undisclosed amount of time, would you hate it?
If the answer is “maybe” or “yes”, in my opinion, software development probably (note: probably) isn’t for you.
Here I should give you an idea of my own mathematical ability: I’m not bad at maths. I got an A in my GCSEs and a C in my AS Level (for anyone unfamiliar with the UK education system, GCSEs are the qualifications you get when you complete mandatory schooling, and A Levels are generally is the level of qualification you need to pursue a subject at degree level - AS Levels are half of an A Level). Still, I wouldn’t say I’m “naturally good” at maths. I improved my grades from Cs to As during my GCSEs because I genuinely enjoyed the process of learning how to think mathematically. If I’d put in all the hard work and still gotten Cs, sure, I would have been downhearted, but I’d have still enjoyed trying. AS Levels were tough, but I was very proud of achieving a C, and I enjoyed the work that went into it. Please don’t ask me to recite my times tables, though. They left my head a long time ago.
This “maths class” feeling isn’t because I’ve had to do mathematical equations every day (though I have had to do a few), it’s because I’ve had to get back into the mindset that I was in while I was at school. I’ve had to go back through the process of being presented with all these fancy new words and symbols and being completely overwhelmed at first, then slowly but surely figuring them out. The process of completely not getting it, (why am I even learning this anyway, when will I use it?), pouring over it for hours and putting in some serious mental elbow grease, still not getting it, and then suddenly one day, it just... clicks. You understand what you’re doing and why you’re doing it. Often this will come to you at 3AM when you only just managed to push the problem out of your mind and fall asleep an hour before, annoyingly.
However, it won’t click unless you put in this mental elbow grease. And, unlike school, there’s no one there telling you you have to do it, or a grade at the end of it to motivate you (or frighten you into putting in the effort). You have to find your own motivation - and if you don’t enjoy doing it, where will the motivation come from? There have been countless times that I’ve been so frustrated by a problem, or a bug, that if I hadn’t enjoyed the process, I would have given up learning to code very quickly and thrown my laptop out of the window. The frustration of dealing with a tough bug in your code will destroy your mental wellbeing if you don’t enjoy the process of fixing it - I’ve only been at this for 7 months and I already know this to be 10000% true (mathematically not possible - I see the irony here).
And this learning process isn’t one that will end one day. There’s always new tech you’ll need to get to grips with, it’s always changing, there will always be something new. Therefore, it is one long high school maths class for an undisclosed amount of time. If the thought of such things fills you with dread, maybe software development isn’t the right path for you.
Now I want to look at the flip side of the coin.
Put everything you just read to the back of your mind for a second.
I don’t know you, dear reader, you might be completely different to me, so everything I’ve just argued could be garbage. If your logical thinking skills aren’t that great, it is possible to improve them, and in turn, your ability to tackle these mathematical problems. There are many ways you can do this which aren’t necessarily sitting and studying maths - for me, a lot of my skills have come from studying History and other humanities. Doing things like brain teasers or riddles can really help, whatever floats your boat. But one of the best things you can do to improve your logical thinking skills is, drum roll please… coding.
The articles I was reading 7 months ago forgot to mention that coding itself improves logical thinking skills. What if you start coding, and find that you love it, regardless of whether or not you liked learning maths? If you enjoy creating things using code, you may start enjoying the more mathematical/logical side of it because they are the necessary means through which you create. Don’t forget, you learn as you go along. You don’t need to have already fine tuned your skills. If you enjoy this ultra cool feeling of making stuff appear on your screen, you will naturally improve your logical thinking as you learn how to do that stuff, and you will do it while you’re having fun.
What I’m trying to say is, give it a go. There’s no harm in trying. You can try it for nothing using resources like freecodecamp.org. The worst that can happen is that you realise “hey, I don’t like this”, and you’ve spent a week or two coding when you’d have rather been doing something else. The best that can happen is that you realise software development wouldn’t suit you, it didn’t actually take you that long to come to that conclusion in the grand scheme of things, you’ve crossed something off the list of things you think could possibly suit you, and now you can put more energy into finding what will.
All in all, to be a software developer, you will need to engage with maths, which at times will hark back to the days of punching numbers into a calculator that look like rude words when flipped upside down. If you remember finishing school and being excited by the prospect of never having to hear the words “indices”, “function”, or “variable” again, in my opinion, chances are software development isn’t for you. But there’s only one way to find out - give it a go.