Dapeng Li

Hungry, foolish and passionate – yet another software developer.

I want to get “high” every day – reading “The Passionate Programmer”


In May 2010, I attended a Microsoft Web Camp event at Beijing, that two-day event was hosted by Scott Hanselman and James Senior.

I had a lot of fun, I got “high” even if I just slept for a couple of hours, it was by far the two happiest days of my life as a programmer. I think it mainly because I really enjoyed learning and working with two great programmers/teachers, and I finished a challenging (but achievable) task in less than 24 hours. When I left the camp, I felt down. No surprise – I want to had that feeling every day, I want to get “high” every day.

Then I found the book The Passionate Programmer by Chad Fowler. This book enlightened me with some eye-opening suggestions on a programmer’s career, after reading just a few chapters I know why I was so happy in the Web Camp, and what I should do if I want to get “high” again.

This is not an exhaustive summary of the ideas in the book, they’re spread in 53 mini-chapters. Below are some of them that particularly resonate with me. (I grouped them, but most of the contents are taken directly from the book.)

Be Great

It’s about being awesome. It’s about winning. You don’t win a race by trying not to lose. And you don’t win at life by trying not to suck.

From chapter #6 – Don’t Listen to Your Parents

Fear-driven advice is geared toward not losing. Thinking about not losing is not the way to win! Winners take risks.

I saw new domains, I worked on harder problems, and I was rewarded more heavily than ever before. It was scary at times, but when I decided to be less fear-driven and conservative in my career choice, the shape and tone of my career — my life — changed for the better.

Be the Worst

From chapter #4 – Be the Worst

Always be the worst guy in every band you’re in. Because people can significantly improve or regress in skill, purely based on who they are performing with. And, prolonged experience with a group can have a lasting impact on one’s ability to perform.

From chapter #13 – Find a Mentor

A role model sets the standard for what “good” means. Without a role model, there’s no incentive to get better.

A mentor can also give structure to your learning process.

A mentor also serves as a trusted party who can observe and judge your decisions and your progress.

Be a Generalist

From chapter #7 – Be a Generalist

It’s not about where you sit on the perceived value chain of project work (where the architect holds the highest spot of royalty). It’s about how generally useful you make yourself.

Longevity is going to require that you are platform neutral in the workplace. We all have our preferences, but you’re going to have to leave your ideals at home. Master one, and get good at the other. Your skills should transcend technology platform. It’s just a tool.

From chapter #9 – Don’t Put All of Your Eggs in Someone Else’s Basket

When the author asked one of his employees, “What do you want to do with your career? What do you want to be?” He was terribly disappointed by his answer: “I want to be a J2EE architect”.

“Why not a Microsoft Word designer or a RealPlayer installer?”, the author asked.

The problem is: This guy wanted to build his career around a specific technology created by a specific company of which he was not an employee. Why would you want to trust a technology company with your career? We fool ourselves into thinking market leader is the same thing as standard.

Take the advice of being a generalist and platform neutral, what you should be able to say is “Let the vendors come and go — I know how to design a system!”

From chapter #45 – You’ve Already Lost Your Job

The one certain thing is that everything is changing. Don’t try to settle into the identity of a programmer. Or a designer. Or a tester.

From chapter #12 – Learn How Businesses Really Work

We worked for a business, and our job was to contribute to either making or saving money for that business. Yet we didn’t understand the basics of how the business came to profitability. Worse, we didn’t think it was our job to know.

However, how were we supposed to creatively help the business be profitable if we didn’t even understand how the business worked?

Be a Practicer

From chapter #15 – Practice, Practice, Practice

Our industry (programming) tends to practice on the job.

Musicians (the author used to be a professional saxophonist) are paid to perform in public — not to practice. They let the ugliness happen behind closed doors — not when they’re actually working.

From chapter #16 – The Way That You Do It

Ultimately, if you can’t do the process, you can’t do the product. It’s much easier to find someone who can make software work than it is to find someone who can make the making of software work.

Be where You Are At

From chapter #23 – Be Where You’re At

Be ambitious, but don’t write it on your sleeve. If you do, then you’re just a mediocre performer with a bad attitude. So what if you have high potential! Right now, you are not showing it.

Be where you are at, do good work in your job. If you’re not satisfied with it, don’t be whiny, do it or leave it.

I felt very lucky attending the Web Camp, and then reading this book; “being the worst” and “finding a mentor” in the camp made me a believer of these two powerful advices. That experience and this book made me looking at what I’m doing from a new perspective.

Although I don’t know for sure what the next big event in my career will be, what I do know is I have a direction, and a principle – be great and get high, every day.

Written by Dapeng

November 5th, 2011 at 8:30 pm

Posted in Programming

Tagged with