Shaders are descriptions of surface materials or effects that control what a surface looks like when it is rendered.
To render a surface, you need a description of what the surface is supposed to look like. Is it gray or red? Smooth or bumpy? Shiny or matte? Should it look like gold or gravel? This description of what a surface should look like is called a shader.
Shaders have literally hundreds of parameters that let you simulate virtually any material you can imagine. But this infinite variety is based on two basic decisions: what shading model to use, and how to set or apply textures to the parameters of that shading model.