Title: The Passionate Programmer
Author: Chad Fowler
Publisher: The Pragmatic Bookshelf
This is the second edition of the book that was titled as 'My Job Went to India (And All I Got Was This Lousy Book): 52 Ways to Save Your Job' in the inaugural edition. As the author admitted in the first few pages of the book, that title gave some impressions that the book is only about how to merely save the job.
The title for the second edition is more apt considering the intent of the author. If you read Andy Hunt's books on Career Development, this book by Chad Fowler falls into the similar genre.
The key emphasis of the book is --
Think of your career as if it is the life cycle of a product that you are creating. That product is made up of you and your skills.
From My Notes
There are a lot of useful tips and sound advice in the book, just want to touch on a few of them --
How to choose a technology stack to work with and how to choose a business domain is discussed. I completely agree with the author's view on how many of us end up doing whatever comes our way. In the author's own words -- "Our career is one big series of undirected coincidences".
Fowler says that both ends of the technology adoption curve might prove to be lucrative. I see where he is coming from, although I haven't seen many people intentionally taking up gigs to work on old/outgoing technology. Even the ones who take up such jobs, they are doing so because they can do only that.
These kind of folks they may call themselves specialists, but Fowler says that too many of us seem to believe that specializing in something simply means not knowing about other things. A very good case is made in the book why you want to be a generalist and at the same time being a specialist!
Fowler (being a musician in his past life) says it may be a good thing for being the worst guy in every band you are in -- which translates to work and hang around with people who are smarter than you. Great advice, I can attest to that from my own experiences, especially from the early phases of my career.
Simply being good at programming alone is not good enough. You ought to make sure that you understand the business domain well enough. Without understanding the business domain is it even possible to do justice to the job -- either making or saving money for the business.
One of the suggestions was to practice coding and read the open source code to learn new tricks of the trade. Great advice, but open source community is not immune from bad code, so choose your projects wisely!
There are some execution tips -- productivity boost from do-it-now mentality, push yourself to accomplish something every day, working towards a team goal (your managers' successes are your successes), don't panic. Another important aspect is to question yourself are you adding enough value to justify your worth. Author suggests that there will be many opportunities that you can spot if you ask such questions.
Fowler explains why marketing one's skills is important -- If you kick ass and no one is there to see, did you really kick ass? Who cares? No one. Perceptions do matter and it's not a wrong thing to manage perceptions. Build your brand (this concept is also explained well in Career 2.0 book by Jared Richardson. Richardson explains quite well the importance of writing and public speaking activities as a part of brand building).
The book is organized into short chapters under five broad categories / sections -- Choosing your Market, Investing in your Product, Executing, Marketing, Maintaining your Edge. Each chapter ends with an 'Act on It' section. Author suggests a few items in this part of the chapter on how you can act based on the content discussed. Although they are nice, the real "act on it" is on the readers, coming up with the action items that is more specifically tailored for them.
You may actually finish reading this book in a few hours, perhaps in one sitting. I'd rather suggest taking your time, and go with a cycle similar to:
read_a_chapter --> introspect --> prepare_a_plan [act_on_it, of course]
As Chad Fowler suggests, this book isn’t about struggling to maintain the level of mediocrity required not to get fired. It’s about being awesome. It’s about winning. I remember Uncle Bob saying -- you employer is not your mom. True. You have to make your choices and treat your job as a career, and develop the skills needed to keep you up-to-date. If you are currently looking for some inspiration or not so passionate about your career, then this book is for you.