Programming: How Much Math Needed? - Tech With Tech

# Programming: How Much Math Needed?

Here’s how much math you need for programming:

How much math you need mostly depends on the type of programming you want to do.

At-home projects can stick to pretty simple and basic math while people seeking programming degrees often have to learn introductory calculus.

To program certain advanced topics, you need very strong math skills in multiple areas.

Let’s dive deeper into it! ## How Much Math Do You Need for Programming?

Yes. Computers more or less run on math.

It shouldn’t be surprising that math comes up a lot in programming.

As I already said, the amount of math you do as a programmer depends on what you’re programming, but at least a little bit of math is bound to come up no matter what.

So, to make this whole thing a lot easier, I’m going to break it up into sections.

First, I’ll cover the math essentials that even beginner programmers should know.

Then, I’ll move into college courses that you’re likely to take if you get a programming-related degree (like computer science or software engineering).

Lastly, I’ll discuss the advanced math topics that come up when you get deep into a lot of professional programming jobs.

## What Math Should All Programmers Know? (3 Concepts)

The first thing we’re going to look at is the most generic set of math skills that pretty much every programmer should know.

Even if you’re just writing basic scripts as a hobby, these few math concepts are still useful.

The good news is that there’s a good chance you’ve already learned this stuff.

Pretty much all high school graduates have to get through these classes.

You don’t need to be an amazing math expert in these fields.

You’re just going to need to apply them sometimes when you’re programming.

### #1 Arithmetic

Arithmetic is the most basic math out there, and honestly, you need to have this down for pretty much all programming.

This is the math of adding, subtracting, multiplying, and dividing.

Even if you’re programming something that doesn’t do math, computer functions are so deeply rooted in math that understanding these basics is still important.

Additionally, it helps a lot to know the fundamentals of numerical basis.

As you might have heard, computers operate in binary (base 2).

Knowing how base 2 works helps a lot. Learning hexadecimal wouldn’t hurt either.

### #2 Algebra

Algebra is essential to a lot of computer functions too.

If you’re making an algorithm that follows many types of basic functions (such as if/then statements), then it’s ultimately following algebraic principles.

Algebra also forms the basis for how computers draw pictures.

So, if you’re making something from scratch that can create visuals, then algebraic descriptions of those visuals will be necessary.

### #3 Matrices

Computers use a lot of matrices to keep track of variables and run operations.

Understanding how matrices work goes a long way when using these principles in programming.

Some of you who have done a lot of math might be thinking of linear algebra.

I’m going to make a distinction and say that I’m not talking about linear algebra right now.

For basic programming, you don’t have to get that deep into matrix operations.

## What Math Do Professional Programmers Need to Know? (2 Topics)

The math I’ve talked about so far is pretty universal.

Everyone knows arithmetic.

And, even if you don’t realize it, you’ve worked with matrices before too.

They’re such common topics that you often don’t even notice them anymore, and they really do come up all the time in programming.

The next set of math topics is a little less universal, but you’ll still see these a lot.

It’s why they’re required for a lot of programming degrees.

### #1 Calculus

Computer science and software engineering degrees very commonly require at least Calc I in order to graduate.

That’s introductory calculus, and it’s very important for a wide range of computer operations.

Most importantly, you need to know how optimization works.

Pretty much all automation and AI systems get into optimizations.

Plus, a lot of programs are designed to improve efficiency.

Calculus is the math topic that covers optimization.

It’s how you measure and calculate efficiency.

Without calculus, you can’t excel in these areas of programming.

If you want to go even deeper down the rabbit hole, you can get into three-dimensional calculus.

Most colleges teach this in a Calc III class.

It helps a ton with visualization and expanding the concepts to handle more variables.

### #2 Analytical Geometry

Analytical geometry is usually taught in combination with calculus.

This take on geometry opens up more advanced ways to tell computers to draw things.

As an example, if you’ve ever heard of ray tracing graphics.

They are built on the math of analytical geometry.

Even outside of visual programming, it’s useful if you want to make visual representations of any of the optimization you do with calculus.

Analytical geometry helps to understand those results in a more intuitive way.

We’ve covered the light stuff.

Now, let’s talk about some advanced math topics and how they relate to programming.

The previous stuff will come up in college when you’re going after a degree.

The topics below are more specialized.

Only specific aspects of programming will really need any of them, but if you get into things like building software systems from scratch, big data, or signal processing, then you’re going to come across these more advanced math concepts.

The good news is that they’re more accessible than you might think.

You can take college classes on any of them, and even an introductory class in any of these areas will do a lot to teach what you need to know as a programmer.

Unless you’re specifically making programs to do advanced math or science, you don’t need to be an absolute expert in any of these topics.

### #1 Number Theory

We’re getting into more advanced math now.

Number theory is a way to look at how numbers are defined and what they mean.

They cross over with computer programming to help define how computers actually understand numbers.

This comes up, particularly when you get into the nuts and bolts of computer-control software.

When you are building operating systems, drivers, hardware controllers, or working in machine language (much less building a new programming language), number theory comes up, and having a strong understanding can help you program more efficiently.

### #2 Probability and Statistics

A lot of computer programs are used for the sake of statistics.

Naturally, if you’re going to work on those programs, it helps to understand the statistics you’re applying.

But, probability actually comes up a lot more than that.

It’s pretty common to use random number generators to make a program.

If you want the computer to select things randomly for any reason, you’re in the world of RNG.

As you might have already guessed, RNG runs on probability.

If you know the essentials of probability, you can leverage random number generators a lot better, and you can make some pretty sophisticated algorithms.

### #3 Linear Algebra

I mentioned linear algebra before.

Now, we can talk about it in more detail.

Even for introductory programming, matrices are going to come up.

But, when you get into some kinds of advanced systems, you need a strong understanding of linear algebra.

As a math topic, this is when you get deep into matrix operations and manipulations.

So, if you’re doing tricky things with computers and matrices, you’re going to be applying linear algebra.

Databases, mathematical software, modeling, and big data are all fields where you’re likely to use linear algebra as a programmer.

### #4 Complex Variables and Analysis

Lastly, we get to my favorite branch of math, so bear with me if I get a little nerdy.

If you’ve heard of imaginary numbers, complex variables are how you actually use them.

Complex variables are ideal for expressing repetitive systems, and they come up in a lot of different elements of programming.

Signal processing is a big one.

If you’re programming tools that work directly with signal processing, then complex variable techniques will help you write efficient code that understands the repeating signals while filtering out noise.

It’s powerful in this regard.

You can also use complex variables for some interesting aspects of graphical representation.

Essentially, you can use techniques like Fourier transforms to describe visuals in unique ways that are great for motion-based imagery.

As you get deeper into complex variables, you’ll graduate into complex analysis.

This is pretty high-level math that applies deep concepts of calculus, linear algebra, and other topics.

If you’re good at complex analysis, you get to brag about it to even your smart engineering friends.

Jokes aside, complex analysis is important for deep learning and some of the most cutting-edge programming applications.

When you need a computer to solve problems that even humans can’t tackle, you might implement complex analysis in that endeavor.

It mostly applies to problem-solving programming, so you won’t need this math to animate a video or in a lot of other aspects of programming.