The Stretch
November 6, 2024
I’ve been doing some physical therapy recently, and it’s got me thinking about an idea – the stretch.
The stretch is putting yourself under mental strain; going beyond your capacity or understanding. It’s uncomfortable, like a physical stretch. When in the stretch you instinctually want to give up, to release the tension. But it’s also fertile ground for learning.
And, like a muscle, it gains flexibility with use. Like a physical stretch – the stretch gets easier if you practice it.
I’ve been thinking about the stretch as a reflection on learning and growth.
Tasked with mentoring software engineers as a lead, I struggled to help with growth. My approach was to prepare interactive presentations, pair programming sessions, and ad-hoc lessons.
But, for the most part, my own learning didn’t look like this. I don’t have a formal education, and I’ve spent my career working in small, flat companies. Or as an independent consultant.
On a daily basis, I faced hard problems without a clear path forward. But the freedom (and responsibility) to solve these issues was granted to me.
Efforts to grow my engineers weren’t very successful. I can only speculate, but there is a dissonance between how I learned, and how I was trying to teach.
Whether this is unique to me, or due to deeper corporate structure or cultural change – I’m not sure. But based solely on my own experience, this is my advice:
Allow yourself to be stuck for longer. Be determined to solve issues without assistance. Over time this becomes less uncomfortable.
Re-approach problems in the morning with a fresh mind. Try to get curious and anticipate the reward of understanding on the other side.
Follow stack traces into your dependencies and runtimes. Read documentation. Make issues, minimal reproductions, and PRs. Continually expand your territory down the stack and into the community.
And stretch.