Agreed. I do, however, think that code dumping is permissible on very rare occasions, like,
{*} assembly language (M68000 or 6502, but not x86 and ARM; this is because the M68000 and 6502 are rarely encountered in schools),
{*} C (only when dealing with kernel-space, FUSE, and 'volatile' -- many expert books don't event touch the volatile keyword -- in fact, it's the most poorly understood keyword, even though it's easy to understand if you know assembly),
{*} C++ (advanced polymorphism),
{*} Perl, when it's very spartan code, like,
Perl:
eval unpack u=>q{_;7E`26QL,#!/3SUQ=RAA8F,@96%S>2!A<R!O;F4M='=O+71H<F5E*3MF;W)E86-H)&\P23%O;&QO3RA`26QL;,#!/3RE[<')I;G0D;S!),6]L;&]/+B)<;B)]}
{*} New languages, like, Swift (the Apple one, not the other), Julia, and Vala -- technically, Julia has a boatload of documentation, and Vala is just another C-like language
{*} Inherently abstruse languages (e.g., Brainf*ck)