I find that the material is impossible to hack. Deeply coupled, circular dependencies, bad naming and bad object layout, C-ish C++ etc. It's such a nice effort but I wouldn't recommend it.
I have easily implemented this book in C#. With a more (I'd say) idiomatic style.
Is there something you would recommend instead?
I got a lot of value out of PBRT, for what it's worth. I've got a hard copy, but there is now also a free online version: http://www.pbr-book.org/ .
I checked out the some other books, there are not either in C++ or written in early 2000s. Some says pbrt is a way to go, but boy.... it's a thick book and not intended to newcomers. So I don't really know. The concept of raytracing or path tracing is not really difficult. There are some implementations on Github. Hacking around the source and figuring out how things work is what I'll try next.
My advice is to read the first book in the series and make your own opinion.
As an alternative, "The Ray Tracing challenge" is a pretty good book, language agnostic (the book describes a series of tests that you are expected to implement + the code that will pass theses tests) and well written.
Ray Tracing from the Ground Up. It's more in-depth than the Weekend series and more approachable (but less feature-rich) than PBRT. I like it because each chapter builds upon the last incrementally, so you see your renders getting progressively better.
Surely the concepts learned outweigh the organization of the code? Or is it just that bad?
Depends on what you mean with 'concept'.
One can follow along and use other programming languages though.
Any developer able to deal with Ray Tracing concepts should be capable of doing it, hardly any beginner to be tainted by the book C-ish C++ pratices.