hi there. Long time no see. Anyone who have learned math(for programmers) - please advice me some resources. I want to learn more about math logic, statistics. Also I want to refresh my knowledge of algebra. I learned a lot of math at university. But it was general math or applied for physics. I want to learn more what math people study at foreign universities at computer science majors. Thanks in advance!

# Math for programmers

**kurumkan**#3

Now I am having some bad experience with âConcrete mathematicsâ. Itâs terribly hard to read. So I think to get step back and start from the basics.People recommend: https://www.amazon.com/Discrete-Mathematics-Applications-Student-Solutions/dp/0495826138

**astv99**#5

Math for âprogrammingâ depends on what kind of programming youâre doing (or want to do). But the general kinds of math commonly taught as part of a CS curriculum today should include: discrete math, statistics & probability, calculus, and linear algebra. I just Googleâd and found a bunch of free online courses for each math subject, so you should have no problem learning any of them.

- Discrete math is very foundational in computer science as it covers logic, set theory, graph theory, etc. Important for not only understanding certain OS concepts but also data structures and algorithms.
- Statistics & probability (not the same thing, and are sometimes taught as separate courses, but can also be taught in the same course) are foundational for most of the theory in computer science, especially in algorithms.
- I canât think of anything offhand in programming that uses calculus except for gaming. But there are lots of other applications for calculus, I just canât think of them offhand.
- And linear algebra is basically for programming 3D graphics, if you get into something like OpenGL or DirectX.

What level of mathematics you need to start?

**steph**#7

heyâŚyou can take a coursera courseâŚalso here are some links to various math topic from wiki.c2.com/?MathForProgrammers..here is also an interesting article at nrich.maths.org/6873 and places to test your math knowledge: clep tests, yhwh math testsâŚgood luck

**DaveyLS**#8

Chech out this site http://youralgebratutors.com/ Hope you will find it usefull. Highly recommend!

**ewathedoer**#9

On Free Code Camp Youtubwe channel there is a series called Math for Programmers, short movies on a given topic. Check them out, example: https://www.youtube.com/watch?v=iwcHS7oTMk4

**Marilyn744**#10

I do a fair amount of 3d programming and modeling. This site really helped me with trig tutoring https://www.studypug.com/trigonometry

most math issues can be solved with google, but i find myself going back to the same site for algebra (purplemath). And for design that requires different level of calculus, I start with this guy http://tutorial.math.lamar.edu/Classes/CalcII/CalcII.aspx

i think the strategy is to know what type of math solution is practical for which programming problem. good luck. math + development = lots of fun.

**michellejohnson1**#11

Hmm, from what you say it seems you want to start very basic. Nothing bad about that, I did the same. My math was mostly high school level and a lot of it forgotten.

Start with Site Exchange, go to the practice section and see how far you can get. This will give you a good idea what you can do and where to start learning.

Donât bother watching the videos. At least for me videos are just a slow way to learn and Khanâs are extra boring. There are lots of other resources to learn basic maths. Like some of the WikiBooks.

The question is discussed on myhomeworkhelp mathematics often enough and searching for âfree resourcesâ or âfree booksâ will bring you a lot of information and material. Same goes for search terms like âstartâ or âbeginnerâ. Or ask your own question there. That works as well in the /r/math subsection on reddit. There you will find more subreddits, eg for learning maths.

Practice a lot. Itâs not enough to just understand a concept and then go on to the next. You must feel comfortable to apply it. You wonât understand percentages if you are not comfortable with division and multiplication (as an example). That is true for higher concepts too. Thatâs why to me the practice section at Khan is far more valuable than the videos.

As with programming, staying in contact with the community will keep you motivated. Just logging in some forum once in a while and read what people are talking about.

**frenata**#12

Category Theory for Programmers (https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/) is great fun and solidly practical from the standpoint of the functional programming paradigm.