No one understands protocols. No one understands the Eight Fallacies of Distributed Computing. No one understands the CAP theorem, and therefore they don't realize that they are trading away data integrity. No one realizes that the architecture of TCP tacitly assumes that all networks are wired. No one understands idempotency. Today's networks are all semiconnected, which is the worst possible case. Mastery of these topics is an absolute precondition for writing working software, but they are not taught.