14 Habits of Highly Productive Developers
Book summary
Overview
What habits do I need to cultivate in order to be effective in any programming language?
Main Ideas
Summary
You can learn the most popular frameworks, use the best programming languages, and work at the biggest tech companies, but if you cultivate bad habits, it will be hard for you to become a top developer.
This book doesn't offer a straight path or pre-defined formula of success. This book is a result of a quest. A quest to uncover what habits can be cultivated to become a better software engineer
Part 1: Principles
Big ideas & Arguments supporting big ideas
Interesting facts, stats, or analogies:
- Consistency Matters. Gym vs Professional Career
- The Habits you decide to cultivate will determine your future life opportunities.
Resonating quotes
Habits are the compound interest of self-improvement. The same way that money multiplies through compound interest, the effects of your habits multiply as you repeat them. They seem to make little difference on any given day and yet the impact they deliver over the months and years can be enormous. It is only when looking back two, five, or perhaps ten years later that the value of good habits and the cost of bad ones becomes strikingly apparent. - James Clear in Atomic Habits
Other thoughts
Gives a feel of yet another book which could have been a 2 part blog posts
Part 2: Learning Habits
Habit 1: Look for Signals
Big ideas
- Say no to FOMO (Fear of Missing Out)
- Practice JOMO (Joy of Missing Out)
- Identify what is the Signal & what is just a Noise
- Exploring everything will result in fatigue or choice paralysis
- Avoid Dev-Tourism
- Consider how transferable the acquired knowledge is
Arguments supporting big ideas
- FOMO & JOMO - MacOs, Windows, Ubuntu, React, etc., There is no such thing as best tool
Interesting facts, stats, or analogies
Noise vs Signal
Resonating quotes:
Hear the Noise, but only pay attention to Signals.
Remember Desires are endless; needs are limited
Accept that you can't learn everything, but you can learn enough to be effective
Action steps
- List all Technologies & Tools you want to learn
- Label each with a different priority such as This Week , Next Month , Next Year .
- Whenever FOMO hits because of shiny trend, revisit this list and recognize the priority
- Is there any enterprise adopting to new Shiny Object
- Focus more on Web Standards
Habit 2: Focus on Fundamentals
Big ideas
- Understand core concepts such as algorithms, logic, network, a11y, security & UX
Interesting Analogies
Painter vs Developer
Painter | Developer |
---|---|
|
|
Resonating quotes:
You can practice shooting eight hours a day, but if your technique is wrong, then all you become is very good at shooting the wrong way. Get the fundamentals down and the level of everything you do will rise. - Michael Jordan
Action steps
- Spend some time researching what the fundamental concepts in your field are.
- Grab a piece of paper and divide it into two columns.
- On the left side, list all the knowledge you already have.
- On the right side, list all the knowledge you still need to acquire.
- Plan a dedicated time of your day to study those concepts.
Other thoughts
To learn a new language, Rewrite pet project with that new language. So that 100% focus is on language.
Habit 3: Teaching === Learning
Big ideas
Power comes not from knowledge kept but from knowledge shared - Bill Gates
Act 5: Relieved it’s finally over. Some people reach out to you in the halls of the conference. They ask you about some ideas that you shared. Some questions don’t really make sense. Other questions are extremely interesting. You feel amazing. You feel like you have made an impact on people’s lives. A couple of months later, you submit a talk to give at another event and it all starts over.
Arguments supporting big ideas
The presentation acts(1-5) may seem crazy, but if you’ve ever given a presentation, I’m sure that you can identify the same behaviors and patterns. Yet still we submit ourselves to this ordeal. And maybe the reason why is because, at the end of the day, the person who gets the most out of these teaching experiences is not someone in the crowd, it’s us!
Action steps
- Find an event online and submit a presentation.
- Open a screen share software and record yourself doing something.
- Create a blog and share an article.
- Choose any topic that you want to learn and try to teach it instead.
Part 3: Daily Habits
Habit 4: Be Boring
Big ideas
- There is a fine line between
intensity
andburnout
Discipline
,Consistency
,Persistency
are not sexy, but are keys to play Infinite Games
Programming is an infinite game, even though most of us act like it’s a finite game. The players are known and unknown — there are always new programmers entering the job market. The rules are changeable — new paradigms emerge, new patterns are invented, new bugs are found. The objective is to keep playing — you can’t win in programming, you can only keep evolving the software to be better, more scalable, and more useful every day.
Programmers who are playing the finite game are focused on their bonus at the end of the year or waiting for that freelance project to end. Whereas programmers who are playing the infinite game are less worried about intensity and are more focused on consistency. They don’t know exactly when they will see results. In fact, different people will show results at different times. Still, without question, they all know it will work.
Arguments supporting big ideas
Book by Philosopher James Carse: Finite & Infinite Games: A Vision of Life as Play and Possibility
Interesting facts, stats, or analogies
Finite Game: Football. 11 players. Known players, fixed rules & agreed-upon objectives. Win or lose
Infinite Game: Marriage. 2 Players. Known & Unknown players. Changeable rules. Objective is not to win, just keep playing
Action steps
- Are you playing a finite or infinite game?
- How much time do you spend on going after short-term gains vs investing time in long-term outcomes?
- Have high integrity. Do right thing for the right reasons.
- It is essential to have fun and eat well.
- Invest time in doing things well & communicating clearly.
- Take time to slow down and taking a pragmatic approach to problem solving
Other thoughts
- Have a defined Start & End Time for your Day
- Have not too much on your plate & not so little either
Habit 5: Do it for your future self
Big ideas
- No new Code without unit tests
Action steps
- Open a current project & refactor to help your future self
Habit 6: Your 9-to-5 is Not enough
Big ideas
- After all, at the end of your life, when you look back at everything you did, you don’t want your scoreboard to look like this:
- Software developer: 9/10
- Husband/wife: 2/10
- Father/mother: 4/10
Interesting facts, stats, or analogies:
One could argue that we don’t expect policemen to go hunting criminals on their own time, or firefighters to put out extra fires. So why should we expect programmers to use their free time to learn something new? The answer lies in the nature of our work.
Resonating quotes:
You can watch Netflix and still be productive. You can play your PlayStation and still work on an open source project. You can enjoy quality time with your husband/wife and still read a book. Don’t let people think you can’t relax and get stuff done. You have more than enough time.
The truth is that, like most developers out there, I really love what I do, so when I’m excited about a project I might work extra hours, but that doesn’t affect my quality of life, because I wasn’t forced to do that.
Action steps
- Think about the skills you think could be improved.
- Can you plan some extra time to develop them? Even 10 minutes a day could make a difference.
Part 4: Career Habits
Habit 7: Master the Dark Side
Big ideas
Remember, a person who knows how to code is powerful, a person who knows how to code and knows how business works is unstoppable.
Action steps
- Elaborate a list of the most common terms used in your industry.
- Start a conversation with your colleagues to understand their areas.
- What does the sales funnel look like?
- What marketing niches are being targeted?
- What are the most common questions for customer support?
- How is your product different from those of competitors?
- Always ask what is the problem you are trying to solve?
Habit 8: Side Projects
Big ideas
Not a revelation, I always follow this chart
Arguments supporting big ideas
I love side projects. They allow me to express my creativity and invest in myself by encouraging me to learn new skills to accomplish the goals I’ve set. Over the years, side projects have pushed me to level up my CSS, learn React, become better at design, and so much more. Those skills have been instrumental in helping my career growth and have opened up doors for me that would have been otherwise closed.
Resonating quotes:
Failure and invention are inseparable twins. To invent you have to experiment, and if you know in advance that it’s going to work, it’s not an experiment. ― Scott Galloway
Action steps
- Am I ready to give up personal hours to work on this project?
- Do I really enjoy this subject, field, type of work?
- Am I willing to spend at least 5 Years working on this Idea?
- Can I execute this Idea fully by Myself?
- Saying
"yes"
to one idea, means saying"no"
to bunch of other ideas. Do you want to say"yes"
? - Is this particular idea better than others, I had in the past? Is there any other Idea that could better use my time?
- Do I personally experience this problem or am I solving it for someone else?
- Why Am I excited about this Idea now?
Habit 9: Mario or Sonic
The less time you spend on a project, the more superficial you’ll be as a professional. In contrast, the more time you spend on a project, the more opportunities you’ll have for long-term impact.
Resonating quotes:
Because pain is the universal constant of life, the opportunities to grow from that pain are constant in life. All that is required is that we don’t numb it, that we don’t look away. All that is required is that we engage it and find the value and meaning in it. ― Mark Manson
Action steps
- Think about the three things you love the most about your current job.
- Think about the three things you hate the most about your current job.
- Is there anything you can do to turn those bad parts into good parts?
- Are these changes outside of your control or not?
Other thoughts
- Being a sonic has transformed my life profoundly and I am incredibly grateful for that. I stayed so long because there was so much to do, so much to learn, and my work was impactful. Marty Cagan, from the Silicon Valley Product Group, has a great article on ‘Missionaries vs. Mercenaries’. I am very much a missionary. I believe you have to stay somewhere for a certain amount of time to make an impact and to expose yourself to the opportunities that will take your career to the next level. I think of every job in terms of investment and return, and it’s not just about money, it’s about the return of the investment for your career as a whole.
- Working 40~50 hours per week is a pretty significant time investment in your life, so it’s very important that you’re satisfied with your current job, regardless of the pay, or how far along you are on some career ladder."
- I entered as a Java developer with some experience in the technology this company used, and I left as a software engineer with a totally different profile. I had the chance to work with many stacks and technologies, often not even related to the product. Cloud, virtualization, automation, programming languages, design patterns. I can say that half of my expertise comes from my time there.
Part 5: Team Habits
Habit 10: Active Listening
Big ideas
A company is not a logo, it’s not a building, it’s just an agglomeration of people, and if you want to become effective there, you need to be able to communicate well, even if you’re an introvert.
One misconception many people have is that we need to listen to reply, whereas in reality, we need to listen to understand. Understanding someone is far more important than replying to someone.
People come from different background, bring different experiences and skills to the mix. When someone joins your team, consider it as a new team has formed instead of the existing team plus one.
Resonating quotes
Wise men speak because they have something to say; Fools because they have to say something. - Plato
Everyone you meet is fighting a battle you know nothing about. Be kind. Always.
Action steps
- Choose to practice your listening skills.
- In a meeting, Instead of being the first to say something, wait until everybody shared their ideas, and be the last one to speak.
This will give everybody else the feeling of being heard, plus you have the benefit of listening to everyone’s ideas before sharing your own opinions.
Habit 11: Don't Underestimate
Big ideas
I’ve never seen anyone get angry at software being delivered early. If you live by ‘under-promise and over-deliver’ when it comes to software estimates, you’ll be in good company.”
Why we give wrong estimates:
- We want to impress others
- We forget that's not all about coding
- We don't focus on one thing
- We think everyone is the same
- We can't handle the pressure
Arguments supporting big ideas
Under-promise & over-deliver - Package delivery from online shop, ETA was 4 days, but actually delivered on 2 days.
Interesting facts, stats, or analogies:
Action steps
- Every time when you give an estimate, run a stop watch and measure whether you met the planned estimate. Repeat the same for next task.
Habit 12: Specialist vs Generalist
Big ideas
What path should you take next?
- Become a specialist, someone aware of all the details in a certain subject.
- Become a generalist, someone able to tackle a variety of different subjects.
Resonating quotes:
The next Bill Gates will not build an operating system. The next Larry Page or Sergey Brin won’t make a search engine. And the next Mark Zuckerberg won’t create a social network. If you are copying these guys, you aren’t learning from them. - Peter Thiel
Action steps
- Examine your work day. Examine your work week.
- What are the parts that drive you the most?
- What type of work would you rather do?
- Examine your company.Examine your team.
- What are they struggling the most?
- Is there anything you can help with?
Other thoughts
I focus on understanding what drives me in software engineering, and then I try to invest myself in that area so I can continue learning and improving my skills. It doesn’t necessarily mean to work specifically with the same technologies or languages. It means finding what makes me feel the best about my work, that interests and motivates me, and then using it to drive me to become what I admire the most about it."
Part 6: Life Habits
Habit 13: Control your Variables
Big ideas
Interesting facts, stats, or analogies:
Newton formulated his theory of gravity, a new theory of light and calculus during the bubonic plague.
Resonating quotes:
The only thing you sometimes have control over is perspective. You don’t have control over your situation. But you have a choice about how you view it. - Chris Pine
Action steps
- Stop wasting time on variables that are out of your control.
- Focus on the variables that you can change
Other thoughts
Variables you can control | Variables you can not control |
---|---|
|
|
Habit 14: Stop Waiting
Big ideas
The fact is, most people have the ability to recognize what bothers them, but only a few people have the courage and determination to face those challenges.
Resonating quotes:
We suffer more often in imagination than in reality. ― Seneca
The only thing that prevents you from achieving something is yourself.
Action steps
- Stop being romantic
- Start being practical
- Behind each goal there is a series of tasks that could be done today
Other thoughts
Do you want to invest in an idea? If so, how many hours are you dedicating to this project? Can you wake up 1 hour earlier? Can you sleep 30 minutes later? What about lunch time, can you make it shorter?
You just finished reading this book. You can close it and continue with your life, or you can try to adopt these habits starting today. So what are you going to do next? What are you waiting for?
Quotes
And now the end is near. And so I face the final curtain. My friend, I’ll say it clear. I’ll state my case of which I’m certain. I’ve lived a life that’s full. I’ve travelled each and every highway. And more, much more than this. I did it my way - Frank Sinatra
Symbols
Shades of Stoicism on Habit 13: Control your variables
Romanticism vs Realism on Habit 14: Stop Waiting
Say Hello