Matt RaibleMatt Raible is a Web Architecture Consultant specializing in open source frameworks.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

The Passionate Programmer by Chad Fowler

Today I'm attending Developer Day in Boulder, Colorado. The opening keynote was done by Chad Fowler and below are my notes from his talk.

Chad recently wrote a book called The Passionate Programmer. It's about Creating a Remarkable Career in Software Development. Why is it important to do this? Because the average adult spends 53% of their time working, so it's really about creating a remarkable life. What is remarkable. For Chad, it was driving around the country in a 1986 Tioga motor home for two months. He worked the whole time and got to enjoy a lot of beautiful scenery along the way. He just returned from "working" in Hawaii for the last two weeks.

One of the things that motivated Chad to take control of his career was The Pragmatic Programmer book. It taught him you should always try work with people that are smarter than you. What we all really strive for is freedom, especially creative freedom. The whole idea of a remarkable career is it's different for everyone. Some folks want to get rich, some want to take a lot of vacation, some want to travel the world.

The process of developing a remarkable career is fairly easy - you just need two things. You have to have the intention and a system for getting it done. Most people do their careers by coincidence, but they don't drive it. In the music world, no one gets into it for the paycheck. Everybody gets into it because they think they're going to be the best. When Chad became a programmer, he thought the same thing - that he wanted to be a rock star.

When you have a plan, it makes hard things easy. A good example of a helpful planning technique is training for a running race. In September, Chad completed the Indian Summer Half Marathon and he used a training program that introduced mileage in a systematic way. Because of this, training never felt difficult. Another system that Chad recommends is the Seinfeld Calender, where you have a calendar that you X the days when you completed your training (or steps toward a goal). An interesting open source version of this is Calendar About Nothing.

One good way to look at your career is to think of yourself as a product. Choose your market, invest in yourself, execute and market your skills. You should hang out with people you want to be like and work with people you want to become. Chad recommends not only learning a new language every year, but also learning a new domain. You should decide if you want to be a generalist or a specialist. Being a specialist does not mean only knowing one thing, it just means you know one thing very well. If you do both, it's the best path towards awesomeness.

The thing that most programmers don't do enough of is practice. CodeKata is an example of how you can practice. Don't just practice programming, understand how your business operates. One of the best ways to do this is learn how to read a balance sheet. Don't be a Partial Person. Don't be someone who says I'm not a UI programmer. Learn how to do it. If you say "I've always wanted to", you should do it (unless it's illegal of course).

Execution is a mindset. The best person is not always the smartest person. People who struggle have to come up with systems to make them stronger. People who get things naturally (fitness, brains, etc.) tend to not keep perfecting their skill. Always think about how much you cost per hour and try to do something you can tell your boss everyday. Another way to execute impressively is to do an 8-hour burn (similar to the 40-hour work week)

The best way to market yourself is to be remarkable. When you do networking events, try to help people. We can all get stuck in the trap of saying I am an X programmer. This happens a lot when you're successful at X. Don't limit yourself by tying yourself to one technology. As a programmer, your job doesn't suck. If what you're doing is not fun, then you're probably doing the wrong thing. Ruthlessly cut out the crap you don't enjoy.

Posted in Open Source at Oct 10 2009, 01:59:19 PM MDT 5 Comments
Comments:

Thanks for sharing your notes. I've added 'The Passionate Programmer' to my list of books to read. I've seen quite some ideas in your notes which I could not agree more with. Becoming a better developer is mostly about motivating yourself to go far beyond what you expected yourself capable of.

Posted by Jeroen Reijn on October 12, 2009 at 07:02 AM MDT #

"Another way to execute impressively is to do an 8-hour burn (similar to the 40-hour work week) "

What does this mean ?

Posted by Stephane on October 13, 2009 at 08:07 AM MDT #

how do I know what are my interests, likes and dislikes. People always say, you need to love the work you are doing and you need to find what is your passion (in the book "land the tech job you love", "passionate programmer"). But my question how do you find where is your passion ? what you like and dislike ? any suggestions on evaluating myself perfectly (may not be 100%) and then taking a decision in my career path

Posted by Akram on October 17, 2009 at 07:45 PM MDT #

I enjoyed this book, thanks for mentioning it!

Akram -- One approach that may work is to just let your interests flow naturally and see where they lead you. Maybe keep a journal of interesting things you read or hear about each day. Review it every week or so and look for patterns. Another approach...list what you like or dislike about your current job or studies. Maybe you gravitate towards testing, design, or even writing. You may be surprised to find your passion isn't even in technology, but something like business development, management, or even teaching. Be honest and give it time. Even identifying a dislike brings you one step closer to finding your passion.

Posted by Mike on November 07, 2009 at 12:36 AM MST #

Thanks for posting this. It was inspirational. One thing you can do to find what your interests are is to make 3 lists, one next to the other of the things you dislike, the things you are ok and the thinks you really like. Professional and personal. When you compare the list you can count how many things are "Life", "Work", "People" etc... and then you see if you are a person that need life and work balance, or you prefer to work more, etc... then look at your career, put in a quadrant of where you are and what the next blocks would be. From there choose what should be your next career step... I hope it helps!

Posted by Mariella on February 11, 2011 at 10:26 AM MST #

Post a Comment:
  • HTML Syntax: Allowed