Well, contrastblack explained almost all of it, I just want to cast a little more light on top of it.
First, shaders in a 3d software are NOT to be compared with shaders from a GPU . The link to the Wikipedia definition of “shader” that contrastblack provided is related to GPU shaders; that is, programmable sets of instructions to be run inside the graphic card to speed up calculations, almost always in real-time applications. For example, 3d engines in videogames use these a lot.
Relating to 3d-design sotwares like Maya, Max, etc, “shader” could be better descripted as “material”. A material can have lots of parameters that define the appearance of a given object, describing how its surface behaves when hit by lighting. All of this parameters can be single-numbers, procedural functions (like noise, for example), math expressions, or a bitmap image that acts as input (sometimes grey-sclae, sometimes full RGBA , it depends on what the parameter needs).
So, each program has its own internal logic and altough there are very similar “type” of materials (blinn, phong, etc), others are exclusive to the render engine that you are using. For example, Mental Ray has its own materials to simulate glass, while V-Ray has its (and different) materials to do it. Many share parameters (Index Of Refraction, for example) but each render engine is like a closed garden and can’t be shared with others. You can’t even share a material between V-Ray for MAx and V-Ray for Maya (lame, I know).
An exception to this “closed garden” is the engines that are “standalone”. For example, there is a standalone version of Mental Ray, you got Octane Render, Maxwell Render, etc. This renderers are self-executable programs that are not integrated into the 3d-design package as plugins; they are external and you have to export the 3d scene from your host app, then import it here and then assign materials, lights, etc.
Well, there goes a good bunch of text, hope I didn’t confused you more! 