14 Habits of Highly Productive Developers: Book Review
This article is a review of this great book and of some of the habits it covers š
On this post
This post is a text version of the video ā14 Habits of Highly Productive Developers: Book Reviewā that I published on my YouTube channel (in Portuguese).
Itās worth watching! š
About the book
The book 14 Habits of Highly Productive Developers was written by the Brazilian Zeno Rocha and quickly became a best seller, in both the English and the Portuguese versions.
It focuses much more on non-technical habits than on technical factors, and manages to be interesting both for people early in their careers and for people who already have some experience in the field.
At the end of each habit, thereās a section called āQuestions and Answersā, where senior developers and tech leaders at some of the biggest companies in the world are interviewed and share their personal take on how they deal with each habit.
Disclaimer: The goal of this post is not to go through every habit in the book, but to talk about some parts that caught my attention.
Fun Fact
Something funny happened while I was at my parentsā house. My dad was watching me read on the Kindle, and he got super curious about the device.
When I finished reading, I left it on the table and he started poking around, and after a while he finally managed to turn the Kindle on š
The book that was open happened to be 14 Habits of Highly Productive Developers, so he read the last two chapters, liked them a lot, and even ended up telling my mom about some of the things that were written there.
So, unlike a lot of tech books, this one is a very smooth read and can appeal even to people who donāt work with development.
About habits and consistency
Consistency is important in personal life and this same concept also applies to our professional careers. The habits we decide to cultivate (or not to cultivate) will determine part of our future life opportunities. They seem to make little difference on any given day and yet the impact they have over the months and years can be enormous. Itās only when you look back two, five or maybe ten years later that the value of good habits and the cost of bad ones become surprisingly apparent.
This is a book about habits, and habits only become part of your routine if you practice them every day, so at the end of each chapter thereās also a section called TO-DO, with a few tasks to help consolidate these habits in your day to day.
Saying āNoā
One of the things covered in the book that I still struggle with a lot today is practicing the subtle art of saying no.
Saying no to that new lib that just came out and isnāt worth using yet, saying no to that invitation to speak at some event, or saying no to taking on new commitments that suddenly donāt make sense right now.
We need to learn to say no more often so we can say yes to the things that really matter to us.
Finite and Infinite Games
In 1986, the philosopher James Carse released his book Finite and Infinite Games: A Vision of Life as Play and Possibility, where he introduced two types of games: Finite and Infinite.
A finite game has known players, fixed rules and established goals.
For example, soccer is a good example of a finite game.
An infinite game, on the other hand, is defined as one with known and unknown players, where the rules can change at any time and the goal is not to win, but to keep playing.
That makes programming an infinite game.
Thatās because new people are always entering the job market, new concepts show up every day, new patterns are invented and new problems (and bugs š ) appear when we least expect them.
People who play the infinite game care less about intensity and are more focused on consistency. Thatās because itās impossible to sustain intensity for long periods when playing infinite games. Sure, eventually weāll need some intensity, but itās unlikely that we can keep it up for very long.
In infinite games we donāt know exactly when weāll see results, since each person is different and there are thousands of variables, so results will show up at different times.
So, we need consistency and not intensity.
Writing code for our future selves
Another cool point the book makes is to always ask ourselves whether our future self will understand the code weāre writing right now.
Thatās because we often write code for our current self, but we need to write code thinking about our future self. Our current self has all the context needed to understand the code written today, while our future self may be a completely different person, who will be involved with other things and probably wonāt remember what function X or method Y means.
This automatically helps us write more readable code, both for ourselves and for other people.
Take an interest in the business
There are two other super important habits in the book that I also mentioned in the video about 10 things I would do if I were starting my career as a developer (in Portuguese).
One of those habits is about the importance of always going beyond code and getting to know better how other areas that impact our work operate, as well as the business side.
Understanding more about everything that impacts our day to day is important, even so that we can be more accurate when estimating costs and development time for certain tasks. Thatās something people at all seniority levels struggle with.
Side projects
The other habit is something I talk about a lot: creating side projects, like open source projects, to learn new technologies and improve some skills.
Sometimes itās not easy to stay motivated to keep working on these projects, so the book compiles some questions we can ask ourselves before getting involved in or starting side projects.
The importance of creating side projects to boost a career is huge, and Iāve already talked about it in other articles, like How to contribute to Open Source.
Specialist or generalist?
Thereās also an entire chapter on a question people always ask me:
Should I be more of a specialist or more of a generalist?
The bookās point of view matches what I think, which is⦠be a little more of a generalist.
At some points in our careers weāll go deep and be more specialized in certain subjects, and at other points weāll be more generalist, especially when weāre in leadership roles.
I mentioned this in the article What do Front-end Developers need to know? (in Portuguese)
Controlling the variables
The book also gets into a philosophical topic I really like, which is Stoicism. I even have a Twitter thread about it:
O que Ć© Estoicismo e como pode ajudar na sua vida?
Faz sƩculos que a filosofia estoica tem sido utilizada por homens e mulheres na eterna busca de mais controle sobre suas ansiedades, medos e anseios.
Importante no cada vez mais imprevisĆvel... mundo moderno.
[segue o fio] pic.twitter.com/0PM0aH08dQ
In life there are things we can control and things we canāt. One of the central ideas of Stoicism is to always focus our actions on the things we can control and to learn how to react to the things we canāt.
Talking with Zeno right at the beginning of the pandemic, we discussed the situation we were (and still are) living through and how we really have no control over anything thatās external to our own lives.
After all, we only control our actions and reactions. He told me then that he would take advantage of that moment to write a book, and thatās what happened.
Thatās a variable we can control, that is, how we use our time.
Adopting good habits that can improve our personal and professional lives is one of the variables we can and should control, and in the end thatās one of the biggest messages the book delivers.
Conclusion
If you liked this, Iāll leave the link below to buy the book, and also to buy the Kindle, which is a purchase I highly recommend to help improve your reading habits:
- š Buy the Kindle
- š ā14 Habits of Highly Productive Developersā
- š āFinite and Infinite Gamesā
Cheers! š