I found "Writing an Interpreter in Go" to be a much better read. It was actually completely portable to C++ and Rust, and that made it useful to pretty much anyone.
(Also: I'm following along with "crafting interpreters" and not writing my interpreter in java, have had no troubles)