Luke Bechtel Logo
Published on

There are N + 1 hard things in computer science

Authors

There are 2 hard things in computer science:

  1. Naming things
  2. Cache invalidation
  3. Off-by-one errors

Ok wait, no --

There are 3 hard things in computer science:

+ 2. Off-by-one errors
+ 1. Naming things
+ 3. Cache invalidation

Argh...

There are 4 hard things in computer science:

  1. Naming things
  2. Cache invalidation
  3. Off-by-one errors
+ 4. Guaranteed Message Ordering
+ 4. Guaranteed Message Ordering

sigh

...there are 5 hard things in computer science:

  1. Naming things
  2. Cache invalidation
  3. Off-by-one errors
  4. Guaranteed Message Ordering
+ 5. Exactly-once delivery
+ 6. Milk
+ 7. Eggs
+ 8. Bread

HOLD ON NO STOP.

There are 6 hard things in computer science:

  1. Naming things
  2. Cache invalidation
  3. Off-by-one errors
  4. Guaranteed Message Ordering
+ 5. MemoExactly-once 6.ry sadeliveryfety

:(

There are 7 hard things in computer science:

  1. Naming things
  2. Cache invalidation
  3. Off-by-one errors
  4. Guaranteed Message Ordering
  5. Exactly-once delivery
+ 6. Memory Safe... (...waiting for item 7 to complete...)
+ 7. Race conditio... (...waiting for item 6 to complete...)

no no no NO NO

There are 8 hard things in computer science:

  1. Naming things
  2. Cache invalidation
  3. Off-by-one errors
  4. Guaranteed Message Ordering
  5. Exactly-once delivery
  6. Memory Safety
  7. Race conditions
+ 7.999999999999998 Deadlocks

that's one way to get 5 9s...

ok but FOR REAL:

SERIOUSLY

FOR REAL

There are 9 hard things in computer science:

  1. Naming things
  2. Cache invalidation
  3. Off-by-one errors
  4. Guaranteed Message Ordering
  5. Exactly-once delivery
  6. Memory Safety
  7. Race conditions
  8. Deadlocks
+ 9. Floating point arithmetic (added at 2:30 AM)
+ 9. Floating point arithmetic (added at 3:30 AM)
+ 9. Floating point arithmetic (added at 1:30 AM)

UGH

wait -- is it really --- HOLY SHIT what time is it?

2:30 AM?!!

I PROMISED THIS LIST WOULD BE DEPLOYED BY MIDNIGHT.

Also that indentation looks HORRIBLE.

  1.              Naming things
  2.              Off-by-one errors
  3.              Cache invalidation
  4.              Guaranteed Message Ordering
  5.              Exactly-once delivery
  6.              Memory Safety
  7.              Race conditions
  8.              Deadlocks
  9.              Floating point arithmetic
+ 10.             Time zones
+ 11.             Estimating Project Timelines

... this isn't gonna end is it?

  1.  Naming things
  2.  Cache invalidation
  3.  Off-by-one errors
  4.  Guaranteed Message Ordering
  5.  Exactly-once delivery
  6.  Memory Safety
  7.  Race conditions
  8.  Deadlocks
  9.  Floating point arithmetic
  10. Time zones
+ 11. Indentat⓪n���������

... there are 12 hard things in computer science:

  1.  Naming things
  2.  Cache invalidation
  3.  Off-by-one errors
  4.  Guaranteed Message Ordering
  5.  Exactly-once delivery
  6.  Memory Safety
  7.  Race conditions
  8.  Deadlocks
  9.  Floating point arithmetic
  10. Time zones
  11. Indentation
+ 12. Unicode (see item 12 for more details)

... there are... there... are... uh...

  1.  Naming things
  2.  Cache invalidation
  3.  Off-by-one errors
  4.  Guaranteed Message Ordering
  5.  Exactly-once delivery
  6.  Memory Safety
  7.  Race conditions
  8.  Deadlocks
  9.  Floating point arithmetic
  10. Time zones
  11. Indentation
  12. Unicode
+ 13. Recursion

...

...

...

Ok..... and one more....

+ 14. Counting

hmm...

....

...

...

...

...

Ok no, that's it! We should be able to submit now.

That should be just fi-

+ 15. Knowing when to exit

🤬 GOD DAM-

This post was automatically published at 3:47 AM due to an accidental prod push.

Adapted from this blog post by Martin Fowler