I myself have started on http://www.directxtutorial.com/ , which is not all free, but the basic stuff is. When you're done with that you'll probably have to google some more or see the sdk samples, which I hate, or you can ask here (though sometimes I feel as if I'm the only one interested in cg here. Maybe gamedev.net would be more fruitfull..) . I have had a lot of trouble finding advanced tutorials with DirectX, so after I've covered some HLSL basics I gave up looking.
I'm not saying, that those samples are not well written. I'm saying that thay are not designed in a way that is comfortable to learn from. Mostly I dislike the use of DXUT. Firstly I can't instantly understand the sequence of CALLBACK functions, secondly, I don't exactly know what DXUT functions do, so when writing my own code I'd have to remove them (implement them myself, or change the whole structure of the program). Also in a 1000 lines of code I need 5 of them, which I have had trouble finding. A short tutorial, or a code written in the most simple way is a lot more helpful.
Yes, Microsoft does tend to do that. I was talking to a friend one day about this. Instead of a minimal example to demonstrate how a function works, there's a 50-100 lines program with a bunch of other functions being called that aren't really essential to the one you need.