What are the best ways to start graphics programming? [I got a warning that the question will be closed].

I have identified that CG is the place where all the advanced algorithms and computations are taking place. 

What is the best way to start from rudimentary and progress gradually in CG programming?

Please express language choices (C, C++, etc.) and other topics you find relevant. I also found out  Michael Abrash's book.
There are many possible answers depending on your OS, goals and wanted level of abstraction. For low-level programming you can start by learning OpenGL, Metal or Direct3D. Most used shader languages are HLSL based. For higher level there are things like ShaderToy and engines like Unity (C#) or Unreal (C++) where you can experiment with graphics coding.