Deep coding work is like building a LEGO spaceship in my head. It takes a while to construct the model, and it takes focus to keep the model from collapsing. Once it collapses I have to rebuild the model from scratch. I've explained to my lovely interrupting children that this is why I get mad when I'm interrupted — what seems like a 30 second request to them is a much longer distraction for me.
I've estimated in my head that I need about 20-30 minutes to get into a state where I'm in the flow, the spaceship is fully constructed, and I can manipulate it like a master builder. I call this my "ease-in time." I think of it like critical mass, or a moat that I have to cross to get to an adventure.
I find writing to be similar — I need that ease-in time to get into a writing mindset before I feel effective. When I've got 45 minutes until bedtime, which is frequently when I write, it's easy to convince myself that it's not even worth starting. I'm only going to get 15 minutes of quality writing time after I ease in. Why bother?
During my ease-in time, I have very little self-control or direction. I'm mostly doing my best to keep myself from all the distractions I want to chase. It's sloppy. Sometimes I end up on Twitter. Sometimes I don't. The sessions when I end up on Twitter take longer to feel productive than the sessions when I don't.
Until recently I treated this as something I couldn't influence. I thought I just had to ride out my ease-in time, it takes what it takes, and I'd get to deep flow eventually.
But then I thought about athletes.
Athletes don't just do whatever they want before a game — they warm up. Giannis Antetokounmpo doesn't go into a game cold — he warms up by dribbling and shooting jump shots. When I get on a bike, I'm not ready to crush my ride right away — it takes ten minutes of gradually increasing my cadence and power before my body feels ready. I don't just put on my shoes and run five miles — I do stretches and strengthening exercises. (Maybe you just put your shoes on and run but I am old and I want to avoid injury.)
Athletes don't warm up by scrolling through Twitter or watching incredible marble machine videos on Youtube. They do drills that warm their body up for the specific movements they'll be making.
With easing-in I've been allowing myself the time to warm up, but I wasn't guiding my time properly. I was taking jump shots to warm up for a bike ride. My warm-up time wasn't effective. It didn't actually warm me up for deep coding or writing.
- It's easy to start the activity. You're using it to warm up for the deep work — it shouldn't itself require a warm-up.
- It's easy to stop the activity. It's important to set it aside when it's time to focus on your intention. You don't want to get sucked into your warm-up.
- Specificity. This is the piece I was missing. Warm-ups should exercise the muscles you're going to use during your time block.
Intentional writing warm-ups have reframed the amount of time I need to work on my writing practice. Whereas I used to see that 45 minutes before bed as not worth starting, I now see it as an opportunity to make at least a little bit of meaningful progress. I'm more likely to start a short writing session instead of conceding to Twitter or GCN for the night, because I can usually get myself into the writing mindset in ten minutes or less.
Some things I've done for writing warm-ups:
- Time-boxed free-writing
- Re-reading/editing an in-progress article
- Picked a page out of the book "642 Things To Write About: Young Writers Edition". ("Young Writers Edition" because my partner teaches middle-school English online, and that's the book that's on our shelf 😅)
I'm sure this is probably a technique that real writers talk about, and there are probably lots of other good resources for this.
Warming up to write code feels more natural to me because I've done this unintentionally for years. It feels different now that I'm applying intention, though. It feels like I have self-awareness and I've got agency in how long my warm-up will take.
Things I've tried for coding warm-ups:
- Time-boxed work on a personal project. Emphasis on time-boxed, because I don't want to get sucked in. If you try this option, make sure this work doesn't require its own warm-up: right now I have a personal project that's always kind of floating around in my brain when I'm not working, so I can usually jump right into it.
- Time-boxed PR Review. Yeah, I know I told you in the previous article that you should defer that to your smallest time slots, but I have found it a good way to ease into deep coding too.
- Small learning challenges. My friend Barry recently shared an interactive TypeScript course with very small exercises. The exercises are tiny, so I can get a taste of coding without getting sucked in.
Things I want to try:
- Writing a couple unit tests. They wouldn't even have to be tests for my focus project — the important thing is that I'd be warming up the "muscles" I'll be using. I haven't done this yet only because I keep forgetting to try it.
- A code kata. The challenge here is to find a kata that's short enough to qualify as a warm-up instead of a full-fledged problem. It'd be easy to get sucked into this. I haven't put the effort into finding a short enough kata yet.
I know it seems like it but I'm not always on. Sometimes I self-indulge. Sometimes I still let my hair down and "warm up" by scrolling through Twitter.
I have more awareness of when I'm doing it though. And intention — I'm allowing myself to warm up in a way that I know is less effective as a treat. Like allowing myself to drink a Coke twice a week even though it's bad for me. (This is what I tell myself...and you...to convince us that I have agency and self-control. Is it working? 😬)
I also don't always need a warm-up. Sometimes my mind is in the right space from the start, and I'm able to jump right into my deep work. I try to do a check within the first few minutes of my time-block to see if I need an intentional warm-up. I think I need it about 50% of the time for writing, and maybe a little less for coding.
Warming up for deep work in small blocks of time is pretty new to me but so far it's been really effective. I spend a lot less time getting into the mindset I need to be effective. If you've got suggestions on how to warm up for deep work, I'd love to hear about them!