Think you have to be a math whiz to become a software engineer? You don’t have to be, and I’m going to explain that right now.
First, some inspiration for those of you who are not good at math. I was never good at math. And when I was young, I wasn’t even good at arithmetic. My early education was a bit…disjointed, but that’s a topic for another day. I sucked at math, and the most advanced math I ever took was college algebra.
I barely squeaked by in that class by cramming before each test with my computer science major mathematics minor roommate. He basically explained how to do each problem on the study guide, and I remembered some of them for the test the next day.
I loved computers and the idea of creating something awesome on a computer. Once my university decided to offer a computer science degree that didn’t require 35 credit hours of math, I switched my major from criminal justice — actually a fascinating topic that isn’t all cops and robbers — to computer science.
I’ll be honest…I struggled a bit. It wasn’t because I didn’t have the mental capacity to do the work, but because my brain hadn’t ever really thought like that before. At that point, I was way more intuitive and chaotically-minded. Straight up by the seat of my pants. There was little structure in my brain.
I had to learn how to think logically, how to think in algorithms, and how to break a big problem down into manageable chunks. And I had to do this at the same time I was learning C++ syntax and how to write a program that does simple things.
I eventually got it, graduated, and started work. Over the years, I improved my skills, learned new things, and now I’m valued for my expertise, and make a pretty good salary.
Now let’s get into the actionable stuff. What can you do to learn software engineering even if you’re terrible at all things math?
It seems that lots of people who don’t write software are the ones quick to tell you that you’ve gotta be good at math to be a programmer. I guess they heard that somewhere and repeat it like it’s some civilization-level common knowledge.
While programming and math share some traits and brain sections, they’re actually quite different.
Where math is rigid and precise, software engineering is fluid. There are countless ways to solve countless software engineering problems using a large number of languages, frameworks, and techniques.
Like I always say, why do the math when I can program a computer to do it for me?
If you don’t think in numbers or you can’t do calculations in your head, that’s fine. Programs are written with words. They use chunks of data that you move around, black-box functions that take an input and spit out the result in a defined format. Creativity — creative problem solving — is central to software engineering.
If you can put together models, you can probably write software.
If you can take apart an engine and put it back together, you can probably write software.
If you’ve always been good at learning new things that aren’t math, you can probably write software.
Programs are composed of some really basic parts:
- Doing things one after another, like ticking down a list
- Making a decision
- Doing something multiple times, in a loop
- Asking something else to do something for you and then give you the result
- Things (think of this like objects with attributes in your life — a car, a dog, a table)
What’s really great about programming is once you learn the basics and get pretty good in one programming language, it’s fairly easy to pick up a new language. It’s just a matter of figuring out how to do the thing you know how to do in the new language.
Once you’ve got a few years of experience under your belt, picking up a new language is easy.
If you like the idea of becoming a software engineer but you’re bad at math, don’t let that stop you. Try it out. See if you can write software, build computing systems, and enjoy yourself while doing so.
It’s quite a feeling when you’re working to solve a problem and running into roadblocks and errors, but then you fix your code and everything comes together. Boom! It works and that feeling is really satisfying. It’s a great feeling — that sense of accomplishment when you solve problems both big and small.
There are so many paths you can take in a career if you learn how to program, and so many of them don’t require any real math skills. No calculus, no problem. Give it a shot, and you might fall in love with it.
Feel free to subscribe to my YouTube channel for more content like this.