I'm in the process of reading Part II (the Java interpreter) thoroughly on the toilet, then will implement Part III (the C bytecode interpreter) in Zig. That way I understand the concepts well but end up with something a bit nicer for my efforts. I know I wouldn't finish the bytecode interpreter if I did both parts fully.
Same as others. I took it as an opportunity to work with Rust and enjoyed it a ton! Crafting Interpreters has been ported to any language you can think of so try that approach out!
Do you reproduce all, or most, the code yourself? That’d be a great way to make everything stick but makes progress terribly slow.