I'm working my way through a Blender online course. Sometimes the word material is used, other times it is a texture or a shader. I feel like all three of these words, while related, have a difference specific technical meaning. Can someone explain what each means and how they are different?
A shader is a piece of code that is run when shading a mesh. It can be anything, including a texture, but the term is often used to refer to a shader that runs a BSDF or group of BSDFs, or something of that nature, such as emission. Blender's UI follows this convention, the BSDF nodes are in a submenu called "shaders". (but in some sense, all the nodes are shaders).
Textures add detail at the shader level. They do this by either loading an image file, or creating a procedural pattern of some kind, such as noise, bricks, or gradients. There are also a number of things that aren't quite textures that fall under the vague heading of "utility shaders". These perform some conversion function (examples in Cycles would be the Math node, or the Blackbody node), or provide access to variables (such as the Geometry or Texture Coordinates nodes)
A material is a collection of shader(s) that you apply to a model to define how it is shaded. A material might consist of a single BSDF, or it might contain a vast array of textures, utilities, and multiple BSDFs. You can think of it as a container or wrapper
Finally, remember that many people are not always consistent about using these terms according to the definitions here. "material" and "shader" especially are often used interchangeably.
Relatively new to Blender and 3D but this is how I think of them...
A shader conveys fundamental properties that determine how light interacts with the object. How well, for example, does it reflect, refract or transmit light and what is the primary/overall color we perceive it as. Usually applies uniformly to an object (in contrast to textures). You could say it's the DNA of a material.
A texture is a (possibly random) pattern used to alter existing characteristics of an object+shaders in a controlled way. This may have a purely color-based effect (e.g. change overall brightness by multiplying in a monochrome gradient) but just as often affects non-color properties (e.g. control glossiness with a roughness map, using it as a mask that highlights/emphasizes some parts of the surface over others). Textures can even have a tactile/physical effect (e.g. modifying surface elevation via a displacement map).
A material is just a particular selection of shaders and textures. A container of them, if you like.
Of course, as the previous answer mentioned there are a number of alternate definitions out there and there may be shaders or textures that don't fit perfectly into one of my boxes but they've served me pretty well so far.