Book Review - Passionate Programmer

passionate programmer

Passionate Programmer by Chad Fowler is a book targeted at software developers with topics related to career building, self-marketing and overcoming challenges. The topics feel weirdly familiar, but later I realized it is because the useful insights found in this book are promoted by other people too, which is a good sign that the contents are solid and proven. What makes this book different is that it condenses these useful insights into a single book, and applies them to the software development field.

With that said, this is not your typical book for software engineers. Passionate Programmer really delves into the realm of social and communication skills that software developers must develop to jumpstart their career, so, this book is not about a technical topic per se.

What is it about

The organization itself is very intuitive: the book is nicely organized into small specific topics or tips, which are part of a section or part, as the book calls them. There are five different parts:

Choosing your market

This section talks about making a big time investment deciding which technology or technologies you want to rely on to make a living. Contrary to common knowledge, it is not just as simple as deciding based on popularity or modern trends; it is imperative to obtain all the facts: supply and demand, local market, business domain, etc. first and then weigh your options. Also, it outlines a very important attitude for software developers: be technology independent. Just knowing a programming language well is not a good strategy anymore, you need to know many different technologies, specialize in one or two but the most important thing is learning the core computer concepts which apply to all languages. This advice is given by many successful people, and it is called being a t-shaped person, and I loved reading about it applied to software development.

Investing in your product

This section talks about a concerning reality for many developers: perfection is achieved by practicing, and coding solely on the job is not going to cut it; you need to practice your craft outside work hours, just as athletes practice their sport every day and not just on competitions. Also, one interesting property about software is that is present in almost every professional field, so depending on the kind of software you want to develop you also need to learn at least the basic concepts of the field your software is targeting. As many masters can tell you, practice itself does not make perfect, perfect practice makes perfect so the practice you perform needs to be challenging; a great system used by popular masters for centuries is called the apprenticeship: finding a mentor who is already a master of their craft to guide and teach you. I have been using this system for a month now and it certainly accelerates learning.

To learn more about perfect practice, I recommend two resources: Learning How to Learn by Barbara Oakley and Mastery by Robert Greene.

Executing

This is the most important part of this book, because remember: ideas are a multiplier for execution, meaning that ideas have no worth if they are not executed. This section talks about evaluating how much are you worth today to your current employer (or clients) and initiating a how good a job can I do today? mindset, which means doing the best you can today without dwelling on the past or living in the future. Also, it highlights the importance of learning to say no, learning to fail and learn from your mistakes and to adhere to a schedule to avoid burning out. Execution, along with making people aware of what you do, can be just what you need to get noticed in an ever-increasing competitive market.

Coincidentally, a few weeks ago I learned about the importance of executing your ideas. It began to change my mindset and with this book I reinforced the ideas, because it is true that just storing ideas and never acting on them was getting me nowhere.

Marketing

Remember what I said before about making people aware of what you do? This section talks about the techniques used to promote your hard work and making managers, clients or employers see you as worthy and valuable. It is important because, no matter what impressive technical skills you may have, if no one is aware of them they are as good as non-existent if you pretend to use them for career and reputation building. Marketing your skills sound good and easy, until the reality kicks in that not everyone knows how to do it (intuitively), or are introverted, and among software developers this is pretty common; it is why this section gives solid advice on how to do this along with actionable tips to take guesswork out of the equation and start right away.

I do not consider myself as introverted, but I certainly feel like I lack the social skills to promote myself successfully and effortlessly, so I nicely welcomed every tip I read on this section and I appreciated the recommended actions given; which I started to implement as soon as I read them.

Maintaining your edge

To summarize this section in a single sentence: never get comfortable. This applies to everyone, even if you don’t have more aspirations and just want to stay the way you are right now, because as we developers are aware: the technology world changes fast; technologies you use nowadays may not be relevant in a few months or years, more so if they are proprietary (the company can go under for unexpected reasons). For these reasons, it is important to take an active stance about staying relevant in the workforce, and everything mentioned in previous sections is a good way to start; additionally, you may want to implement an “agile” methodology to plan your career: plan, start doing and change on the fly as trends or interests sway.

I am at the beginning of my career, and as such I don’t have much to say with being comfortable in a job. But while I was a computer science student, I felt the classes I took were not enough, so I was always looking for online courses or tutorials to learn new things. This allowed me to acquaint myself with many technologies and tools and opened my mind to new concepts, and it has proven to be useful in my first job, so I will continue with that insatiable thirst for learning to avoid getting irrelevant.

Why is it worth reading

The tips mentioned here are just the tip of the iceberg, inside the book are a lot more insights which can help you jumpstart a software development career or, if already a developer, make the leap you always wanted (or wished but didn’t have the courage!). Inside the book, there are sections at the end of each topic called act on it, which describe actions you can immediately start taking to improve. At the end of this book, you will get the skills needed to stand out among the competition, stay relevant in a fast-paced environment and communicate with influential people in the field.