This is an old revision of the document!


Falsehoods Programmers Believe

“There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.”

…and some guidelines for further edge-case in Practical International Data Management


A falsehood list about falsehood lists:

  • I'll never need to learn a falsehood list, so I can skip it.
  • A falsehood list is complete at the time of writing.
  • OK, but it will surely get updated with new falsehoods and clarifications.
  • Skimming the falsehood list is all I need to do to learn it.
  • OK, but surely I'll remember to recheck the falsehood list once I actually need to, right?
  • If a falsehood doesn't immediately make sense to me, there must be something wrong with it, despite the author having domain expertise that I don't.
  • “Edge cases” live only at the edges; they never creep into the middle.

1)
“Many of these falsehoods aren’t things that only programmers believe, but widespread societal misconceptions.”