Passionate Programmer — A Review
TL;DR
Passionate Programmer, by Chad Fowler, talks about how important it is to have and make our jobs fulfilling and rewarding. This is because our jobs take a good percentage of our awake time and feeling stuck and inadequate during time can lead to only bad feelings in our overall life.
In this post, I’ll talk a little about the main ideas and tips that are mentioned throughout this book.
Choose your market, don’t let the market choose you
In this section, Fowler explains how the market works and some tips on how to not only prepare and excel but also how to get an advantage from the supply and demand model.
Supply and demand
Get to know what is needed in the market and what is not. Invest in learning skills and technologies that are in high demand.
Don’t be just another programmer
In this topic, there are several tips and strategies to stand out from the rest, like:
- Getting to know more about the business you’re in. This will help you to have better communication with the client, speak their language, and get your points across.
- “Be the worst”, and I don’t mean try to consciously do a bad job, but rather, go and find teams where you are the least experienced programmer, learn from them, keep always exploring others' points of view.
- Don’t be a one-trick pony. Invest in learning new technologies and skills, be flexible, take any opportunity to keep expanding your toolbox. What the only technology you know goes out of business or stops being used? Also, take risks, don’t get stuck with the same everyone else does.
- Avoid being a shallow expert. Get to know about the technologies you’re using.
But the most important takeaway I believe is to love what you do. If you don’t it will show. It is very important to find a job you’re truly passionate about.
Invest in yourself
This section is devoted to how to improve ourselves within the industry, how to stand out from the rest. Some ideas that are explored are:
- Mentorship. Fowler talks about finding a mentor, a person you admire, and analyze the aspects that make this person someone to aspire to be like. The author also mentions being a mentor. A great way to learn something is to teach it so that other people can understand it.
- Practice. Make time to invest in practicing coding problems and logic. This is also a great way to get to know how to solve certain, specific problems.
- Get to know about software design patterns, and try to apply them.
- Get involved in the implementation of processes within your company, learn about methodologies that could help improve the current process.
Execute
This is the chapter where we start getting things done, taking decisions and actions to improve our professional lives, taking into consideration the last two chapters:
- Do things right now. Treat projects like a race, not like a prison cell. Try to set a daily journey of eight hours and be super productive in that time.
- Plan. Get a list of things you plan on doing for the day, set and keep track of accomplishments.
- Remember where you are. Don’t try to rush on the professional metaphorical ladder. Be present, enjoy the small victories of your current job.
- Learn how to fail. Be responsible for it, and take action to find a solution. Also, don’t panic when something goes wrong, try to stay calm and take clear-minded action.
- Learn to say no. Don’t saturate yourself with work you know you won’t be able to do.
This last point I believe is crucial, since it can also help us avoid reaching a burn-out state.
Saying “yes” to avoid disappointment is just lying.
Marketing… Not just for suits
Someone can be the best developer in the world, but if no one knows about them, does it really matter? In this section, Fowler talks about strategies to help developers to market themselves.
- Get to know and work on what co-workers, managers, and bosses think about you. Perceptions matter.
- Communicate. Learn how to effectively communicate with team members, customers, and managers. Learn how to get your ideas to people with non-technical backgrounds. Also, work on your writing skills, they are crucial for communication too.
- Be present. Don’t hide in your office all the time. Get to know your co-workers.
- Let your voice be heard. Work in your brand, make others know about you and your work. Write a book, articles, participate in conferences. You can also contribute to open-source projects to demonstrate accomplishments.
Maintaining your edge
In this final section, the author talks about how to stay relevant in today's IT industry, since it is constantly changing and evolving, it is important to keep evolving too.
- Update constantly. It is very easy to become obsolete in the tech world, that’s why it is important to keep learning about the new technologies that are constantly emerging.
- Enjoy the ride. Don’t focus on the final product (career or personal wise) but rather enjoy the process.
- Mark where you’ve been and where you want to go in your career.
- Avoid getting married to a certain technology, it may not work out well in a couple of months/years.
- Be a little bit better than yesterday, be consistent.
Finally, Fowler mentions the ultimate challenge, which is going independent. This will test every skill of a programmer.
Final thoughts
This book's purpose is to make software engineers excel and feel rewarded in their jobs, and I believe is exactly what it achieved. Throughout its chapters we got to learn many aspects of this research, invest, execute, market, and repeat loop, which is vital to keep software people relevant and happy in their careers.
I feel like a learned a lot from this lecture, and I want to put into practice some of the actions proposed in this book. Also, I do recommend this book to anyone who wants to start a career in tech, I believe the author has great tips for improving professionally.