Before we start, let me ask you a question.
How important are habits?
Just share your honest opinion, that is all I ask. I'm hoping most people would say they are essential and I would completely agree. In case you say they don't, I would love to hear why you think so.
As I was reading the book Atomic Habit by James Clear, I was thinking this is a fantastic book and it can help me become a better software engineer(SE). So here I am trying to share the lessons I learned and how they can be applied to the field of SE specifically.
The book is not written for software engineers specifically. So I thought, why not fill that void?
Please note that I have just covered the first three chapters as I feel like these three chapters are core to this book and teach a lot. However, after reading this article if you feel like I need to write an article on other chapters please let me know in the comments.
Chapter one, titled The Surprising Power of Atomic Habits conveys the importance of tiny improvements over the long term.
For example, let's say you want a well-paying SE job, we all know the biggest hurdle is going to be the leetcode grind, Data Structures and Algorithms(DSA), and technical knowledge in general.
We all look at how people solved tons of questions and build great projects to get such fancy jobs. However, you are stuck at the same job for a while and cannot find time out of your busy schedule.
The easiest solution would be to start at the base level. Solve just one problem per day, work on your project for maybe just 30mins to 60mins per day, and before you know it you will have already solved more than 100 questions and will have a complete project in a matter of months.
In contrast to the above situation, let's say you just watch TV and Netflix because you get very little time outside work and want to just relax. The time will pass and you won't even know it. Days, weeks, months, and even years just pass by.
Over a year, the difference is very significant. 365 leetcode questions vs zero leetcode questions. At least 2 to 3 complete projects vs again zero projects. On top of that if you keep sharing your journey on LinkedIn and Twitter, maybe you will also gain a significant following or at least make meaningful connections.
Now, I'll accept that I haven't solved 365 questions in the past year or completed 2 to 3 side projects. However, even without consistency, I have solved more than 50 leetcode questions, built a portfolio site & hosted it on the internet, completed a course on the basics of data structures & algorithms, wrote a few articles on hashnode, and these are just things I can remember on top of my head. I have been more consistent in 2023 but these numbers are about 2022.
You can read my 2022 dev journey here to learn more about my job situation as well but I hope you get the point.
It's not about what we can do on a given day but it's about what we can do over a period of time to get compounding results.
This chapter was all about a 1% improvement from the previous day. Now let's move on to the next chapter.
Chapter two, titled How Your Habits Shape Your Identity (and Vice Versa) shares the importance of changing our identity to make it easier to achieve our goals.
If someone asks you, who are you? What do you think will be the answer? I guess most of us will say student if we are in college or school and our job title otherwise.
When we want to achieve something we should change our identity or add a new identity. In case you want to be fit you can view yourself as an athlete and not a normal person who just views going to the gym as a chore.
If you want to be a better software engineer, call yourself a software engineer. You are not an aspiring software engineer, a coder or a programmer. You are a software engineer and now you are more likely to put in the effort needed to improve your technical skills.
Chapter three, titled How to Build Better Habits in 4 Simple Steps.
Understanding these steps is not rocket science. So let's see what they are
Make it obvious
Make it attractive
Make it easy
Make it satisfying
These steps are in general great to build good habits.
As software engineers, our goal is to write better software and get a better well paying job or work on that product you want to launch. Either way, you need better skills and you can only develop those skills with practice.
Let's try to achieve the above goal with the four steps shared in chapter three.
Step one: Let's assume you want better problem-solving skills and want to practice problem-solving every day. To make it more obvious you can always keep one leetcode tab open in your browser. This way whenever you open your laptop you will get a reminder of what you need to do first.
Step two: Now that we have made it obvious, let's make it attractive. We know the reward for our actions will be that dream job. Keeping in mind the reason we are working hard can make it very attractive.
Step three: Our goal is both obvious and attractive. To make it easy, we can always start with easy problems. No matter how little you know about problem-solving if you know basic syntax there will be problems that you can solve.
Step four: Let's make it satisfying as well. To make problem-solving satisfying you can give yourself a little treat every time you solve a problem. Maybe 5 minutes of YouTube or a little bit of chocolate or anything that works for you.
Once we have set up this loop, eventually we will develop a habit of solving problems.
Thank you so much for reading and if you have any feedback please leave it in comments.