Clean Code: A Handbook of Agile Software Craftsmanship
This book really helped me focus on code organization and seeing maintainable code as an overall goal whilst building long-term applications. I'd say that one of the reasons why the work I've done 3-4 years ago can still be used, expanded, and maintained today is because of this book. Short functions, code organization, and naming conventions all stuck with me.
I'd say that unlike other programming books, this one focuses on the "art" and "organization" rather than syntax and other aspects of programming.
The Pragmatic Programmer: From Journeyman to Master
This book tackled real-world application building and practices. I'm still reading it. I liked how it tackled not only some basics of programming (resource management practices) but also project management to a certain extent. Eg. how to use prototypes, how to use "trace bullet" programs, etc.
Game Programming Patterns
I think one of my favorites has been "Game Programming Patterns" http://gameprogrammingpatterns.com/ which is free online or you can get an ebook/print version http://amzn.to/2veRdiO
The book introduces several basic design patterns, it explains WHY they're used, how to implement them, etc. in the best way I've read so far. No CS book or online article has been able to explain these patterns as this book did.
And I'm not even a game developer.
Also, check out this post on dev.to -- https://dev.to/ben/what-are-the-most-interesting-readable-so... it has some good answers! :)
GPU Gems, Shader X and GPU Pro are good series for learning specific graphics programming techniques.
https://developer.nvidia.com/gpugems/GPUGems/gpugems_pref01....
http://www.realtimerendering.com/resources/shaderx/
For a general game engine overview: Game Engine Architecture by Jason Gregory (Naughty Dog)
Game Programming Patterns: https://www.amazon.co.uk/Game-Programming-Patterns-Robert-Ny...
Realtime rendering overview: https://www.amazon.co.uk/Real-Time-Rendering-Third-Tomas-Ake...
Related math: https://www.amazon.co.uk/Math-Primer-Graphics-Game-Developme...
Other recommendations:
http://mrelusive.com/books/books.html
http://fabiensanglard.net/Computer_Graphics_Principles_and_P...
It's fun to explore the source though, and NVIDIA has some cool experimental branches of the engine with their stuff integrated. https://github.com/NvPhysX/UnrealEngine
https://www.shadertoy.com/view/4dfGzS (or basically anything on that site)
How is that 400 lines of code.
Or this one which even generates the sound on the GPU
https://www.shadertoy.com/view/4ts3z2
With the wide adoption of WebGL, it's a good time to get involved in graphics. Furthermore, GPUs are taking over esp. with the advent of machine learning (nvidia stock grew ~3x, amd ~5x last year). The stuff nvidia has been recently doing is kinda crazy. I wouldn't be surprised if in 15 years, instead of AWS, we are using geforce cloud or smth, just because nvidia will have an easier time building a cloud offering than amazon will have building a gpu.
These are some good resources to get started with graphics/games
# WebGL Programming Guide: Interactive 3D Graphics Programming with WebGL
https://www.amazon.com/WebGL-Programming-Guide-Interactive-G...
Historically, C++ has definitely been THE language for doing graphics but if you are starting these these, you would have to have really compelling reasons to start with C++ and not JavaScript and WebGL. And that's coming from someone who actually likes C++ and used to write it professionally.
# Book of Shaders
# Game Programming Patterns
http://gameprogrammingpatterns.com/contents.html
https://www.amazon.com/Game-Programming-Patterns-Robert-Nyst...
HN's own @munificent wrote a book discussing the most important design patterns in game design. Good book applicable beyond games.
# Game engine architecture
https://www.amazon.com/Engine-Architecture-Second-Jason-Greg...
# Computer graphics: Principles and Practice
https://www.amazon.com/Computer-Graphics-Principles-Practice...
This is more of college textbook if you'd prefer that but the WebGL one is more accessible and less dry.
# Physically Based Rendering & Real-Time Rendering
These discuss some state of the art techniques in computer graphics. I'm not going to claim to have really read them but from what I've seen they are very solid.
https://www.amazon.com/Computer-Graphics-Principles-Practice...
https://www.amazon.com/Physically-Based-Rendering-Third-Impl...
I pulled it out recently and it still has its usefulnes.