Where to start learning about shaders and GPU programming

Where can I start to learn about shaders, gpu programming and graphics processing terms?

I have tried to search on google but I have no idea where to start(I don’t know what to search for). I did find GPU Gems on nvidia, however that is too advanced for me because I do not understand most of the things that it is mentioning.
To be more specific I do want to learn about

-GPU processing

-rendering pipeline

-CG Shader

-DirectX, Direct3d?

-Pixel Shading, Vertex Shading

etc…

also if anyone knows courses such as:
http://eat3d.com/advanced_vfx1
for unity?

http://en.wikibooks.org/wiki/Cg_Programming/Unity

All pay per use courses are based on this one. UnityCookie has a free intro with videos. Fundamentals - 1 Introduction - Noob to Pro Unity Shader Writing in Unity 4 Beginner - YouTube based on it.

NVidia uses CUDA which is a variant of C. Except if you are working fr Nvidia or for some company doing their own engine, this would not be really useful in Unity.

EDIT: There is also The Cg Tutorial - Chapter 1. Introduction to learn CG.

From my quick understanding, CUDA is for hardware so low-level, assembly language. No real need if you are not working at Nvidia or Intel or as I said for a company that is developing its own engine on a low level base.
CG is the shading language to get vertex and fragment(pixel) to do things you want and this one is used along with ShaderLab within Unity.

It is just a variation on C language using a scary hell of a lot of linear algebra.