I’m big on code being clear and succint and self-documenting, so I like to put some thought into variable and function names. It’s a bit like writing prose. You might think of one word initially, but it’s not the “right” word, so you refer to a dictionary, a thesaurus, or another piece of writing.
In programming, there are not very good resources for this. Most reference texts intentionally have simplified examples because they’re trying to provide information about a language or library and not the expressitivity of the contrived problem at hand. Existing real-world code generally sucks.
Generally, I don’t want to explain the how, I want to explain the what and why. What I wish existed is something like a thesaurus of abstractions and design patterns—not someone’s idea of what they should be, but a wiki where everyone could share what sort of complex thing they were trying to make obvious and what solutions they considered, rejected, or were satisfied with.
There’s quite a bit in the original WikiWikiWeb about this, but that wiki’s scope is much larger so most of the enlightenment you can get from it is in other areas.