Book - The Passionate Programmer by Chad Fowler

There are many valuable tips throughout the book. It would be hard to capture them here. The names of the chapters should be very helpful in identifying the chapters that we want to read based on the context.

Go through the sections called “Act on it” at the end of every chapter. Actually, copy them into this document for easy reference. It gives us details about how to actually implement the ideas described in each particular chapter.


I hate the feeling that my presence doesn’t really matter and that the world would have been exactly no different in a meaningful way if my work hadn’t been done. To become remarkable, you have to believe that you’re making a significant dent in the universe.

Fulfillment and happiness don’t (often) come by chance. They require thought, intention, action, and a willingness to change course when you’ve made mistakes.

Strangely, we don’t all set out on the quest to lead remarkable lives when we start our careers. Most of us are content to go with the flow. Our expectations have been lowered for us by the media and by our friends, acquaintances, and family members. So, leading a remarkable life is something you have to discover as even being a reasonable goal. It’s not obvious.

Ultimately, we’re all looking for happiness. Once we have our basic human needs like food and shelter taken care of, most of our goals are geared toward finding happiness. Sadly, our activities are often mis- matched to that one overarching goal. This is because we as humans get bogged down in the means and forget about the end.

With the focused goal of happiness as a primary motivator, we can make better decisions about the smaller steps we take to achieve that goal.

You don’t win a race by trying not to lose. And you don’t win at life by trying not to suck.

Kent Beck’s Extreme Programming Explained . The subtitle of the book was Embrace Change.

It’s because a person who wants to be great is far more likely to become great than someone who just wants to do their job.

Software is a business. As soft- ware developers, we are businesspeople. Our companies don’t employ us because they love us. They never have, and they never will. That’s not the job of a business. Businesses don’t exist so we can have a place to go every day. The purpose of a business is to make money. To excel at a company, you’re going to have to understand how you fit into the business’s plan to make money.

The four facets that a business must focus on when designing, manufacturing, and selling a product and how these four facets can be applied to our careers:

• Choose your market. Pick the technologies and the business do- mains you focus on consciously and deliberately. How do you balance risk and reward? How do supply and demand factor into the decision?

• Invest in your product. Your knowledge and skills are the cor- nerstone of your product. Properly investing in them is a critical part of making yourself marketable. Simply knowing how to pro- gram in Visual Basic or Java isn’t good enough anymore. What other skills might you need in the new economy?

• Execute. Simply having employees with a strong set of skills does not pay off for a company. The employees have to deliver. How do you keep up the delivery pace without driving yourself into the dirt? How do you know you’re delivering the right value for the company?

• Market! The best product in history will not actually get purchased if nobody knows it exists. How do you find recognition in both your company and the industry as a whole without “sucking up”?

The goal of this book is to give you a systematic way of building a remarkable career in software development.

Remarkable software developers don’t languish. They don’t find themselves fruitlessly searching for work. So, don’t worry. Stay focused on winning, and the fear of losing will be forever a memory.


Many of us just float down the stream of our careers, letting the current take us where it may. We just happen to get into Java or Visual Basic, and then our employers finally spring for a training class on one of the latest industry buzzwords. So, we float down that path for a while until something else is handed to us. Our career is one big series of undirected coincidences.

Most programmers can relate to the idea of programming by coincidence: you start working on something, add a little code here, and add a little more there. Maybe you start with an example program that you copy and paste from a website. It seems to work, so you change it a little to be more like the program you really need. You don’t really understand what you’re doing, but you keep nudging the program around until it almost completely meets your needs. The trouble is, you don’t understand how it works, and like a house of cards, each new feature you add increases the likelihood your program will fall apart.

As a software developer, it’s pretty obvious that programming by coincidence is a bad thing. Yet so many of us allow important career choices to be, in effect, coincidences. Which technologies should we invest in? Which domain should we develop expertise in? Should we go broad or deep with our knowledge? These are questions we really should be asking ourselves.

The adoption curve has edges at either end. How far out on the edges do you want to be?

You can’t compete on price, but you can compete on ability.


If your surroundings are changing and the context of your work is constantly moving, clinging to your job creates an unhealthy dissonance that infects your work.

Beware. Success breeds hubris, which breeds complacency.

Looking ahead and being explicit about your skill development can mean the difference between being blind or visionary.

It’s good to have ambition, but don’t buy too heavily into a long, imagined future. You can’t afford to have tunnel vision with something too far off in the future. If you want to hit a moving target, you don’t aim for the target itself. You aim for where the target is likely to go. The path from here to there is no longer a straight line. It’s an arc at best but most probably a squiggle.


The South Indian Monkey Trap

In Zen and the Art of Motorcycle Maintenance, Robert Pirsig tells an enlightening story about how people in South India used to catch monkeys. I don’t know whether it’s true, but it teaches a useful lesson, so I’ll paraphrase it.

The people of South India, having been pestered by monkeys over the years, developed an ingenious way of trapping them. They would dig a long, narrow hole in the ground and then use an equally long, slen- der object to widen the bottom of the hole. Then they would pour rice down into the wider portion at the bottom of the hole.

Monkeys like to eat. In fact, that’s a large part of what makes them such pests. They’ll jump onto cars or risk running through large groups of people to snatch food right out of your hand. People in South India are painfully aware of this. (Believe me, it’s surprisingly unsettling to be standing serenely in a park and have a macaque come suddenly barreling through to snatch something from you.)

So, according to Pirsig, the monkeys would come along, discover the rice, and stretch their arms deep into the hole. Their hands would be at the bottom. They would greedily clutch as much of the rice as possible into their hands, making a fist in the process. Their fists would fit into the larger portion of the hole, but the rest of the narrow opening was too small for the monkeys to pull their fists through. They’d be stuck.

Of course, they could just let go of the food, and they’d be free.

But, monkeys place a high value on food. In fact, they place such a high value on food that they cannot force themselves to let go of it. They’ll grip that rice until either it comes out of the ground or they die trying to pull it out. It was typically the latter that happened first.

Pirisig tells this story to illustrate a concept he calls value rigidity. Value rigidity is what happens when you believe in the value of something so strongly that you can no longer objectively question it. The monkeys valued the rice so highly that when forced to make the choice between the rice and captivity or death, they couldn’t see that losing the rice was the right thing to do at the time. The story makes the monkeys seem really stupid, but most of us have our own equivalents to the rice.



Links to this note