It's never lupus
One time I was listening sympathetically to a coworker who had a programming problem he couldn’t figure out. He’d tried everything and he was at the end of his rope. “The next thing I’m going to try is reading the source code of the compiler,” he told me.
“You’re barking up the wrong tree,” I answered. “You’re about to spend hours reading compiler code and find nothing.”
He was surprised. “Well, what do you think is the problem is?”
To tell you the truth, I’d barely been following his explanation, which was detailed and technical. “I can’t even guess. But I know for sure that checking the compiler is a waste of time.”
When you’re analyzing a problem, knowing what it’s not can be nearly as valuable as having some idea of what it is. Listing ideas is important, but not wasting your time on impossibilities is a close second.
Medical students don’t all simultaneously contract lymphoma the week of their cancer lectures. The actual problem is a psychological flaw called Medical Students’ Disease. Knowing that will save you a battery of useless tests.
Sharks do not live in freshwater pools because there would be nothing there for them to eat. The problem is that you are five years old. Knowing that will let you enjoy your shark-free pool in peace.
If you hit a problem while you’re programming, there’s maybe a one in a thousand chance that it’s the compiler. If you’ve checked literally everything and you’re now 100% convinced that there’s something wrong with the compiler, I can assure you with complete confidence that there’s something you forgot to check. I’ll bet a month’s salary, every time.
I’ve read that experienced chess players literally stop being able to see bad moves. As you gain experience, your brain starts to filter out things that won’t work. Experienced musicians have to focus hard to be able to play something that sounds bad.
My coworker found me the next day. “You were right,” he said. “It wasn’t the compiler.”