How Spearfishing is Like Coding

Spearfishing requires a few things to happen in sequence:

  1. Hold your breath.
  2. Dive Deep.
  3. Spear a fish.

Between stage 2 and 3, when you’re underwater, that’s when everything is awesome. You’re only down there for seconds at a time, but it feels like minutes. There’s no sound at all, total perfect silence. You equalize to relieve the pressure in your ears, and you look for a big fish. When you see a monster, you shit your pants, then spear it. Everything becomes extremely simple like that and I think that’s a big part of why I’ve become obsessed.

Learning to code is like spearfishing. It requires a mental “breath hold” while you struggle to focus on solving only one thing, a small but challenging piece of a larger whole. There’s really no way of accomplishing anything if you’re not able to commit 100% of your focus while writing new code (code you’re just learning). Once that singular piece of code has been written, you get to “return to the surface” of your consciousness and breathe. Step back and run the code. If it works, it’s like you’ve hit the fish. If it doesn’t – your spear missed.

It’s interesting how coders and spear-fishers are required to totally dial their minds into doing only one thing if they hope to do that thing successfully.

What do you do that forces you to do a mental “breath hold”?