The horrifying importance of domain knowledge

There are some long lists of false be­liefs that pro­gram­mers hold. isn’t be­cause pro­gram­mers are es­pe­cially likely to be more wrong than any­one else, it’s just that pro­gram­ming offers a bet­ter op­por­tu­nity than most peo­ple get to find out how in­com­plete their model of the world is.

I’m post­ing about this here, not just be­cause this in­for­ma­tion has a de­cent chance of be­ing both en­ter­tain­ing and use­ful, but be­cause LWers try to figure things out from rel­a­tively sim­ple prin­ci­ples—who knows what sim­plify­ing as­sump­tions might be trip­ping us up?

The clas­sic (and I think the first) was about names. There have been a few more lists cre­ated since then.

Time. And time zones. Crowd-sourced time er­rors.

Ad­dresses. Pos­si­bly more about ad­dresses. I haven’t com­pared the lists.

Gen­der. This is so short I as­sume it’s se­ri­ously in­com­plete.

Net­works. Weirdly, there is no list of false­hoods pro­gram­mers be­lieve about html (or at least a fast search didn’t turn any­thing up). Don’t trust the words in the url.

Distributed com­put­ing Build sys­tems.

Poem about char­ac­ter con­ver­sion.

I got started on the sub­ject be­cause of this about test­ing your code, which was posted by An­drew Ducker.