This is now one of my favorite programming books! Not only is it a methodical building-block-approach to learning how ray tracers work, but it's a genuinely good way to familiarize yourself with the ins and outs of a programming language. For myself, I used Go after a year of learning it on the side -- this posed challenges because of its lack of OO inheritance, default/optional arguments, etc., and solving those challenges was equally as fun as implementing the ray tracer itself. The bonus chapters and forum are also a great supplement to the book. Thanks Jamis!
Published Dec. 15, 2019 by Pragmatic Programmers, LLC, The.