Articles by Victoria

Atomic Habits for Developers

Essential habits every developer should embrace

Feb 10, 20257 min read
cover

As a developer, your journey to mastery is often shaped by the small, consistent actions you take every day. Whether you're debugging code, learning a new framework, or optimizing a system, the key to continual growth lies in your habits.

This weekend, I re-read one of my favourite books, James Clear's Atomic Habits, and was inspired to apply the principles of habit formation to become more effective developers and accelerate our learning process.

"Success is the sum of small efforts, repeated day in and day out." - Robert Collier

Why Habits Matter for Developers

In the fast-paced world of technology, developers face constant pressure to keep up with new languages, frameworks, tools, and best practices. But mastery doesn’t happen overnight. The most successful developers aren’t necessarily the most naturally talented; rather, they are the ones who build and maintain productive habits over time.

Habits allow us to automate parts of our daily routines, freeing up mental bandwidth for more complex problems. By making small, incremental improvements each day, we can steadily progress and build a solid foundation of knowledge and expertise.

The Four Laws of Atomic Habits

In his book, James Clear outlines four key laws that govern habit formation:

  1. Make it Obvious

  2. Make it Attractive

  3. Make it Easy

  4. Make it Satisfying

Let’s break down how we can apply these laws to our growth as developers.

1. Make it Obvious: Set Clear, Specific Goals

As a developer, the first step to cultivating new habits is to make your goals clear and specific. Rather than saying, "I’ll improve my coding skills," you can break it down into specific actions like:

  • Write one unit test per day.

  • Solve one coding challenge every morning.

  • Read one technical blog or tutorial daily.

The more specific your habit, the easier it is to follow. Make these goals visible—perhaps with a checklist on your workspace or a calendar where you can mark off completed tasks.

2. Make it Attractive

Connect Habits to Something You Enjoy

To keep your motivation high, tie your technical habits to something you find rewarding. For example, after completing a task such as finishing a tutorial or debugging a complex problem, reward yourself with a small break or something you enjoy, like watching a short episode of a favorite series.

If coding feels like a grind, channel your passion into the projects you build. Choose themes or subjects that resonate with you personally. For example, I often create side projects related to Pokémon, my favorite childhood game. Whether it’s a Pokédex built with a custom trained ML model, or a strategy simulator coded to experiment with APIs, these projects allow me to connect learning with something I love. If you’d like to see an example of this approach, check out my Victoria’s Edition: My Journey into Tech article, where I shared how these personal projects fueled my growth.

image.png

Turning LeetCode Questions into Relatable Problem-Solving Challenges

LeetCode and similar coding challenge platforms are great for sharpening your problem-solving skills, but they can sometimes feel dry or abstract. Make these exercises more enjoyable by reframing them into challenges you can relate to. Instead of just solving a binary tree traversal, imagine you're designing a feature for a real-world application you’re excited about.

For example:

  • Sorting algorithms: I would imagine I’m organizing Pokémon cards by rarity or type.

  • Graph problems: Picture yourself mapping out the shortest route to visit multiple cafes for cafe-hopping.

  • Dynamic programming: Think of ways to optimize a strategy in a favorite video game.

This mental reframing not only makes problem-solving more fun but also helps you retain concepts better by associating them with something meaningful to you. Over time, this approach can transform coding challenges into opportunities for creative expression.

3. Make it Easy: Start Small and Build Gradually

Incorporating habits into your daily routine can seem overwhelming at first, especially if you're trying to learn a new programming language or framework. Instead of jumping into complex projects, start small. Set achievable goals that are easy to start with and build on them over time.

For example:

  • Instead of committing to write a full-feature application, begin with writing small functions.

  • Take on the 30DaysOfCode or 100DaysOfCode challenge to stay consistent and code a bit every day.

By starting small, you can avoid the burnout that comes from setting overly ambitious goals, making it easier to build momentum. If you want to learn more about burnout, read Why Burnouts Should Not be Ignored (shameless plug).

Why Burnouts Should Not Be Ignored

💡 Tip: Write down your goals and break them into smaller milestones to work towards gradually. Have a clear set of daily actions that will bring you closer to those milestones.

4. Make it Satisfying: Track Your Progress and Celebrate Wins

One of the most powerful aspects of habit formation is the sense of progress. When we feel we're making headway, we're more likely to continue. Use a habit tracker to monitor your progress or log the tasks you've completed, whether it's with a simple note-taking app, or one you create yourself.

Celebrate when you hit milestones—this could be anything from completing a challenging project to mastering a new framework. For instance, after completing a month of daily coding challenges, treat yourself to a well-earned reward. These small wins reinforce the behavior and make it easier to keep going.

💡 Tip: Have an accountability buddy so they can celebrate your wins with you!

Good Habits for Every Developer

1. Writing Clean, Readable Code

Clean code isn’t just about aesthetics; it’s the backbone of maintainable and scalable software. Whether you’re working solo or as part of a team, readable code makes your work easier to understand, debug, and improve over time.

We should aim to write meaningful variable and function names and follow best practices and coding standards. Refactoring, though often overlooked, is another key practice—regularly revisiting and refining your code can work wonders for its longevity and clarity.

2. Communicating and Collaborating Effectively

We should not only write readable code, but also build the habit of documenting it well. Strong communication and collaboration skills are never overrated. Writing clear documentation ensures your work remains accessible to anyone who encounters it. Engaging in code reviews and brainstorming sessions not only sharpens your skills but also fosters a culture of learning and collaboration.

3. Staying Curious and Always Learning

Technology doesn’t stand still, and neither should you. Continuous learning is a habit every developer should embrace. Explore new tools, frameworks, or programming languages that pique your interest. Keep asking questions, experimenting, and seeking new or creative solutions to problems.

💡 Tip: Joining a community is one way to keep learning, share knowledge and seek feedback to soluions!

4. Prioritizing Your Health

Perhaps the most overlooked habit in our field is maintaining good health. Hours of screen time, poor posture, and long periods of inactivity can lead to significant physical and mental strain. I’ve had my share of health challenges—eye abrasions, sprained shoulders, the occasional static electricity shock, and persistent eye bags, to name a few. Honestly, you might feel invincible in your 20s, but these experiences have taught me that neglecting your health will eventually catch up with you.

To counter the poor default working conditions, I invested in an ergonomic chair, maintain good posture, cut the caffeine, grow plants to keep my room well-lit and set boundaries between work and personal life. I’m still very much working on it, but these are simple yet effective ways to sustain your (and probably my) well-being. Remember to also take frequent breaks to stretch and drink water.

5. Reflecting on Your Journey

Being a good developer isn’t measured by the number of lines of code you write. It’s about learning, growing, and appreciating the path you’ve taken. Reflection is a powerful habit that allows you to recognize your achievements and identify areas for improvement.

Some developers maintain daily or weekly journals to log their experiences and lessons. Personally, I prefer doing a yearly review—a detailed reflection that encapsulates my thoughts, challenges, and milestones. My 2024 Year in Review is an example of this process. Throughout the year, I jot down notes about what I learn or even random thoughts, and by the year’s end, I organize them into a cohesive narrative. It’s my way of looking back, thanking those who’ve supported me, and planning for what’s next. Whether you journal regularly or take a more periodic approach, the key is to find a rhythm that works for you.

Conclusion

As a developer, building strong habits isn’t just about staying productive—it’s about fostering a growth mindset that helps you adapt, learn, and thrive in a fast-changing field. By applying the principles of Atomic Habits, you can break down complex goals into achievable steps, make learning more enjoyable, and track your progress effectively. Over time, these small changes will lead to remarkable improvements in your coding abilities, your workflow, and your career.

Thanks for reading! I hope you have found this article helpful! Do let me know in the comments if there are any other practices to develop good habits for developers. Also, besides the ones I mentioned, what are some good habits for developers? Cheers!

Let's Connect!

More from Book Reviews and Reflections

View full series →

More Articles