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.