I would recommend just starting small and incrementally building up.
Write your own DX/OpenGL renderer for displaying multiple models on the screen. Be able to translate,scale,rotate them on their own local space and the world space as a whole. Then do some shader manipulation on each of them. Use the vertex shader to modify their positions slightly and fragment shader for basic coloring.
I've been using OpenGL ES this summer for the first time and have had to learn shaders from scratch along with relearning exactly how matrices are used in a rendering environment.
I originally thought it would be really hard, but its not. Just gotta do it in small steps.