I believe the language used to program shaders (for DBP at least) is HLSL. A quick google search turned up this:
http://rbwhitaker.wikidot.com/hlsl-tutorials
The first two tutorials in there might be useful. If you want to learn how to write shaders I would suggest that you look for some general/introductory tutorials to get a feel for what the language is like (they don't have to be specific). Then I'd recommend looking for some simple shaders to understand conceptually what a given shader (say, a diffuse lighting shader for example) is doing every step of the way. Now for the fun part: you can try making your own modifications and seeing what happens to the object as you do! If the object disappears, then you probably made a syntax error. When it boils down to it, all shaders are really doing is manipulating verticies and colors using math.
To answer your question:
1) I use notepad and notepad++, but I don't really develop shaders from scratch too often so using something like DarkShader or FX Composer might be better.
2) It depends on the shader. The two main commands that you'll always need, however, are LOAD EFFECT and SET OBJECT EFFECT.
3) Usually a DirectX9 shader is divided into two parts: Vertex Shader and Pixel Shader. The Vertex Shader manipulates the verticies of the object, and the Pixel Shader manipulates the object on a per-pixel basis. This is where you often apply/manipulate textures in your shaders.
4) HLSL
Anyway I hope this is somewhat helpful to you, just remember to start with the basics and experiment

Guns, cinematics, stealth, items and more!