Focusing is debugging for the brain

2022-05-20


I’m working through Hammertime, a 30-day program of instrumental rationality exercises. Hammertime introduced me to a technique called Focusing via a LessWrong post called “Focusing, for skeptics”. The post’s version of Focusing involves:

  1. Thinking about a problem in your life
  2. Paying attention to how your body feels when you’re thinking about the problem. Focusing calls this a felt sense
  3. Coming up with a handle for that felt sense: a word, image, or concept that points to it
  4. Comparing the handle to the felt sense, paying attention to whether the handle feels right. If so, go back to step 3, narrowing down the handle, adding more description and nuance. If not, try step 3 with a new handle. Repeat!

It struck me that this is how I debug a computer program. First, I gather all the information I can about the bug. What part of the code is it in? When the bug happens, what state is the program in? Gaining knowledge about a bug is like paying attention to a felt sense.

Then, I lean on my intuition to surface hypotheses—in essence, short sentences that point to the bug’s root cause. This is similar to coming up with a handle for a felt sense.

Finally, I compare each hypothesis against the data. I might fill in blanks in a hypothesis, tweak it to fit the data better, or throw it out entirely. This is like comparing a handle to a felt sense.

I’m good at debugging but not at Focusing. This makes sense, even though they’re similar skills. I have years of experience ingesting information about computer programs. I haven’t spent nearly as much time paying attention to how my body feels. (I haven’t meditated seriously for a couple of years, so I’m at least out of practice.) Plus, my accumulated coding knowledge fuels my bug intuition. It takes longer to come up with good handles for felt senses because I have less data on them.

One takeaway for me: when Focusing, I should leave behind any preconceived notions of how I feel about a problem. Just like how, when debugging, it’s easy to stay attached to an existing hypothesis, even when the data are against it.