Benjohn Barnes wrote:
> Top programming tip - it's amazing how often trying
> to explain a problem will suddenly make you realise what the answer
> is. Curious, but true.

This is incredibly true. I often will describe my programming problems
to non-programmers who would have essentially no chance of helping me,
but end up doing so just by listening.

An interesting anecdote:

I've been told that there is (or used to be) a rule at the MIT
programming help desk that before you could talk to any of the techs,
you had to fully describe your problem to a stuffed animal called the
"problem bear". It turned out that more than half of the people's
problems were solved by the bear.