What is a Shader?

You're a 3d artist, or a programmer, and you have heard much about shaders. But you have sort of avoided touching them until now.
Apart from choosing "Unlit -> Texture" in the material dropdown.

Some engines keep you away from shaders altogether, some give you a pretty node based editor (UE4), but disallow you from making substantial changes to the system. Some, again, let you do pretty much what you want, or whatever you're capable of, while providing sane defaults (Unity 5).

In any case, you could use someone walking you through what exactly a shader is.

So here it is:
A shader is a piece of code, that is executed on the GPU.
The engine feeds it with 3d model vertices, textures and other information, and gets back from it pixel colours.

(Bear in mind I'm drastically simplifying this)

It can simulate how a particular surface responds to light.
It can blend together two different images according to some parameters and a formula, like Photoshop layer modes do.
It can simulate depth of field and bloom and much more.

It can use what we know about physics to simulate real lighting as accurately as possible, which is what the latest generation of games is doing. It's called Physically Based Rendering.

Shaders are not just in the game engines, they are in 3d modelling and rendering software too. Wherever you have a realtime rendered 3 model you have shaders.

While you can make do with node based editors, their magic hides how the stuff really works, and you'll likely end up checking random boxes until the thing does more or less what you want. Or give up.

The real power to decide how your game will look, and being able to deliver it, is in the Maths.

You don't have to have a degree in Maths, or in Computer Science to understand and write shaders.

Keep tuned to ShaderCat and, article by article, you'll learn everything about shaders.