- Published on
There are N + 1 hard things in computer science
- Authors
- Name
- Luke Bechtel
- @linkbechtel
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