It’s a common misconception that you need to be good at math to be a programmer. For many code curious folks, math is the barrier that prevents them from starting their first course. This was the case for Angelo Ćurčić, a Codecademy learner who studied creative writing before becoming a Front-End Developer.

“I had a view for a long time that programmers were like math geniuses that went to the greatest schools in the country, and could ‘see the Matrix’ and everything,” Angelo says. “And I was like, well, that’s not me. I’m just pretty average in terms of school, and math probably wasn’t my best subject.”

In reality, a Software Engineer needs to work with numbers and logic to write code that solves complicated technical problems. If you look at a list of required coursework for a degree in computer science, you’ll typically see Calculus I-III, Differential Equations, Discrete Mathematics, Linear Algebra, and other advanced math classes. So where does this leave you if you want to work in software engineering, but you don’t have the math background?

## Learn something new for free

Well, it actually depends on what type of software engineering you want to do. Are you interested in creating programming languages? What about libraries and frameworks? Or is designing interactive websites more your thing? Each of these areas will require a different set of skills, and varying levels of math, to do them well.

To better understand the relationship between math and software development, let’s first take a look at what a Software Engineer does.

**What do Software Engineers do?**

The majority of Software Engineers work on either web or business applications. They could work on the front-end, the part of the application you see and interact with; the back-end, the part of the application that runs on a server; or they could work on both sides of the application as a Full-Stack Developer.

Depending on the type of stack a company uses, a Software Engineer will need to know a handful of programming languages. For Front-End Developers, that’d be HTML, CSS, and JavaScript. There are a number of languages that Back-End Developers could be required to know, including Java, Python, Ruby, PHP, C#, or one of the many other languages used on the server-side. If they’re going to interact with databases, Back-End Developers also need to know SQL, and there are a number of technologies they’ll use, like Jenkins and Kubernetes.

These Software Engineers — the ones who design websites — have to know *how* to use programming languages, libraries, and frameworks, but they’re not necessarily using math very often, if at all.

There’s another group of Software Engineers that *create* new programming languages, libraries, frameworks, and other technologies for developers to use. These are the engineers who rely on their advanced math skills to do their jobs.

**So if you want to work on websites, what math do you actually need?**

While the programming languages we listed above have their roots in mathematics, none of them require you to know math to become good at using them. In other words, you can absolutely write code without math.

Programming focuses on expression rather than math. You provide some input, and the program produces an output. Whether math is involved depends on what the program or script is designed to do. It might not involve math at all, but rather deal with positions in a list or nodes in the DOM.

But, keep in mind that you’ll still need to have basic math skills to work as a Software Engineer. Here are some tasks that would require math skills:

- Ballparking estimations about system loads
- Analyzing an A/B split test
- Determining the probability of a recurring event
- Understanding the basics of Big O Notation, so you know the complexity of the code you write and how to optimize it for performance
- Using logic to understand conditional logic in your code

**How can math help you as a Software Engineer?**

Even though you won’t need to know advanced math for most software engineering projects, any math courses you’ve taken or any other exposure to mathematics you’ve had won’t go wasted. This is because you develop a skill that allows you to approach complicated problems using logic when you take a math course. And it’s this *way of thinking* that will be really useful to you as a Software Engineer.

Interestingly, there are many other activities that you might do on a regular basis that can contribute to your skills as a Software Engineer. Solving puzzles, playing a musical instrument, and playing video games all require some level of problem solving or logic that you’ll see in your software engineering problems. Even philosophy involves logic and proof, which can lead to a programmer developing a unique approach to coding.

**We’ve talked about the software engineering jobs that don’t need advanced math, but which ones do?**

In school, Codecademy learner Louise Jones remembers hating math. When she started learning to code to work towards becoming a Data Engineer, she balked at learning math again. “I knew that I wasn’t confident with math, but just because you’re not confident in something doesn’t necessarily mean you’re not good at it,” she says.

Reading the book *A Mind For Numbers* inspired Louise to stick it out and reframe her math abilities. “[The author] just figured out that the way she was learning wasn’t right for her,” Louise says. “I was just like, *You know what, I am capable, too*.”

If math is one of your strengths and you want to use those skills on the job, here are some software engineering fields that you can consider:

- Programming language development
- Machine learning
- Game development
- Data science

Math plays a unique role in each of these fields. In game development, for example, you’d need to represent 3D objects in a 2D environment, which requires in-depth knowledge of geometry. You also have to create a virtual world that acts like the real world, so you need to know physics. In machine learning, knowing advanced math and statistics will allow you to create new models or even new types of models that can change the future.

**How to learn more math to use as a Software Engineer**

Are you relieved to know that you don’t have to be a math expert — or even proficient at math — to become a Software Engineer? If so, *a lot* of people are in the same boat as you. In fact, a large percentage of working Software Engineers don’t have a college degree and didn’t take one math class after high school!

But remember: Knowing the basics of math is beneficial. And the more you learn, the better and more efficient you’ll be at solving problems for various programming tasks. If you’re ready to learn something new or improve your existing math skills, check out our math courses. You might be interested in our probability courses or linear algebra courses, and if data science is your thing, check out our Fundamental Math for Data Science Skill Path. Or read this post about programming languages that are used for math and get started with one of those options today.

*This blog was originally published in January 2022 and has been updated to include additional courses and quotes from Codecademy learners.*