I have always found that compiling the shader with FXC.exe is a useful learning tool. This command line tool requires you to tell it the file and the function you are compiling, along with the shader type and target model. You can create an html output file, which gives you lots of information about the shader, its input resources, and the shader's input and output signatures.
That will tell you about the shader, but you can also programmatically access the same data through the reflection interfaces. There is examples in my engine (linked in my signature below) about how to use the reflection interface, so feel free to take a look and borrow code as needed.