As developers, we are often asked to write performant code, make important architectural decisions, and communicate with others about business needs. In order to be good at what we do, it's vital to improve our craft but also take care of ourselves. Establishing healthy habits and dropping the bad ones can have a great impact here.
In this article, I'm going to share my 7 takeaways from a book, that greatly improved my life and inspired the "developerHabits" Youtube channel. It's called "Atomic Habits", written by James Clear.
This content is also available on my Youtube channel called developerHabits.
The main message of the book is that by doing very little, systematically and consistently, you'll achieve great results. It describes various methods with real-life examples of how to improve yourself by dropping negative habits and establishing positive ones. I strongly recommend you to grab the book and read it yourself, but just warm you up, I've brought out the points I found most impactful:
If there's one thing I have to take away from Atomic Habits, it's that by improving yourself 1% a day is better than nothing. Think about it - if you keep adding to your skills 1% every day, you'll be 37 times better by the end of the year.
...if you keep adding to your skills 1% every day, you'll be 37 times better by the end of the year.
People expect habits and the results it yields to be linear a linear process, but when they can't see the results, disappointment follows and they quit. In reality, it's like an exponential growth, where results become visible only after a long-term investment. James names the period during which the results are not visible, a valley of disappointment.
As developers, I'm sure you've experienced the "click" moments. You code and code, without fully grasping all the concepts, but at some point, the "click" happens. The reason for that? Because you kept going and pushed through the unknown.
So remember - doing 1% at a time is better than nothing. And don't expect the results to be visible right away.
A goal is like a finish line - once you've got there, a temporary feeling of satisfaction occurs, but soon one has to start planning for the next race. We all have goals. But not all of us reach them. Atomic Habits illustrates nicely that instead of goals, one should think about changing the underlying system. That way, achieving goals is like a by-product.
How I see it is that instead of constantly pushing myself towards new goals, I have to implement a long-term, sustainable system of small habits that in the long run, yield the results I want. That's also why the book is called "Atomic Habits" - as atoms are the building blocks of molecules, atomic habits are the building blocks of remarkable results.
The question is, how to use that knowledge in practice?
Usually, when we want to achieve something, we define success by the outcome. Eg "I want a sixpack", "I want a to earn 100k a year", "I want to have a million subscribers in Youtube"(go and subscribe, plz). Simply put, usually, we start with the "what".
Atomic Habits suggests that instead of thinking about the "what", we should start with the "who". Who do you want to be? A healthy person? A valuable developer? A Youtuber?
It's a really simple, yet powerful concept that makes it easier to take action and resist temptations. For example, a developer who earns at least 100k a year is probably hard-working, a team player, mentors others, etc. When such a person sees a bug, one doesn't hesitate and takes initiative to fix it, because it's something that valuable developers do.
A great example from the book is about smoking. When one tries to quit smoking and is offered a cigarette, the usual response is similar to "No thank you, I'm trying to quit smoking". By changing the mindset and seeing oneself as a non-smoker, the answer would be "No thank you, I do not smoke".
So remember, define "who" you want to be.
What are habits and how do they work? According to Atomic Habits, each habit can be divided into four parts: cue, craving, response, rewards.
First, there are cues. Cues are the triggers for your brain that initiate behavior and predict a reward. By making cues visible, we can make establishing habits much easier(or hide them to get rid of bad habits). Just imagine a notification on your mobile phone. It's a cue that maybe something good is about to happen. Naturally, we get to the second part of every habit - craving.
Craving is the motivational force behind habits. In theory, every cue can trigger a craving, but in reality, it happens only when there's a thought, emotion, or feeling connected to the cue. In our mobile phone example, you know from previous experiences that notification means a new potential like for your Tweet. That's why there's a craving.
After craving, response will follow. It's the action you have to take in order to get to the reward. Whether it occurs or not, depends on how motivated you are and how hard the task at hand is. By making actions easier, we make the habit easier. In the mobile phone example, picking up your phone and checking the notification is the response.
And finally, we get to the reward. I guess there's not much to say here - that's the satisfaction you get for performing a habit. It's the ultimate goal of a habit. It's that small amount of dopamine you get when someone likes your Tweet. The more immediate the reward is, the better.
All those parts of a habit are interconnected. As it's said in the book: "the cue triggers a craving, which motivates a response, which provides a reward, which satisfies the craving and ultimately, becomes associated with the cue."
In order to create good habits and lose the bad ones, engineering your environment is vital. It gives you a chance to make certain actions easy and others hard. There are various methods you can use to do that.
The first one is designing your environment so that the cues for the desired habit are always visible. For example, in order to get into the habit of reading before going to sleep, I always had a book next to my bed. This way, every time I went to bed, I was reminded that I've got some reading to do.
The second way to engineer your environment is by surrounding yourself with to whom your desired behavior is normal. A good example of that are coding bootcamps. Most of the topics taught at coding bootcamps can be learned from Youtube or Udemy, but it's the community and being surrounded by likeminded people that make learning there motivating.
Another great way to use your environment for your advantage is by priming it for future use. That way, doing the right thing next time becomes easier. As developers, setting up linters for new projects is a good example of priming the environment.
So think about it- how can you change your environment?
"When you start a new habit, it should take less than two minutes to do so". This one is simple yet powerful. Every single habit or activity can be broken into a 2-minute action. Using that rule, there are no excuses.
I've personally used the two-minute rule to start exercising and reading regularly. Regarding exercise, I didn't start by working out, but actually just getting dressed and going to the gym. Once I was on the move, I couldn't just go back home. After some time, going to the gym in the mornings was part of my routine.
The same applies to reading, cooking, jogging, coding etc. Take the smallest amount of action you can and force yourself through it. Tell yourself that two minutes is enough. By putting in the reps, it will eventually become a habit - not the full activity itself, but the initial, two-minute action. And that will be enough to get you going. I'm sure you have experienced the moment when you don't feel like coding but once you start, it's hard to stop. That's what the two-minute rule is all about.
What are the two-minute actions you can take?
Period. Life happens and missing a rep is okay. But if you skip your habit twice, it's already your own, conscious decision.
What helps with being accountable is by tracking your habits. You can use a pen and paper or download some application. Each time you practice a habit, mark it down. Eventually, it won't be just the habit itself but also the wish to not break the chain that keeps you going.
And even if the chain breaks, make sure to get back on track as soon as possible. As James says "Missing once is an accident. Missing twice is the start of a new habit".
As you can see, Atomic Habits contains tons of great tips on how to improve your life by changing your habits. To be honest, there are many other points I'd like to discuss but in the end, I recommend you to just grab the book and read it yourself.
If there's something you should take away from this article, it's that every big change starts with a small one. If you're consistent and improve yourself just by 1% a day, it will accumulate and yield great results in the future. That way of thinking has made me exercise regularly, start a Youtube channel(based on the title of the book, hehe) and continuously improve myself. And you can too! Just ask yourself- who do you want to be?
Oh and...! If you are interested in coding, growth mindset and are willing to share your experiences, ideas, then please do PM me in Twitter :)!