Early vs. Beginning Coders
Is there a book somewhere that tries to set out all of the things that experts know about computing that they don't remember learning?<p>(In Zed Shaw's conception, this might correspond to "learn computing the hard way".)<p>I see his examples and other examples here in this discussion, and it makes me wonder about the value (or existence) of a very thorough reference.<p>I've also encountered this when working with lawyers who wanted to have a reference to cite to courts about very basic facts about computing and the Internet.  In some cases, when we looked at the specifications for particular technologies or protocols, they didn't actually assert the facts that the lawyers wanted to cite to, because the authors thought they were obvious.  I remember this happening with the BitTorrent spec, for example -- there was something or other that a lawyer wanted to claim about BitTorrent, and Bram didn't specifically say it was true in the BitTorrent spec because no BitTorrent implementer would have had any doubt or confusion about it.  It would have been taken for granted by everyone.  But the result is that you couldn't say "the BitTorrent spec says that" this is true.<p>Another example might be "if a field is included in a protocol and neither that layer nor a lower layer is encrypted with a key that you don't know, you can see the contents of the field by sniffing packets on the network segment".  It might be challenging to find a citation for this claim!<p>So we could also wish for a "all our tacit knowledge about computing, programming, and computer networking, made explicit" kind of reference.  (I'm not sure what kind of structure for this would be most helpful pedagogically.)