While I agree with all of the above in principle (and even I have trouble reading my own code at times), this part was specifically in response to the section about ‘code optimized to irrecognizability’ and should not be taken as a general statement on finding other people’s code incomprehensible. Deliberately using non-descriptive naming is unfortunately a thing, although thankfully I rarely seem to encounter it anymore.
If he likes working with physical objects as well (robotics) I can’t recommend the Lego mindstorms or education series enough. The standard interface is very similar to Scratch so he’d feel right at home, but they can generally also be programmed with more traditional programming languages if using building blocks becomes too restrictive.