How to create custom shader?

Hello, I’m a beginner graphics programmer and I’m interesting in all stuff related to rendering. For me it seems that graphical part of UE4 is the half of the engine, but I can’t find any information about it. Yes, I’ve read this 2 pages in documentation about graphics development but: 1. It seems outdated. 2. Well, I can’t understand anything - it’s so brief and dry.
In learning purposes I want to create a shader (a set of shaders) that uses all pipeline stages. Where should I start? Can you provide a step by step guide what classes I need, how to implement this in engine (because I bet I need to modify source code).