0) Algebra, Trigonometry, Calculus
Make sure you have a decent grasp over high school level math topics. You might not need to use these topics frequently (though trig comes up a surprising amount), but they are necessary to establish a base level of mathematical maturity.
1) Linear Algebra
Obviously very important if you want to do any 3d work, but it comes up in later topics like graph theory.
Suggested book: Linear Algebra and Its Application - Strang
2) Discrete Math
You need an understanding of proofs and logic before you can get to the real algorithms material. Counting and probability is also very important.
Suggested book: Discrete Mathematics and Its Applications - Kenneth Rosen
This looks like a good free option, but there are no exercises: http://courses.csail.mit.edu/6.042/fall10/mcs-ftl.pdf
3) Algorithms
Enough said.
Suggested book: CLRS, but here's a free option: http://www.cs.berkeley.edu/~vazirani/algorithms.html
This should take you some time as each of these topics usually corresponds to a college class. When you finish with those, start reading about CS Theory, Combinatorics, or pick up a graduate Algorithms text.