What to learn to be a graphics programmer

384 points · 210 comments on HN · read original →

Points and comments are a snapshot, not live.

A graphics programmer outlines what to learn: explicit APIs, PBR, path tracing, and C++.

The author splits the role into CPU-side (DX12, Vulkan, Metal, engine work) and GPU-side (lighting math, PBR, path tracing). Recommends starting with simpler APIs for GPU focus, and the free book "Ray Tracing in One Weekend" for path tracing. PBR is described as a principled system that replaced ad-hoc lighting. Key deliverables for a portfolio: a real-time engine in C++ with DX12/Vulkan showing PBR lighting and effects, plus a separate path tracer. Linear algebra, basic trig, and minimal calculus are the core math; C++ is the dominant language, HLSL for shaders. ML commentary notes current LLMs are useful for math discussions but less so for programming code generation.

What commenters are saying

Commenters largely agree that graphics programmers benefit from understanding artistic/design principles, but note the distinct Technical Artist role bridges that gap. One commenter warns the field evolves too fast for any individual to gain a competitive moat like John Carmack once had. A counterpoint argues graphics programming's matrix algebra pipelines provide a foundation for ML math. Another commenter questions the value of pursuing graphics programming given AI-based effects from Nvidia, but others push back that the craft's joy remains. Several highlight Inigo Quilez as an example of a programmer-artist unicorn.