Falsehoods Programmers Believe
TL;DR: I'm in love with these lists of "Falsehoods Programmers Believe About…," so I've collected all the ones I know of here.
I'm in love with these lists of "Falsehoods Programmers Believe About X." In case you haven't had pleasure, I've collected all the ones I know of here. If I missed any, let me know!
Falsehoods programmers believe about names
- People's names do not change
- People’s names have an order to them
- My system will never have to deal with names from China
- I can safely assume that this dictionary of bad words contains no people’s names in it
- People have names
Falsehoods programmers believe about time
- The time zone in which a program has to run will never change
- The system clock will never be set to a time that is in the distant past or the far future
- One minute on the system clock has exactly the same duration as one minute on any other clock
- A time stamp of sufficient precision can safely be considered unique
- The duration of one minute on the system clock would never be more than an hour
More falsehoods programmers believe about time
- The local time offset (from UTC) will not change during office hours.
- My software is only used internally/locally, so I don’t have to worry about timezones
- I can easily maintain a timezone list myself
- Time passes at the same speed on top of a mountain and at the bottom of a valley
Falsehoods programmers believe about time zones
- Every day without DST changes is 86400 (
60*60*24
) seconds long - If you have two UTC timestamps it is possible to calculate how many seconds will be between them even if one of the timestamps are a year into the future
- The time
23:59:60
is always invalid
Falsehoods programmers believe about geography
- Places have only one official name
- Place names follow the character rules of the language
- Place names can be written with the exhaustive character set of a country
- Places have only one official address
- Street addresses contain street names
Falsehoods programmers believe about addresses
- No buildings are numbered zero
- A road will have a name
- A single postcode will be larger than a single building
- OK, but you don't get multiple postcodes per building
- Addresses will have a reasonable number of characters — less than 100, say
Falsehoods programmers believe about maps
- All coordinates are in “Latitude/Longitude”
- The shortest path between two points is a straight line
- All programmers agree on the ordering of latitude and longitude pairs
Extra Credit:
- Falsehoods programmers believe about gender
- Falsehoods programmers believe about networks
- Falsehoods programmers believe about build systems
- Falsehoods programmers believe about versions * Falsehoods programmers believe about online shopping
Update!
Kevin Deldycke has made an even better version of this list, and hosted it on GitHub, where you can make pull requests to add new lists when you find them!