There are only two hard problems in computer science:

  1. Cache invalidation
  2. Naming things
  3. Asynchronous callbacks
  4. Off-by-one errors
  5. Scope creep
  6. Bounds checking