Michael Mentele

learning-review   software

Book Review: Passionate Programmer

Book Author: Chad Fowler

This is a great career guide geared towards software engineers. I recommend given it a read; it offers good chunking of high level frames to consider and some tactical action items.

The book is well organized around five sections: 1) choosing your market 2) developing yourself 3) kicking ass 4) marketing and soft skills 5) adapt or die

Basically: choose, invest, execute.

The book opens with the idea that fulfillment does not just happen; you must deliberately make it happen. We work the majority of our lives, most of our time is spent there and if you don’t spend time optimizing your working life then you are a moron (my words not his).

I also love this line:

The truth of the matter is if you need to ‘save’ your job, I can’t help you. This book isn’t about… mediocracity… It’s about being awesome!

Hell yeah! Don’t live your life from a place of fear. He goes on to encourage a responsibility mindset; take control, don’t be a little victim!

The major sections are organized as discrete tips or chapters each ending with action items you should take. I love it.

Choosing Your Market

You need to weigh tradeoffs. Do you want security or reward? What skills are in demand and what is flooded with supply? Do you want to compete with foreign devs in a language like, say Java who will work for cheap cheap cheap?

Are you interested in the domain you will work in? You need to know the lingo to communicate with stakeholders!

There are a number of great tips that follow and how to navigate choosing your industry.

Investing In Yourself

Normal development stuff: find a mentor, always be learning, be the dumbest in the group, etc.

Executing

Have a bias for action. This is so important. Programmers and engineers and people in general complain all the time. How many actually do something?


Sidebar: This is something I embody. I do not complain, I make proposals or I discuss problems. But I don’t complain. Complaining is for consumers, not producers. It’s a pet peeve of mine to hear others complain about the same thing more than once; either shut up or do something about it.

If you are a producer i.e. an engineer, I don’t want your emotional vomit (unless you are my infra customer). If you are my coworker, fix it or shut up.

He also advises you ‘read’ peoples minds, fix things before they officially spin up a project. A good way to do this is to listen for what people complain about repeatedly–then, while they commplain–just fix it. You’ll be the hero. And then you don’t have to listen to the complaining.

Align yourself with your manager/leader. Make sure you are forging ahead in the right direction. You’ll be better rewarded, have more impact, and be better regarded if you do. Unless your manager is a moron.

Are you worth what you are paid? How much are you worth? 10x your salary? How can you measure and improve your impact? How can you quantify and show to others? (great tactic for negotiating raises).

An interesting idea is the idea of the ‘eight hour burn’ i.e. constrain yourself to a fixed timeframe to get things done (doesn’t have to be 8 hours per se). This means the value of the hour won’t be deflated and you will be more productive and on track in that time. Whereas if you ware working 90 hours that week and you know it, then you are going to be less focused because you need to maintain a slower pace to keep up.

This idea basically predisposes that the same amount of energy exists in 40 hours of work as 90 hours of work. The total output is largely the same but the throttled output stretches. This is an interesting idea. Maybe Elon Musk has it wrong or maybe there is a way to put the same amount of urgency into even long days.

Embrace failure and embrace saying no. Focus on the important, kill the rest.

Write up weekly status reports and quantify your efforts. Share these with your boss.

If you present a plan, follow through on the items you presented at the end–don’t let it look like you missed things. If there is a reason something didn’t get implemented, explain why not or acknowledge the gap.

Marketting Yourself

People make excuses why they shouldn’t develop soft skills. They are engineers, their work speaks for themselves, yada yada. But, the author states, and I agrees that these people are uncomfortable with the idea of doing an honest portrayal and sell themselves.

Look, people are busy, if you don’t highlight your good points, you are doing yourself and your stakeholders a disservice. Don’t be the typical damsel from romantic movies that sit in the corner and wait to be noticed and discovered. If you want to be recognized you need to show what you are doing.

You have two goals:

  1. let them know you exist
  2. that you can solve important problems.

At the end of the day knowledge work is subjective. YOu will always be compensated based on perception because your work can’t truly be quantified, at least not completely.

If you have project managers and other stakeholders to report to or interact with, what do you think is more important? The source code they know nothing about? Or the communication about the results?

Put yourself in a non-technical person’s shoes. What if you were put into some situation where you were blind? How would you want people to speak with and communciate with you?

You are what you can explain

If you want to run with the wolves, howl like a wolf. Speak like those you are trying to communicate with. Benjamin Franklin followed the same principle as a diplomat. When he was with the French he dressed like them and enjoyed their frivolous parties. When he was in America he acted very differently. Different audiences, different ways of being ‘like them’. If you have more common ground the pipeline of communication is bigger, more bandwidth.

Have a vision and make sure people know it

Be someone who is on a mission to kick ass. YOu are focused with big goals that affect not just you but your team and your organization. Tell other people. Push for change you know will make a difference.

Most importantly create that change. Make it happen. You’ll be rewarded.

Think of yourself outside of your company and your role. Develop a reputation in the industry. The best advantage to have is to be positively known of before you arrive at the interview. If you worked with other kick ass people you are ‘cool’ by association. If you speak at conferences you are precieved as a leader.

Develop a web presence! That is the easy way to get started.

Maintaining Your Edge

You’ve already lost your job! That’s the mindset the author puts forth. You need to be aware of the future and navigate it. Really this is just making Part 1 in a cyclic continuous action instead of a one stop analysis.

Make a personal roadmap for the future like you would for a multiyear software projects. Know the big sweeps and have contigencies.

One way I personally make room for this is bi-yearly think weeks and keeping a journal. I review every week against my goals for that week and every six months I review all the previous entries together. This lets me know whether I’ve lost my way, if I’m still on track, and reflect on my daily activities.

It’s not enough to have your long range plans (which most people don’t even have) but you have to win the minutes, which win you the hours, which win you the weeks, which win you the year, which win you the life you want. So put your thoughts down in a journal and review it. Hold yourself accountable.

Conclusion

Overall, a great read. A great outlook and concious way to develop your career but, if you’re clever you can see much of this applies to your life not just your career. And since we spend 100% of our time living our lives, we should be even more motivated to have goals, to develop our life direction.