I learned programming at university and my focus was C#. To employ C# in game development using Unity game engine. I developed my knowledge of the nuances of programming with C# while experimenting more and more with unity game engine.
However, writing a Shader required a dramatic shift in programming mindset. For one, available online sources for writing a shader is scarce. Also, getting a precise number or test as an output for debugging purpose is not a viable option. This is to say that debugging is only possible by examining the behavior of the executed codes mostly based on colors.