The easiest shader to make is something that just does normal textureing. Just write a vertex shader that calculates the vertex position and texture coords, and a pixel shader that simply textures the pixel. This is a pretty useless shader, but once you can get a working shader you can then move on to make things that do something useful. The point is to understand the way shaders work, and how vertex and pixel shaders work together.. very rarely is one used without the other- often the vertex shader drives the pixel shader, because it's much faster to do many calculations per-vertex, rather than per-pixel, and also the vertex knows certain things that the pixel shader can not know unless it is passed to it.

Also decide if you want to learn assembly or start right into HLSL. I would suggest that unless you want to really get into the nitty-gritty to avoid assembly because its difficult to work with(i happen to like asembly, but HLSL is much clearer and flexible)

If you understand all that im saying here, then you can move on to doing more interesting things. First try to doing some sort of multitexturing, like detail mapping. Simply blend the color texture with a detail texture by multiplying the samplers together. Then you can go on to more complex things.

I'd recommend trying to work out vertex lighting, as shown in the WIKI terrain multitextureing shader. Then move on to per-pixel lighting and normal mapping.
But remember with more complex shaders the math theory is what drives the shader.