A question on shaders

The more I learn about Unity, the more I find I want to keep learning. I understand that a shader is responsible for how an object looks on screen, but that is about the limit of my knowledge about them.

Can anyone recommend any in-depth websites, books, etc that deal with shaders? How they work? The difference between them? Possibly even how to program them? I just feel like this is a valuable piece of the puzzle that I am missing at the moment.

This is only for old-school fixed function shaders (which is what I use exclusively, because of the lack of training material for the programmable pipeline), but it might be a helpful introduction - you still need to use at least a little bit of ShaderLab when writing surface shaders, for example.

I haven't found anything like this, for use with Cg/GLSL, in Unity, so if you do, please let me know. I realize my videos aren't up to the same standard as say, Lynda.com's, but that's the kind of format from which I learn best, so I made an attempt to make that style of series just with much lower production values because I don't have the time or facilities for that. :-P