Implement. A Lot.
Calculus and Linear Algebra is a bad way to go. Numerical methods will help you (they were made to be implemented in computers), because if you can implement them, you can implement anything math-related with a bit effort.
Here are some subjects that i recommend you start looking for. I have implemented at least one kind of each and they helped me understand not only mathematics, but how to actually program some difficult math problems.
Root finding.
Solving Linear systems and other Matrix manipulation (like LU decomposition and efficient determinant algorithms). Solving Non-linear systems.
Least square method (Continuous and Discrete).
Interpolation (Lagrange polynons mostly, and simple matrix interpolation.)
Numerical Integration (i think this one is is the easiest... Newton–Cotes, Chebyshev–Gauss, Gauss–Laguerre, etc)
Numerical ordinary differential equations (RungeKutta and multistep methods)
Now, some non-numerical subjects:
Operational Research/Linear programming/Optimization: start with Simplex with Matrix notation(i personally call this Complex), Then try a BranchAndBound and adventure yourselfinto Dynamic programming..
Number Theory have some interesting applications, specially security and criptography
Implement a Vector3D class yourself.
Also, Have fun with graphs, including most shortest path algorithms and searches. I consider this the most important data structure.
If you want a challenge for yourself, dig deeper into the Optimization: Queue Theory. Decision Making. Ant Colony Optimization.
I Hope i gave your some insight and didnt't scare you away! :)