[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.

  • $\begingroup$ Welcome to Computer Graphics StackExchange. Your question is very broad and also primarily opinion based. That's why I flagged it for closure. For more information about How to ask?, visit our HelpCenter. $\endgroup$
    – Nero
    Commented Sep 30, 2015 at 7:16
  • $\begingroup$ Do you mean 2D or 3D graphics ? They are completely different worlds. $\endgroup$
    – user1703
    Commented Sep 30, 2015 at 8:08
  • 1
    $\begingroup$ Turtle graphics! turtles all the way down $\endgroup$
    – joojaa
    Commented Oct 1, 2015 at 12:42

1 Answer 1


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.

  • $\begingroup$ IMO, advising Direct3D to a beginner is pure cruelty. $\endgroup$
    – user1703
    Commented Sep 30, 2015 at 8:09
  • $\begingroup$ @YvesDaoust, not necessarily true. For a programmer with familiarity with OOP languages, D3D will probably feel much more natural than the procedural ways of OpenGL. At least that's how I felt when I started with D3D9 and C++. $\endgroup$
    – glampert
    Commented Sep 30, 2015 at 18:54
  • $\begingroup$ @glampert: it seems that you never were a beginner. $\endgroup$
    – user1703
    Commented Sep 30, 2015 at 18:59
  • $\begingroup$ @YvesDaoust, haha, in graphics yes, not in programming, true. My reading is that the OP has some knowledge of programming, but in any case, this is not a point worth discussing, I was just raising another perspective ;) $\endgroup$
    – glampert
    Commented Sep 30, 2015 at 19:05

Not the answer you're looking for? Browse other questions tagged or ask your own question.