This blog is not click-bait, but I sort of hope people don’t necessarily read this post. I hope the title is enough. Maybe it shows up as they’re scrolling through twitter, and the title sticks in their subconscious. Maybe it shows up in a google search. I hope that the title is enough to dispel a myth around software that I had for some time.
Last week, respected indie iOS engineers David Smith and Marco Arment released the latest episode of their bi-weekly app development podcast Under the Radar covering their adventures in Advanced Math. This podcast meant a lot to me personally, and when I tweeted to that effect it received several likes. So my assumption is it means a lot to others too. Here’s why it meant something to me:
I can’t do maths. I can do software.
Any of my colleagues will tell you that I’m not the greatest software engineer in the world, but in the just over two years I’ve been a full-time, professional software engineer I think I’ve done pretty well. I’ve designed and built systems used by millions. I’ve trained junior engineers. I’ve spoken at conferences. I’ve even written a book on software engineering. (That’s enough, this isn’t a job application.)
But still, I can’t do maths.
I’m dyslexic. Dyslexia affects different people in different ways, but for me, it mainly manifests itself in the form of reading, maths, and bizarrely, getting the words white and yellow mixed up 100% of the time. This video gives a reasonable simulation of what I see when I read. Just skip to 34 seconds, and excuse the needlessly dramatic music.
I struggle with anything more than fundamental maths. I can do addition and subtraction mentally, I can do some multiplication and the most basic of division. I’m not innumerate. I know how to do this, and given some time and a computer I can figure it out in most cases. I can prove it too, I made an app to calculate the current time on Mars. But my head is incapable of holding the numbers in it. The same goes for numbers I’m not performing a function on. Give me a quantity or a time and I guarantee I will not be able to remember it a split second later.
I studied computer science in high school. Like the stereotypical nerd, I was the one who stormed through the exercises and ended up losing marks because I would hack the projects to do something I thought was way more exciting. But I left school with one piece of knowledge. I couldn’t make software for a living because I couldn’t do maths.
10 years into another career I revisited this assumption. I decided to give a software career a try. (What I hope to be) a short way into this new adventure I can say that not only was my preconception about the maths ability required for software engineering misplaced, but my lack of ability has never been close to being a consideration.
This is why the recent episode of Under The Radar meant a lot to me. Because I wish I’d heard it 5 years ago. Or 10 years ago. Or even when I was still at school. Marco and David are experienced, successful, respected software engineers. They make apps that I had previously assumed used a large amount of maths skill. Smith working with dates and times and space, and Arment performing audio processing. Yet they discuss their own limits to their mathematical knowledge and ability. They discuss how basic knowledge of maths has provided them with very nearly everything they needed to know.
I’m also pretty bad at math. That’s why I let computers do it for me 😝— Guilherme Rambo (@_inside) February 20, 2020
Computers are here to compute things. They are good at maths so that you don’t have to be. Sure, there are areas of computing that it helps to have more advanced knowledge of maths - graphics and game programming, cryptography etc. But for most cases, maths is a far less crucial skill than problem solving, communication, collaboration, and the ability to learn. So here’s the crux - you don’t have to be good at maths to make software. If you are, great, that’s an extra skill you can share to make your team work at its best ability. If not, don’t let it hold you back.