When I was taking linear algebra and calculus in university, I found that there was a lot of focus on deriving formulas from underlying principles, with the notion that this constituted a "fundamental" understanding of the mathematic concept. I got quite good at being able to derive formulas for anything, and did well enough to scrape by on my exams. However the concepts didn't really stick with me. Going through Khalid's site I quickly discovered I had a terrible intuitive understanding of mathematical concepts, almost embarrassingly so. Somehow, derivation from first principles doesn't quite capture intuitive insights for me, especially once I start worked at higher levels of abstraction removed from easily understood foundations (i.e. multi-dimensional vectors).<p>The two things that I found most helpful in relearning math is (1) building up a foundation for mathematical concepts through betterexplained's intuitive method and (2) turning it into code as soon as possible. For the latter, I have a side project that is a sort of platform to test all my various ideas, from city performance modeling, to procedural form generation, where I am constantly trying to rework or tweak with new math formulas. It's amazing how much more efficient and useful this is as a learning method.