Do I Need to Be Good at Math to Be a Software Engineer?


Oh wait, you wanted actual reasons? A blog? Fine.

What Do You Know About It?

I was an English major.

I am now a software engineer.

I spent years thinking that to be a software engineer I would have to be good at, nay, enjoy math. I hated math. I was a words person. I told stories. I created worlds. Math was numbers and lines and little boxes I didn’t fit into. So of course, I couldn’t be a software engineer like my mother and my brother.

My inability to enter the field didn’t really bother me until I discovered that the stereotype about English majors working at Starbucks was a little too close to reality. I’m a mercenary wretch. I like to, for instance, eat food and have health insurance. I needed a new trade, and so I turned to the family business, still afraid of my old nemesis–MATH.

Why Don’t I Need to Love Math?

What do Java and Javanese have in common? They’re both languages.

When I finally started learning to program, I realized the whole process felt very familiar to this English major brain of mine. It turns out that modern programming is all about learning and writing a language. The computer than does the math based on what the language is telling it to do.

Most of coding is becoming fluent in the vocabulary and grammar the language you’re talking to the computer in. (Handily most of them have a similar structure.) Once you’ve learned the basics, you spend a lot of time figuring out the best way to communicate the logic that the computer needs to do what you want it to do. Which isn’t even always (or often) math. Sometimes it’s processing data. Sometimes it’s returning information. Sometimes it’s displaying a website with cool buttons.

If you’re stuck when you’re starting out, you don’t usually have to reinvent the wheel. (Leave that for when you’re a computer programming genius). You can pull in a library (pre-written code) that does what you want to do, find a solution using Google, or ask a more senior member of your team for help.

Why Is It Important that You Don’t Have to Be Good at Math?

Here a few lies that Western culture tells us:

  1. Software engineering isn’t for creatives…
  2. Because software engineering is a STEM field and..
  3. STEM fields are about science and math, not art.

Here’s some more lies that Western culture tells us:

  1. Software engineering is a man’s world because…
  2. Software engineering is a STEM field and…
  3. Men are naturally better at math and science than women.

Now I don’t believe that women are intrinsicily worse at math than men. I’m only mentioning it because it’s a stereotype that many of us grow up with. It’s often the excuse for why men out-number women in STEM fields.

A recent study has shown that while the cognitive differences between cis-men and cis-women are small, more “lower-achieving” men go into STEM fields than “lower-achieving” women. What that tells me is that a) the STEM fields are wide open for higher-achieving women. And lower-achieving women? (Whatever those are.) Get out there and pretend you’re a mediocre white guy.

Even though “women aren’t good at math” is a stereotype, it’s still stuck in our brains. I know it got stuck in mine. Even if what’s stuck in your brain isn’t “women aren’t good at math” but just “I’m not good at math (because I’m an artist or a writer or a scholar)”, it’s still hard to get rid of. And that shouldn’t stop anyone from entering a field that they’ll be good at and which pays well.

Please take this blog as permission to skip right over the “I’m bad at math” hurdle, because there are far more important skills needed in technology.

What Qualities Do I Need to Be a Good Software Engineer?

A Love of Puzzles

Do you love solving problems? Are you good at trouble-shooting?

Awesome! That’s basically 85% of my job–figuring out why this darn thing isn’t working right now what the heck?!

An Eye for Detail

Are you good at editing and proofreading? Do you notice little flaws that other people miss?

Part of programming is reviewing other people’s code (editing) and refactoring your own code (also editing). Let’s just say my editing experience has not gone to waste.

A Drive to Learn

Do you love to learn? Are you always picking up new information and new hobbies? Are you a researcher of knowledge and facts?

The modern programmer is expected to be constantly on the forefront of technology. They may switch languages and technologies many times in their career if not many times within just one year.

A Wealth of Curiousity

Do ask “why?” a lot? Do you follow trails of facts like breadcrumbs? Do you get stuck reading wikipedia pages long into the night?

A good programmer needs to be curious enough to ask, “Ok I fixed that, but why did it break?” Or “Yes, I could do it that way, but it could be done a better way?”

The Ability to Communicate Clearly

Can you get information across to other people so that they understand what you mean? Can you write instructions on how to use a product or do a task?

Despite what math-loving software engineers would like to think, being able to communicate what you just did is actually important. Mostly to keep the next programmer who works on your code from haunting you with an axe.

A Basic Understanding of Logic

Can you follow a basic logical progression like: “If a happens than b happens?” Or “If a or b happens than c happens?"

Oh you can? Congrats! You’re a programmer.

See yourself in any of these? Than you might have what it takes to be a software engineer.

Oh Come On, Surely I’ll Need Math for Something!?

Ok, I’ll admit it. You’ve got me there. There are some areas of software engineering that do require facing down the scarey math monster. But they’re easy to sneak up on, or even avoid altogether.

Here’s a list to watch out for:

  • Machine Learning
  • Game Programming

It’s a short list. Probably there are others that could go on it, but they all have one thing in common–they all involve programming to do math. Not that the programming itself requires math, but that the application you’re creating involves math. For example, in game programming you sometimes have to write code that deals with where an object is and how it will move, which is trigonometry.

Why Did You Write This Blog?

Here’s the thing: I want to see more of my kind in software engineering. More creative brains. More language-lovers. Not only is it a growing field and a good train to hop onto if you want a solid career, but all fields benefit from diversity of minds and ideas.

Looking for a new career? Feeling a little mercenary? Want health insurance?

Please consider joining the wide, wild world of computer programming. We need you out here. It’s full of people who think they’re good at math.