My friend and fellow Rails developer John Lannon, lead developer at http://resonantvibes.com, was mugged last night while picking up dinner for his wife. He didn’t have anything on him to give to the robbers and they shot him point blank in the chest.
His friends and teammates at Resonant Vibes are raising money to help with his recovery. Please consider helping a fellow developer and a remarkable individual who (not that anyone does) really does not deserve to be in the predicament he’s in now.
Thanks
Since finishing The Passionate Programmer I’ve been putting a lot of thought into how to package the advice from the book into something more structured, serial, and prescriptive.
The Amazon reviews for the book are almost all glowingly positive with the occasional piece of constructive criticism. Here’s one such excerpt from an otherwise positive review by Ira Laefksy which I agreed with and took to heart:
Ira and I have the same idea. What I think we’re both looking for is a career development methodology.
As an example methodology pulled from the software field, Extreme Programming has always been codified as a set of distinct practices, all of which can be beneficially understood and adopted on their own. But, as the famous flowchart shows, XP doesn’t just give you a bunch of great ideas about how to develop software. It tells you what to do when you get to work each morning.
The idea of following a software development methodology is nothing new to any of us in the field. It’s common practice. Software projects are expensive, complex and (sometimes) important. Letting them chaotically emerge isn’t a reasonable approach for a professional to take.
So why should our careers be any different?
Mike Swaine recently approached me about writing an article for the Pragmatic Bookshelf’s PragPub issue #3. I decided to use this as an opportunity to explore some of the ideas I’ve had about crystalizing the advice from The Passionate Programmer into a prescriptive career development methodology.
I think I’m onto something, but I’d like feedback. The article, titled “Clone Yourself – Destroy Your Job Through Automation and Outsourcing”, contains just the beginnings of what I have in mind. Please go read it and let me know what you think.
I gave myself a little break this spring and early summer, but the pace is about to pick up again. The rest of the year is looking pretty busy. Here’s what the rest of this year looks like so far. If you’re a reader of this weblog, consider stopping by to say hello.
There’s an old joke I heard in India which goes something like this:
What do you call a person who speaks many languages? Multilingual
What do you call a person who speaks two languages? Bilingual
What do you call a person who speaks one language? American
Sad, but usually true. I got fairly deep into my adult life without having learned anymore than the bare minimum Spanish I was required to study in the Arkansas public school system. As you might imagine, I wasn’t all that conversational in Spanish by the time I graduated. My father’s mother was German and my mother’s mother is Japanese. I grew up hearing many languages spoken but somehow never learned another one. As a German-Japanese-American, by my mid-20s I started to feel like I was missing something serious.
I was sitting at work in a big company lunch room one day talking to an Indian friend. I asked how many languages he spoke and he said six. I told him I was envious and that I guessed I would need to just eventually move to another country so I could be immersed enough to learn a language. I was tired of being the typical monolingual American. He said, “Look around. Anything significant about the people you see?” I looked around and it turned out I was the only person in the lunch room who wasn’t Indian. He said “Learn an Indian language”.
So I bought every Hindi book, CD ROM, and video I could find and started watching Bollywood movies for fun. Within a year or so I was pretty conversational. I started teaching my wife, Kelly, Hindi as well, and we used it as a secret language when we were out in public.

Photo by Asha Susan
Based on my self-driven Indian cultural immersion, when an opportunity came up at the big company I worked for to have someone expatriate to India to help set up a software development center, I was the first choice. My wife and I spent a year and a half living in Bangalore trying to blend in like real Indians (except for the physical appearance thing of course).

Photo by J.P. Dalb�ra
We took two private Hindi classes per week plus I took Kannada and studied the Veena twice a week each as well. The Veena lessons were particularly cool because the teacher didn’t speak very much English at all and wrote all the music in Kannada script, which I had taught myself over a long weekend after we moved to Bangalore (I discovered that after learning to read Hindi, it was relatively easy to learn any Indian language’s writing system). Knowing that I couldn’t have succeeded in these Veena lessons had I been limited to English was extremely empowering.
While in India, we were fearless. We walked the back streets of Bangalore where westerners don’t go. We weren’t afraid to find our own transportation or do our own business anywhere, despite the huge cultural differences and language barriers. And when we went up North where everyone spoke Hindi, we didn’t have to worry about trying to find cab drivers who spoke English. We were able to go to small villages and talk to anyone we encountered. We got to see what India was really like and to experience the immense warmth of its people, which we’ve discovered is multiplied when you even try to say “Hello” or “Thank you” in their language.

The benefit of learning Hindi didn’t stop at the Indian border. All of this led to another of the best experiences of my life. When we were about to head home from India, my wife got an email from a non-profit group in Louisville, Kentucky (our home/destination) that supported Tibetan monastic refugees: “Help! Does anyone speak Tibetan or Hindi?”. The director of the non-profit (http://www.drepunggomang.com) was desperate and half-joking when she sent the request. They had just moved a senior monk from an monastery in India to Kentucky to lead a dharma center when the local Tibetan translator had immigration problems and was suddenly no longer allowed to stay in the US. The monk didn’t speak any English, so the dharma center was basically stuck there with him without anyone who could help communicate. We didn’t know a whole lot about Tibetan Buddhists at the time but decided it wouldn’t hurt to help, so we responded saying we spoke Hindi and were due back in Kentucky in a week.

This started a long relationship with the institute which included a stint with both of us serving as directors. We also became very close friends with Geshe Sangay Gyatso from whom we learned a lot about Tibetan culture and Mahayana Buddhism. He even lived with us for a while. The center was in between lodging arrangments for him, so it made perfect sense for him to stay with us since we could all communicate. We had developed a family-like relationship. He stayed with us for about a month. I remember the smell of incense and the sound of chanting coming out of his room every morning as he practiced his faith. It was a seriously humbling and life-changing experience to let the pressures of corporate life reflect from his perspective after work each day.
Being Geshe Sangay’s translator led us to amazing experiences, including a lot of dialog with the spiritual leaders of Louisville when we attended and participated in interfaith events. One of the highlights of these experiences was when I had the opportunity to tour the gardens of The Abbey of Gethsemani while translating for the recently retired abbot of the Drepung Gomang Monastery in India. I believe I’m one of very few non-monks to see the full beauty of the Abbey, and it’s an experience I’ll never forget.
As the direct result of learning Hindi (and now a little Tibetan and Kannada), I’ve had some of the greatest career, cultural, social, and spiritual experiences of my life. I’ve made dear friends I could never have met or communicated with, and I’ve learned things that would have been much harder to learn without the language skills. Is learning a language a good use of your time? Absolutely.
I just finished reading the inspiring The E-Myth Revisited, which like my own first book My Job Went to India suffers from an incredibly bad name.
This is definitely one of the most practically useful and potentially career-changing business books I’ve read. As I started getting toward the end, I realized that I should have been taking notes. The book is an excellent read, but at its core, it can be distilled into a clear outline of stuff to do after you read it. I was reading on my Kindle, which I’m still not good at using as a quick reference device. So, while I was excited about going back through the book and making myself a TODO list, I wasn’t sure how to best do it.
Then I remembered Derek Sivers’ book list. Derek has obviously spent a lot of time thoughtfully preparing a list of recommended books with reasons behind each recommendation. Not only that, he includes detailed notes on each book. I read his notes on E-Myth Revisited and was pleased to see that all of the important stuff is captured. Thanks Derek!
Speaking of Derek and books, don’t miss his book, How to Call Attention to Your Music. It might be titled for musicians but I think everyone will find something valuable inside.
I had a great time at Ruby Nation this weekend. After my presentation I got a number of questions asking about things I referenced during the talk. Here’s an attempt to point to some of them. If you weren’t there, you won’t have any context but feel free to follow the links anyway You might find something interesting.
Bureau of Labor Statistics Time Use Survey
Karlheinz Stockhausen whose name I accidentally used when trying to refer to Stockholm Syndrome.
Pat Metheny – “Whenever young guys ask me what they should do to get better, I always say try to be the worst guy in whatever band you’re in. That’s the secret.”
Drepung Gomang Institute (for whom we translated Hindi)
What Would You Rather Be Doing?
Ask Sunday – the company I mentioned that helped me with research
Arduino – I used this to create the interface to my exercise bike
Gosu – The game library I used to write my exercise bike “game”
Building Games with Ruby – Andrea O.K. Wright’s presentation on game development in Ruby
You and Your Research – Richard Hamming at Bell Labs
Fixing Broken Windows: Restoring Order And Reducing Crime In Our Communities
Discussion Panel: Women in Rails
14 Worst Health Mistakes Even Smart Women Make – Referenced Harvard and University of Texas studies on the effect of the company you keep
How to Call Attention to Your Music – Derek Sivers free ebook
15 Things Kurt Vonnegut Said Better Than Anyone Else Ever Has Or Will
I’m reading Vagabonding: An Uncommon Guide to the Art of Long-Term World Travel by Rolf Potts. I’m only a quarter of the way through it and it’s already worth the price. In the third chapter, Rolf talks about the American reaction to the Exxon Valdez oil spill in the late 80s. The nation suddenly became, on the average, much more environmentally minded. So what did we do? We bought “environmental” products. Recycled products, energy-efficient this-or-that, health food, etc. What did we not do? Actually change our behavior.
Here’s a quote from page 29:
The more our life options get paraded around as consumer options, the more we forget that there's a difference between the two.
When I read this I recognized a pattern in myself and many people (everyone?) I know:
I do this all the time. I decide I’m going to do something challenging, and my first step is to load up on stuff related to whatever it is I want to do. My second step is to continue to load up on stuff related to the topic. And so on.
Why do we do this? Because we know that we’re staring in the face of something that’s both very important and very scary. We want to feel like we’re doing something about whatever goal it is we have in mind. And the easiest way to feel like we’re doing something is to buy stuff.
What’s upsetting is to realize that in my case, simply buying the stuff is all I typically need to get enough of the feeling that I’m “dong something” to be satisfied. The end result? I’m fat, I still can’t program in Haskell worth a damn, I haven’t run the triathlon, I don’t know Spanish, I can’t play accordion very well, and I’m totally unorganized.
Experiment: next time a really important goal comes along, I’m not allowed to do any discretionary spending related to that goal.
My hypothesis is that unfunded life goals stand a better chance of being met.
While I was working on The Passionate Programmer I had the following Kurt Vonnegut quote (from A Man Without A Country) at the top of the introduction. Right before we published it, my editor reminded me that we had to get permission to print it. I was unable to reach anyone from Kurt Vonnegut’s estate on time, so I commented the quote out in the book’s source.
This is how The Passionate Programmer was supposed to begin:
"I urge you to please notice when you are happy, and exclaim or murmur or think at some point, 'If this isn't nice, I don't know what is.'" -- Kurt Vonnegut, Jr.
For the first several years of my career in IT, I spent a lot of time thinking about what I’d rather be doing while at work. I might be in a meeting, talking about how to improve the uptime of a billing system. Or putting together time cards for a weekly report. Or programming in a language I knew wasn’t as good as the one I used at home when I was free.
I was frustrated. Not extremely frustrated most of the time. Just a little frustrated. Because there was always something I’d rather be doing than the job I spent the majority of my waking time on.
For me, the question of what I’d rather have been doing was answered roughly as such: working with people smarter than me using the best tools available to build something that solves real problems well. In my spare time, I worked on Open Source code in Ruby and collaborated with some of the smartest developers I’ve met. At work, I wished I was doing what I did in my spare time.
Within the structure of my job, there was yet another telling question with a telling answer. What job would I have rather been doing? For me and most of my co-workers, there was always that next job we were after. Someone was doing it and doing it poorly, and we wanted a chance. That’s how humans think, I guess.
So with these goals in sight, I made daily choices that were usually geared toward driving me toward achieving them. I wanted to work with Ruby, so I spent my free time learning Ruby from top to bottom. I read and tinkered with the interpreter source and experimented (and failed sometimes) with different styles of Ruby development, testing, an what-not. I wanted to work in a team that understood software development processes, so I practiced XP practices when possible and immersed myself in development practices such as Test Driven Development. I wanted to work with people smarter than me, so I befriended and collaborated with as many as I could—-again in free time until I could find the right opportunity to do it for work.
These investments paid off. In 2005, I moved out of the upwardly mobile corporate management job I was in and into a development position on a small, talented team of Ruby developers. I’ve gone from that to independent consulting to training and book writing to working with the team at InfoEther (led by Rich Kilmer, one of those smarter-than-me people I mentioned earlier).
This month, as the expanded and renamed second edition of my first book is released, I find myself returning to the primary question that drove me to where I am today: What would I rather be doing? It’s weird, but for the first time I don’t know.
The title of the new book is The Passionate Programmer: Creating a Remarkable Career in Software Development. The book covers the approach I and others who have inspired me have taken in creating a remarkable and satisfying career. It’s an expanded version of the first edition with not only new and revised content by me but essays by software developers who have inspired me throughout my career and a foreword by David Heinemeier Hansson.

I believe strongly that passion is the most important ingredient for creating a remarkable career and doing excellent work. That’s easy to say and probably not too hard to agree with, but it begs the question of what you should do if you’re not passionate about what you’re doing. How can you find your passion? What advice can I give to someone who hasn’t found it but wants to?
Again, I don’t know. But I think a good first step is to ask yourself the question: “What would I rather be doing right now?” And then, “Why is that not what I’m doing?”
Twitter is an excellent service for allowing people to vent. I’d guess a large percentage of the messages that pump through the site are complaints about something (technology, airlines, restaurants, etc.). I know I’ve posted my share of complaints.
A couple of days ago, Chris Wanstrath linked to one of his Twitter complaints from a year and a half ago:
failed at setting up a public git repo with working push. giving up for tonight, working on something else.
This was probably the first seed that led to the birth of the extremely popular GitHub.
I’m hoping to remember this every time I type in a whiny tweet about something I have the power to fix. Complaining and being critical is great as long as you’re willing to do something about the problem when you can. And, maybe if it’s annoying enough for you to type it into Twitter to share with your followers, it’s annoying enough that a solution could be your next big thing.
As I said recently, 20 days is the right length for me to develop beneficial habits. It just so happens that, counting today, there are 20 days left in 2008.
So what should we do? I’m thinking about trying to write fiction every day for the rest of the year. Or practice the saxophone. Or write short pieces of “classical” music. I’m not sure yet, but I have the rest of the day to decide and put the plan into action.
My friend Erik Kastner showed me recently that Steve Pavlina posted something similar a few years ago. At the bottom of the article he includes a bunch of ideas of things you could try to do for 30 days. So if you’re interested but don’t know what you want to do yet, have a look at his suggestions. They might trigger an inspiration.
Good luck!
Update: I chose fiction writing. Time will tell.
This is nothing revolutionary, but the number 20 has held special significance for me since I was a young teenager. I learned that if I started something and was still doing it 20 days later, it stuck.
Since good habits seemed to stick after 20 days, I started to set 20 days as a goal whenever I wanted to get into the habit of doing a good, responsible thing. Turns out, it works.
I think there are two reasons it works. The obvious is that, for me, 20 days is the right amount of time to internalize behavior or get used to a new feeling, thing, taste, activity or what-not. The less obvious but more important reason is that 20 days is short. It’s easy to commit to doing something for 20 days. It’s hard to commit to doing something forever. So, because I have this short duration which I believe to be like a magic spell, I’m able to convince myself to actually try to do something hard. Even if something sucks, I can do it for 20 days.
The number 20 probably won’t work for everyone, but I highly recommend trying it out and fine tuning the duration. Want to eat better? Exercise? Learn Japanese? Practice a musical instrument more responsibly? Try to do it well for 20 days. That’s it. Don’t worry about whether it’s going to stick. Just promise yourself the 20 days.
Even if the magic spell doesn’t work for you, the worst case is that you do something good for you for 20 days.