Writing code is just a means to an end. It doesn’t define us.
Dave Thomas and Andy Hunt are the Pragmatic Programmers. Last month we talked with Dave about publishing, and this month we chat with Andy about the Pragmatic Life book series and about life in general.
ms: Andy, when we were planning PragPub, you told me you wanted it to be a place where we can share our passion for what’s cool. The idea, I think you said, was to provide a peek at what we’re excited about and what our authors and readers are excited about—and we shouldn’t be shy about proselytizing, we should try to get our readers excited about things we think they should be excited about, so we can rediscover important truths about our profession and our craft.
ah: Sharing the excitement is an important part of it. We get a fair number of proposals from people every week, so we really get to see what folks are excited about. Some of the topics are well-suited for books that we might publish. But not all of them are; sometimes it’s just a really cool topic that people happen to be interested in.
You can tell when the author is passionate about their subject. If they’re not, you tend to get a very dry and dull proposal, which would make a dry and dull book. They’re just trying to explain the topic, so the work ends up reading a bit like an encyclopedia entry. Not very exciting, illuminating, or engaging.
However, for topics that people are genuinely passionate about, there’s a very different feel. You can sense and share in the excitement. It’s the difference between being shown an exploded parts diagram of an antique motorcycle, versus a friend roaring up in a cloud of dust, engines pumping, who shouts out to you, “Hey, hop on the back of my ride.” That’s the feeling we’re aiming for.
ms: And I appreciated it that you said our scope shouldn’t be limited to programming. Because there’s more to life, and to a programmer’s life, than code.
ah: Oh absolutely. Writing code is really just a means to an end. It’s a tool. It’s a tool we happen to use a lot of, and tend to prefer, but it doesn’t define us. Too many people I think identify themselves as a Java programmer, or Ruby programmer, or PHP programmer, or what have you. But in reality, that’s not what we actually do for a living. What we do is solve problems.
ms: With that in mind, let’s talk about life.
ah: In the immortal words of Jethro Tull, life’s a long song. Things change. Your career focus when you’re just starting out is going to be very different than in the middle of your career, and quite different yet again towards the end of your career. Everything changes over time.
You’re a professional, and you’re good at what you do.
ms: Why, thank you.
ah: I’m talking to the reader...
ms: Got it.
ah: You’re good at what you do, you’ve probably been doing this for a while, and you’re on your way to the top of your profession. You’ve spent long, occasionally happy hours, solving intricate problems using code. You’ve resolved thorny issues, tracked down elusive bugs, and finally figured out what the chaotic users really wanted in the first place. There’s a great sense of accomplishment.
But somewhere along the line, you come to realize there’s more to life than code, more to life than your day job. You start to change your focus, to take a wider view.
There’s digital photography, robots, music, health, career, family—all the other topics that we’re interested in. Our hobbies and passions might include coding. Maybe your projects at work aren’t using that shiny new language you’d like to try, or maybe you want to play with a more sophisticated operating system than is in general commercial use. Or maybe you want to actually get away from the code altogether, and explore a hobby where technology is tangential to the task at hand.
Even though these extracurricular activities aren’t part of your day job, you can still apply the full force of your pragmatic powers to learn and enjoy them. You can use the same skills you use on the job—quick learning, applying feedback, making pragmatic choices—in your hobbies or other personal areas.
ms: I’d like to crank up the focus really high. I want you to talk about your life. Your hobbies, your passions. What gets Andy Hunt’s blood pumping?
ah: World building. I think most creative endeavors take on some form of world building. One of the neatest parts, to me, about writing code is creating that little world, that little environment in which it lives. You are defining your own laws of physics, your own social contracts, your own relationships between entities you have devised, and it’s a lot of fun. But of course there are other activities where you can build worlds as well: Fiction writing, role-playing games, composing a rock opera, restoring an antique car, or creating a photograph with unusual lighting from an unusual angle to show part of the world that no one else has seen—or that doesn't even really exist.
I enjoy woodworking as a hobby. It’s a nice change of pace to do something very tangible and physical after twiddling bits all day. But my real passion lies in music. I’ve performed live, I’ve written and recorded songs, I’ve practiced my instruments, and enviously eyed new ones. I’m always humming or whistling something. It’s just part of my mental fabric. I enjoy creating songs that envelop the listener, that draw you in and surround you. Perhaps they are complicated, perhaps they’re very simple, but I always try to make them immersive.
ms: For me that raises a question I’ve pondered more than once: why are so many programmers also musicians?
ah: I think there's a high degree of correlation there. There are some studies that show that music is one of the few activities that actively engages almost all faculties of the brain simultaneously, so it’s a very stimulating experience.
And certainly if you’re writing your own music, or are immersed in jazz improvisation, or performing a challenging technical piece, you are building your own little world. Same as coding. So it’s not at all surprising to me to find a great deal of affinity for music among programmers.
ms: I’m sure it doesn’t surprise anyone reading this that you have these rich extracurricular interests. These passions. And that’s really the only word, isn’t it, that captures the range of interests and activities that absorb us when we’re not coding. It’s not just hobbies. There’s family. There’s your career, apart from the actual coding. We all have these absorbing passions, and they are part of who we are.
ah: Sure—it's what makes us human. I love talking to folks at conferences, because there you really get a chance to find out the other stuff that people are into. Maybe it’s related to music or photography, or perhaps they’re building a rocket sled in the backyard. Or a potato cannon. My programmer friend Lou Bottali built a floating one-man submarine out of 55-gallon drums.
If you get people talking about the stuff they’re passionate about, you can really see their eyes light up. It’s obvious they're excited about it. Sometimes much more so than the latest 188.8.131.52 release of whatever.
ms: And yet there is this stereotype of the computer geek with no life. Oh, I know that being smart and being technically astute are now cool. But the stereotype hasn’t really disappeared. Programmers are still being advised to get a life. In fact, isn’t it true that you considered calling the Life line of books, Get a Life?
ah: Yes, and I certainly still think of it that way. Even though the formal title is Pragmatic Life, the intent is to get a life. I think the stereotype still exists for some, and remains a cautionary tale for all. Programming is a demanding discipline. It’s very easy to become involved with the project that commands all of your available time—and then some. It can literally suck the life right out of you.
And that’s not just a metaphor. Stress and overwork have been shown to rob you of creative cognitive abilities, and there’s a recovery lag before you get them back. Your brain is wired such that you need to daydream. You need to do something kinesthetic, using your hands. You need to shift your focus and concentrate on sophisticated scale patterns, or complex needlepoint designs, or whatever.
ms: So does the book line span all of these non-coding passions? I know that it includes career-enhancing books, like Andy Lester’s Land the Tech Job You Love and Chad Fowler’s The Passionate Programmer, and also books on topics that might be considered hobbies.
ah: That’s our plan. We are looking at topics ranging from photography, to music, to yoga, to electronics. We started off with the career-oriented books, but will include hobbies—both mainstream and the more unusual—and titles geared toward family and personal development as well.
ms: It might be thought that the career books are more important or central to your mission, but I think you have some thoughts about the importance of hobbies. Certainly one could argue that these other interests lead to a more balanced life, but you think they are more important than that, if I understand correctly.
ah: Much more important. We tend to think of work life as separate from our hobbies, as separate from our families or social network (i.e., “friends”). But the distinction is artificial.
The discipline of Systems Thinking encourages us to view the world as a series of interacting, interrelated systems. While this is common enough when talking about project teams and organizations, it’s easy to forget that each one of us is a system, too. Not only do we function as part of larger social and technological systems, but taken individually each of us is a collection of systems as well. And because everything is interrelated, then our hobbies, passions, and families have a direct effect on our professional life—and vice-versa.
Sometimes the link is obvious. I tend to talk about learning quite a bit; learning is obviously critical to our career success. But it’s important to keep learning throughout your life. When you’re given a new and novel task to learn, your brain experiences increased activity and neuron growth. By learning more, you’ll literally develop more brainpower to learn even more—whether on the job or off.
The controversial historian Arnold Toynbee claimed that civilizations waxed and waned through distinct, predictable stages. On the path to decline and fall, they’d pass from abundance to selfishness, then down through complacency to apathy, sliding inexorably into dependency, and finally into bondage.
I don’t know if that's true for civilizations (that answer would be “above my pay grade,” as they say). But it does seem to have a ring of truth about people and our careers. Selfishness disrupts your social network; complacency leaves you vulnerable to fast-moving changes in technology and markets; and apathy becomes the mental paralysis that renders you incapable of response. You’re left so dependent on the existing status quo that you become a slave to it. That’s not a pretty sight. But it is avoidable.
On Toynbee’s “up” side, faith and courage leads to liberty, and then to abundance. And you can strive towards abundance by expanding your reach—beyond code, beyond the day job. Have the courage and faith to extend yourself. Your extracurricular activities can have a very positive effect on your career in a number of non-obvious ways, from increasing your overall skill set to expanding your social circle, from providing rich metaphors for system behavior to supplying fertile ground for a sudden mental breakthrough.
ms: Anyone who has read The Pragmatic Programmer knows that you advocate a pragmatic approach to coding, and that you have a pretty well articulated view of pragmatism. You’ve been teaching me to think in pragmatic terms about what I do, and I gather you advocate a pragmatic approach to these extracurricular passions as well.
ah: Naturally :-). But pragmatic doesn’t mean dull or tedious—we do this stuff because it’s fun. Dave is into photography; he’s got a wicked zoom lens that looks like a small bazooka. One of these days I’ll make good on my threat to release an album. Our editors and authors enjoy a surprising variety of hobbies ranging from yoga and Taekwondo to needlepoint and craft brewing.
They really do this stuff, and you can too. There are plenty of other books and magazines out there that cater to these topics, but they’re just not, well, pragmatic about it. I enjoy woodworking, but many of the high-end woodworking magazines just seem to emphasize the point that I will never successfully spend 300 hours hand-carving fretwork to make a coffee table that looks like a lace doily. Even many of the geek-culture projects fall prey to a similar lack of pragmatism. Not all of us have welding supplies, eprom burners, or laser cutters close at hand. The idea behind the Pragmatic Life series and the PragPub magazine is, after all, a pragmatic and practical focus.
Our approach is that you can do this, and it will help your career and your overall life.
ms: If someone wants to pitch a book idea for the series, what should they do?
ah: Contact us! Check out this link for details. It explains what you need to submit, but more importantly it explains what you get and what the experience is like writing with us. As everyone is fond of pointing out, we are not like most publishers.
In fact, we are not really “publishers” at all. We’re a couple of programmers who happen to publish books, on topics we’d like to see.
ms: If the other books are for professional skills, are these about amateur skills?
ah: I suppose it depends on what you mean by amateur. I’m an amateur at my hobbies—in the original sense of the word. Unfortunately, the shifting sands of the English language have turned the word around to mean inept, or unskillful. But the root of amateur comes from the Latin for love, meaning that we do this not for money or fame, but because we love it. Sometimes we can get paid for it as well, but that’s just gravy.
We’re all amateurs at technology, in that sense. We embrace it because we love it. We love to learn, to fiddle, to create, to build worlds. We do that all the time in our professional lives, but I feel strongly that we need to extend that, and do so in the rest of our lives as well.
Because life doesn’t stop at the office door. And neither do we.
Andy Hunt is one of the Pragmatic Programmers.
(P.S. And since I know you're curious, here's a picture of Lou's sub:)