Learn Computer Graphics from Scratch
scratchapixel.com
scratchapixel.com
Mine is based on the lectures I gave back in the day when I was teaching CG as a third-year university subject, so it follows a very pragmatic approach because I had to find the "path of least resistance" from zero knowledge to writing a rasteriser and a raytracer, so I had to condense all the material in 16 weeks or so... and that's roughly the number of chapters in the book :) It's also why every chapter builds on top of the previous one, and why there's a visible result at the end of each.
http://www.gabrielgambetta.com/computer-graphics-from-scratc...
What I've always found missing are resources that cover both the foundational theory and the implementation details, in a way that connects the two ends. That's why, when developing that workshop, I created a resource that goes over the theory of raytracing--including the relevant math--and walks you through a series of practical projects.
I put up the resource online: https://avik-das.github.io/build-your-own-raytracer
The page also links to two reference implementations in Java and Javascript, so learners can follow along.