You might have seen this gist make the rounds about keeping a programming journal.
Writing things down is important. Write on paper, in a bug tracker, on your hand, whatever. Just write it down.
Writing things down is important for two reasons:
- It helps you remember things. Your brain has a finite capacity, and if something is written down, especially in a “public” place, it probably won’t get forgotten.
- It keeps you sane. If you just try to remember everything, I’m pretty sure your head will actually explode.1
Learn From the Pros
If you’ve read The Mythical Man Month, and you should if you haven’t, you’ll see Brooks discuss the idea of the technical journal.2
It’s similar, except more for the whole project instead of a single developer.
I prefer things written down in the open. I don’t keep a personal programming journal, I just add comments to tickets. At work, action items and ideas from meetings go into the relevant ticket.
Thinking out loud about a ticket? You better believe that’s a comment on the ticket.
This way, my personal musings about a particular problems are there for everybody to see. It gets it out of my head, and benefits the rest of the people on the project.
For other things outside of work, I use a combination of Basecamp, Trello, and Sprint.ly to keep track of ideas I have, bugs in my code I find, checklists I need to accomplish, books I’m reading or want to read, and other relevant bits of information.
It’s all written down.
Moleskine makes a variety of goodies for taking notes and keeping journals. Their new offering integrates with Evernote so you can take notes with a pen on paper, but then scan it directly into Evernote for a digital version. Evernote can then do handwriting recognition and OCR and all that fun stuff, giving you a nice searchable document stored in their cloud available on all your devices. How cool is that?
Doesn’t it make you want to write more stuff down?
You should write it down. You’ll feel better about it.
1 Head will most likely not actually explode, but then again, I’m not a medical professional.
2 I don’t remember the exact term he used, but the technical lead on the project would go around and document work done by everybody in a journal. When I worked at BioWare, the technical lead on the project I was on did this.