When I first wanted learn about shaders I had the same problem that I couldn't find where to start. I didn't know enough about graphics pipeline and most of the resources I found was talking about how to write shaders, their syntax, types, usage etc. but not how to connect them to a material or how to setup required resources ( textures, matrices, parameters ). At that time, shaders seemed really confusing to me without looking at the big picture and I struggled every time I tried doing something new. I suggest you to choose DirectX or OpenGL ( OpenGL might be little easier in the beginning ) and learn graphics pipeline first, how to set/get matrices, how texture resources are created and used, how to draw basic primitives etc. After you grasp the fundamentals of the pipeline and see the big picture, you will understand where exactly shaders stand and it'll be much easier to use them. I hope this works well for you!