I'd recommend the Pikuma course Graphics From Scratch[0]. The first thing you do is write a set_pixel function utilizing SDL and the rest of the course is all your code, every matrix operation, every vertex transformation, every triangle rasterization. You calculate what every individual pixel should be colored. [0]: https://pikuma.com/courses/learn-3d-computer-graphics-progra...
On that I cannot recommend enough is this github repo:
https://github.com/ssloy/tinyrenderer/wiki/Lesson-0:-getting...
If you are more of a visual learner, this guy is also a treasure trove: