I'm making the assumption that you are totally new to shaders and low level 3d...don't mean to be condescending, I'm still learning a lot myself. This is where I would start though if I could do it all over again...
Start with little...seemingly insignificant details. Rendering a point, a triangle, two triangles together (a quad), a cube, a sphere, then finally an arbitrary mesh from a parsed Wavefront OBJ. As you move to each new more complex piece of geometry focus on mastering it...for example, walk through these steps (not in any particular order) with a cube...
1. Can you put a different color on each face of the cube?
2. Can you map a texture to the cube?
3. Can you map/blend two textures onto the cube?
4. Can you rotate, translate, scale the cube and rotate it around both its axis' and another point in space?
5. Can you render the cube with either an orthographic or perspective projection? Can you switch back and forth on the fly?
6. Can you pick (or select) an individual face on the cube and turn that particular face to a black and white texture as opposed to a colored?
7. Can you put the same color on each face and still have them be distinguishable (as opposed to a blob) by using vertex normals and a directional or point light?
8. Can you switch between per vertex lighting and per fragment lighting?
9. Can you draw two, five, or twenty cubes with the same geometry but with different sets of shaders (swapping them in a single draw)?
Experiment. Above all, I would concentrate on writing your own shaders as you go...steal and loot other people's ideas once you understand them, but don't do an outright copy.