Keep journals to become a better developer
I keep two kinds of journals during my day to day work that I’d like to tell you about. They help me stay organized and motivate me to improve my skills as a developer.
Work logs
The first journal is a work log where I record what I’m working on during each hour of the day. I also use it to jot down the occasional observation or idea. I take these notes to compare what I wanted to do each day and what I actually worked on. It’s useful in daily standups too, where it helps you compile a summary of the previous day for your teammates.
I use Day One for this type of journal. It supports Markdown and comes with a helper app that reminds you to update your journal in regular intervals1. Check out Brett Tepstra’s Doing or just use a plain text file if you want something simpler2. Here are some examples of what I recorded over the last few days:
- The pageview threshold should work more like a high-pass filter, e.g only if we see a resource on more than 5% of the traffic we should consider it for prefetching.
- The health check script dies with a timeout connection error in
deployed_git_hash()
.- Refactoring the clientside URL transform code.
- Old versions of prototype.js break
Array.reduce
…
A “thing’s I’ve learned” file
The second journal is a separate file in which I track what I learned about software development in the past. I update this file every time I realize something that’s worth remembering. Every month I revisit all items to see if they’re still valid or if they need tweaking. I find such a journal tremendously helpful, especially as a tool to remind me about the progress I’ve made.
I use Notational Velocity for this journal but something like Evernote works too. Here’s an excerpt of what’s in my ‘things I’ve learned’ file at the moment:
Pairing & Social:
- Switch drivers more often when pair-programming; either per feature or after fixed time intervals.
- How to end shouting matches quickly and painlessly: Grab a whiteboard, write down pseudo code for each approach, write down pros and cons for each approach, discuss. Usually consensus will just happen magically at this point.
Code Reviews:
- Focus on the user facing parts and the core functionality first. This is the most important thing, architecture and code quality come right after.
JavaScript:
- Given several ways to do something look at popular libraries like jQuery or Zepto to find the most compatible way to do it.
I found keeping journals to be a great technique for staying organized and becoming a better software developer. You should give them a try too! Let me know how it went and what your experiences were.
-
I’ve set Day One to alert me every hour which is a good tradeoff between being to coarse and getting interrupted too often. ↩
-
If you’re looking for something paper-based then try Bullet Journals. I’ve heard great things about this technique. ↩