Why Every Developer Should Keep a Daily Code Journal

Writing down how and why you solved coding problems every day will make it easier to start the next day, reveal hurdles in your workflow, and track your growth as a developer.

Image for post
Image for post

I started keeping a daily log of my coding activity as part of my #100DaysOfCode challenge. It has fundamentally changed the way I work.

I’m more focused at the beginning of my coding sessions, more consistent about committing to git, more thoughtful about why I do things a certain way, and more cognizant of inefficiencies that are slowing me down.

In this brief (<5 mins) article, I’ll explain why I think a daily journal/log is a must-have for every developer. I’ll also share some excerpts from my own journal over the past few months.

Setting clear goals and sticking to them

With any application you build, there are likely to be endless opportunities to optimize and extend your solution. Maybe new functionality would make your app even more useful, or perhaps a reorganization could make the user experience more intuitive.

This slippery slope is the dreaded “feature creep” that haunts nearly all software projects.

When you’re building software for someone else, it can be tempting to try to please the client by agreeing to add a few more “small” features. When building tools for yourself (professionally or for fun) it’s perhaps even more enticing to make additions and optimizations.

The real problem with feature creep, though is it delays the delivery of your software. The longer development takes, the longer it takes for real users to test it and give you feedback. And the longer it takes before you can move on to something else.

One of my favorite quotes comes from The Pragmatic Programmer:

That quote is a descendant of the similar and more famous quote from Voltaire:

Both quotes point to the same truth — if you’re doing something risky, hard, or interesting, at some point you’ll need to ship some product. Shipping product is hard and scary, but, as Seth Godin has famously pointed out, shipping is the only way you get to learn from real users.

So, ship early and ship often. Make refinements over time. Accept that your first shot won’t be perfect.

Keeping a daily journal will help you to identify when you’re stuck in the trap of over-building and over-optimizing. When you can look back and see you’ve spent the past several days adding features that nobody has tried yet, it’s time to ship and take a step back from your project for a while.

What makes you happy about coding?

This is a non-trivial question you need to answer for yourself. Keeping a journal can help.

A daily log can illuminate the parts of software development that you really like. It can also show you what you hate.

There are people out there who love being front-end developers. It’s not my cup of tea. I found I quickly got frustrated in my journal entries with CSS and front-end JavaScript.

That’s a great thing I found out about myself! It tells me where to focus my energies and what to look for next in my career.

Don’t be surprised if you learn something similar about what you really like on a day-to-day level from keeping a journal. Going back through and reading your journal can be a great source of self-knowledge.

According to the Harvard Business Review, self-awareness is one of the most important traits influencing success. It’s also one of the hardest to cultivate.

Keeping a daily log is a good start.

Thinking about thinking about code

One of the most important skills you can cultivate as a developer is the ability to think about how you think about code. This meta-analysis separates the good developers from the great.

What I mean by that is good developers are happy with a solution that works and makes sense. Great developers, on the other hand, are thinking about WHY the solution works, the amount of effort they had to put into getting the solution working, and HOW to reduce the time to a working solution the next time they have to build something similar.

Great developers are constantly working on tools that simplify their workflows. They look for ways to make things easier for themselves and for their teams.

A great developer’s bashrc, for instance, is always getting new aliases and functions to speed up command line work.

When they code something new, they’re thinking about the other projects they worked on, how they solved the problem then, and likely already have tools or code snippets they used in the past ready to help them with the new project.

I’m by no means lumping myself into the “great developer” camp. There are a million things I don’t know or haven’t seen yet.

Still, I aspire to be a great developer one day, and daily reflection is an important habit that I believe helps me on that path. By keeping a journal, I’m being thoughtful about my code, why I wrote it that way, and how I could do it better next time.

This constant improvement is like compound interest. It doesn’t look like much on a short time scale, but over years it adds up to something really big.

So many other lessons and benefits

I can hardly list all the benefits I’ve seen from keeping a daily journal. Some more that come to mind off the bat:

  • Remembering where you left off yesterday so you can get started quickly
  • Having a record of how far you’ve come over a timespan
  • Keeping a written memory of everything you worked on for your resume/portfolio/salary negotiation/etc
  • Flagging things you didn’t understand for later review
  • Saving links to solutions that solved a problem so you can look them up later if you have the same problem

A daily log/journal is a great resource for any developer. I know most devs are averse to writing, but just a few sentences per day can make a big difference. Try it out!

Do you keep a journal? What benefits do you see? Anything I missed? Let me know in the comments below!

About Bennett

I’m a software developer in New York City. I do web stuff in Python and JavaScript.

Like what you’ve read here? I have an email list you can subscribe to. Infrequent emails, only valuable content, no time wasters. I’d love to have you there.

Written by

Top writer in Technology | Django/Flask backend dev | Python/C/JavaScript

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store