I just returned from four weeks of vacation—no laptop, no programming books, and a phone that could barely do more than call and text. It’s the longest I’ve been away from code in years. I didn’t plan to make it a digital detox, but it turned out to be exactly what I needed. If you do get a chance to do the same, I’d highly recommend it!

There’s something clarifying about stepping away from the things that usually fill your days. For me, that meant no late-night debugging, no “just one more chapter” of a programming book, and no side projects. Instead, I spent my sitting-down time reading more fiction, playing more Zelda, and generally letting my mind wander more than usual. It was good.

But as the days went by, I found myself reflecting on what it means to be passionate about programming—and how that passion fits into the bigger picture of a meaningful career. If you’ve read my earlier post, “Passion”, you know I care deeply about loving what you do. But lately, I’ve been thinking about the order of things: does passion come first, or is it something that grows as you get really good at your craft?

The Craftsman Mindset Link to heading

Enter Cal Newport’s excellent book, “So Good They Can’t Ignore You”. If you haven’t read it, I highly recommend picking up a copy. Newport challenges the common advice to “follow your passion,” arguing that this mindset can actually be counterproductive—especially in fields like programming.

Instead, he advocates for what he calls the craftsman mindset: focusing on getting really, really good at something valuable, and letting passion grow as a result of mastery. In other words, don’t start by asking “What am I passionate about?”—start by asking “How can I get better at this?” Passion, Newport argues, is often the result of putting in the hard work to become excellent.

This resonates with me, especially after a month away from the keyboard. I realized that what I missed most wasn’t the idea of being a programmer, but the satisfaction that comes from solving tricky problems, learning new things, and seeing my skills improve over time. That’s the craftsman mindset in action. Add to that, I didn’t know I was (or even could be!) passionate about programming until I was knee deep in (I started out as a cinematographer, believe it or not).

(As the veteran reader very well knows, it’s not exactly the first time I intentionally use the word “Craft” about software engineering. I think it’s exactly the right term.)

Passion Still Matters Link to heading

Of course, I still believe passion is important. (If you want to know why, check out my earlier post: “Passion”.) But Newport’s point is that passion is often the fruit of craftsmanship, not the seed. In programming, it’s easy to get caught up in the search for the “perfect” job or the most exciting technology. But the real joy comes from the slow, steady process of getting better—of building things that matter, and knowing you’ve done them well.

The Order of Things Link to heading

So here’s my takeaway, coming back from vacation: Don’t stress about finding your one true passion. Instead, focus on the work in front of you. Get good—so good they can’t ignore you. Passion will follow.

There’s a lot more to say on this, but Cal Newport says it best. So, to summarize:

If you’re looking for a great read to finish off your summer, one that might change the way you think about your career, give Cal Newport’s book a try: “So Good They Can’t Ignore You”. He’s also blogged extensively on the topic, so if you prefer a more bullet point-y version, check out his Career Craftsman Manifesto.

Also: It’s good to be back. I can’t wait to continue on my Elm project. Without AI auto-complete. 🤓🤤