# Eric’s Answer

Hi! There are a few kinds that will almost always come up, and others that may be relevant depending on what in particular you do. Many may not exactly look like "math" in the sense of, say, arithmetic or algebra.

Logic, and Boolean algebra, as in being able to work with "A is true implies B is true," and chains of "A and B or C..." show up a lot.

Lots of programming involves knowing and being able to work with algorithms, which themselves often involve:

- Graph theory, dealing with nodes and edges
- Set theory, dealing with collections of objects and their unions and intersections

Probability and statistics come up in a lot of cases

Linear algebra, the kind with matricies, can show up in surprising places, and be rather useful. It's very true in graphics, but also elsewhere.

If you get into cryptography, then number theory can be quite helpful.

It's easy to overlook, but having a good understanding of things like exponents, factorials, and the order of operations is also valuable.

This may sound like a lot, but thankfully you can begin learning to program without knowing much of this at all! As you are faced with new problems, and look for solutions, you will likely begin to become familiar with many of the types of math you need. However, classes that teach any of these subjects in particular (or, often, broader categories like "Discrete Math" and "Algorithms") will help make sure that you already have the tools you'll need in your head.