You should have a thorough knowledge of
Linear Algebra, that is:
- vectors, matrices, rotations, maybe tensors, quaternions are useful
- coordinate systems and their different kinds of representation
- systems of linear equations and properties of their solutions
Algorithms, that is:
- conversion of representations (coordinate systems, rotations)
- determine and achieve properties of matrices (lookat, perspective, orthonormal, etc.)
- solve linear equation systems
Analysis, that is:
- series expansions of function (taylor, euler, whatever)
- differenciation, integration of functions of multiple independents
Numerics, that is:
- interpolation (functions, vectors, quaternions, etc.)
- numerical differenciation, integration (you want to actually DO it, don't you?)
You won't need it all at once, and you won't want to learn it all in parallel, of course. It's also certainly not a final list. For me, that's been covered by most of my first year at university, going on to more abstract and advances things later on.
You should really take your time and try to understand theses thing properly, if you manage to fit it into a personal project of your liking, like davepermen did, all the better.
I also like Maple V to play around with math tools and algorithms to get a better understanding, prior to coding them up in C++.