What to learn to be a graphics programmer
atan2
293 points
154 comments
July 01, 2026
Related Discussions
Found 5 related stories in 639.8ms across 14,015 title embeddings via pgvector HNSW
- Graphics Programming Resources abetusk · 48 pts · March 04, 2026 · 56% similar
- Good developers learn to program. Most courses teach a language andsoitis · 91 pts · May 02, 2026 · 52% similar
- The curious case of retro demo scene graphics zdw · 345 pts · March 30, 2026 · 51% similar
- What designing computer science cards taught me about graphic design marukodo · 42 pts · July 15, 2026 · 49% similar
- Learning Creative Coding ammerfest · 63 pts · March 14, 2026 · 48% similar
Discussion Highlights (20 comments)
SoleilAbsolu
Somewhat surprising there is no mention of basic design principles, or understanding the quirks of human perception. My brother was a production artist for some well-known computer games in the '90s-'00s, and continually complained about programmers and managers with zero visual sense, or curiosity about understanding the artists' side. Graphics aren't my specialty, but as a musician, sound designer and producer, by far the most effective/influential audio DSP coders I'm aware of understand the basics of music, the physics/acoustics of sounds, and the gotchas at the interface between discrete digital processes and how we perceive and interpret stimuli.
sudo_cowsay
I think that Khan Academy has a lot of graphics programmers that you might be interested in seeing. They use processing js. https://www.khanacademy.org/computing/computer-programming/b... This guy has some good art: https://www.khanacademy.org/profile/kaid_1019042693170894950...
conartist6
Immutability. Semantics.
playorizaya
1. Familiarity with all GL APIs, but deep focus on 1 or 2. If you want to work with Windows, probably DirectX. 2. Make awesome shaders. Check this out: https://fragcoord.xyz I would say being a long-time user of Photoshop and Blender helps a lot. It's not a main tool, but supplemental. Maybe AI will take over some of this though. Hell, maybe that other stuff too, hahaha!
psram1986
trigonometry->Coordinate Geometry -> Linear Algebra applied to graphics Once you have that intuition, the rest is all figuring out the stages of the graphics pipeline and the frameworks like opengl and their constituent data structures.
KellyCriterion
Today, I would not recommend anybody to go into graphics programming: I started in 2001, when NVidias first Geforce 1 ("the Gigatexl shadercard") was first announced: The field developed since then with so much speed and innovations, it blows my mind of. Compared to what we could do 25years ago, the tech today is just fu*ing impressive. Though, with this impressiveness comes a big "but": The space is developing at a speed which is really really scary. Nvidia came up with AI-based effects to influence scene & assets on their own - back then, we wouldnt have even thought about that this will be possible some day in realtime. I do not know if its possible at all to be a "decent pro" in this field now - let me use other words: "Where is todays Jon Carmack?" - he was famous for squeezing everything out of the hardware, using ideas very hidden in the community etc. - today, there is not any competitive moat for people like him (he actually lives on his legacy), and that is because the field is so vast and evolving so fast that there is no chance to become the next one
jplusequalt
I'm a graphics programmer. The most useful resources I've found for graphics are scratchapixel, UC Davis' graphics lectures, songho's articles, and Essential Math for Games and Interactive Applications. I highly recommend you read this last resource front to back. Seriously, its the best freaking math reference for graphics out there. But knowing theory is not sufficient. You also need to get your hands dirty by writing code: learn how to build a software rasterizer (check out Tiny renderer) and a ray tracer (Ray Tracing in One Weekend series). Preferably in a language like C++. Then move onto APIs. I recommend you learn OpenGL, but if you're okay with being confused as all hell try Vulkan. Or WebGPU if you're a hipster (/s). Finally, try to build some stuff. A simple engine. A non-trivial technique. A game. Whatever. Unfortunately, you're unlikely to get hired working as a rendering engineer without having serious connections, or by having adjacent experience in the industry. Doubly so now that everyone is convinced junior engineers are unnecessary.
mawadev
Feels like we try to turn anything we do into a career or job, especially with the odd ML angle. How about you "do graphics programming" instead of "being a graphics programmer"? Like start doing simple stuff until it clicks and you see it for being logistics to the GPU, then you can layer on top all the crazy concepts. Its like a small mountain you climb and suddenly everything clicks and you think like "oh my"... the possibilities and things to experiment with...
ivansavz
If anyone needs a quick tutorial on linear algebra, you can check out this printabale four pager that I wrote: https://minireference.com/static/tutorials/linear_algebra_in... I also have some notebooks with SymPy code examples here: https://github.com/minireference/noBSLAnotebooks
dmarcos
I created and still maintain A-Frame (aframe.io). It’s been a gentle gateway to learn 3D graphics for a decade. Cool community if I can say so ha ha. Web is a great way to share stuff as you learn, collect feedback and get visibility. Many cases in the community of people that ended up doing 3d graphics professionally.
725686
Claude Code
nicebyte
My only additions to the article would be to study your probability/statistics (can't do efficient path tracing without it) and get comfortable with integrals, especially integrals on a sphere (physically based rendering will be a lot easier to understand).
purple-leafy
I’m not a graphics programmer but had alot of fun building a raycaster in C. Fun math and actually really simple relatively. I’m going to revisit raycasting with a browser based raycaster from scratch. I’m just finishing up a webgl + canvas game engine and game for a 2D top down grid strategy game first
ivanjermakov
I had some difficulties making sense of _color_ in context of graphics programming, especially transfer functions (sometimes misleadingly called tone mapping). Good article on color management in general, which has a great intersection with foundations needed for graphics programming: https://chrisbrejon.com/cg-cinematography/chapter-1-color-ma...
Animats
Do you want to make games, or do 3D engine programming? If you want to make games, use an existing engine. Unreal Engine, Unity, Godot, and Bevy are good choices. You'll learn the higher level issues of graphics, not how to push pixels around. The real problem is making it fun. If you want to do 3D engine programming, be aware that there are too many bad game engines. In Rust land, where I am, there are three failed renderers, one unfinished one, and the one inside the Bevy engine. Those are the major projects. There are many other "I'm going to build a game engine" projects. Building a game engine takes about two years to get to the My First Renderer point. Getting to big, highly detailed, dynamic scenes is a much bigger job. Be aware of the scale difference between the first demo and a useful engine. If you want a job, be aware that the game industry sucks. Pay is lousy, hours are lousy, jobs end when the project is completed, and, like Hollywood, there's an army of wannabees wanting in. Also, right now, because of the collapse of the Metaverse thing, there's a glut of experienced people. Then there's mobile. Everything is a cram job. Not enough screen, not enough compute, not enough GPU, not enough battery. This is why most indy games now are 2D. That's do-able. Often in HTML/JavaScript.
smetannik
For some reason, graphics is one of most popular topics for recreational programming.
pcmaffey
I think the advent of world models is going to open up a lot of interesting 3D applications with related graphics & rendering challenges. That intersecting with WebGPU general availability across browsers IMO makes graphics programming a very interesting domain to get into now. I certainly see the need in my dayjob.
dimitrios1
My focus area in college was Computer Graphics. There is not enough focus about the math in this article, it just kind of passively mentions it. "Well you can get by with just a little bit of this and that" -- Linear Algebra is huge! So is an Engineering style Calculus course -- not your business calc. Those two require a year of their own to gain mastery. IMO, pick up: Linear Alegbra Done Right Calculus Better Explained Concrete Mathmetics. Then you can move on to the low level APIs.
gafferongames
Graphics programming in games is like playing the guitar. It's cool, but everybody wants to do it. Make the bold choice. Be a game network programmer. Nobody wants to do it, it's really hard and it kinda sucks. Play the accordion :)
raincole
I still have a gripe over the fact The Book of Shaders which never gets finished [0]. Perhaps I'll write such a book... after I finish my game (dry laughter). [0]: https://thebookofshaders.com/