Hacker News new | ask | show | jobs
by jammycakes 3318 days ago
I started keeping a comprehensive developer diary (I actually refer to it as lab notes) back in December, and it's made a considerable difference to how I think about what I'm coding.

The way I write it is similar to test-driven development — I write down each step in what I'm doing before I do it. When I run a command, I copy the command itself into my notes, then once it's run I copy the important parts of the output (e.g. any error messages).

It really comes into its own when I want to pick up on a task that I had put to one side a few days previously, or when I run into a problem that I think I'd encountered before. It also makes it much easier to avoid the trap of trying the same thing several times before you realise that you're going round and round in circles.

It's also useful for writing documentation. You can just copy and paste what you've written in your lab notes into your commit summaries, Jira tickets, e-mails, spec, help files, whatever, then tidy up as appropriate.

2 comments

Is there a reason why you made the structure of the notes depend on time? Aren't notes that are about the same topic getting very far apart from each other?

I think searching works well when you are as month or maybe three into the project. How does this work like after five years?

Also not GP, but I also have notes per-day.

If you organize by topic, you have to decide which topic to put information in. This means you have to pause and think for 10 seconds about your organization system before writing anything. 10 seconds is enough to lose your train of thought.

If you organize by time, you don't have to decide where to put it. It always goes in "today". You have to pause for 0 seconds.

Yeah makes sense

Maybe an extra advantage is that you are not tempted to rewrite everything all the time, as I am doing with my attempt of topicaly organized notes.

Append-only might really be helpful. Experiment starts now :)

I can confirm, I do this also and posted so elsewhere. But the key is ruthless simplicity. Just a blob of plain text every day and any searchable codes, resist all urges to add formatting, drawings, tables, categories, etc. It's more important to put as few mental obstacles in the way of writing in it as you can, and even if you write a lot every day, it still isn't all that much text, and is pretty easy to manage and search conventionally.
Not GP, but I have kept a 'logbook' file per year for ten years, with similar contents. I'm sure there's a better way than relying on OS X Spotlight to drum up things from five years ago, but it works well enough for me.
I do time-stamping based note taking too using org-capture in emacs, and I also use tags to put my notes in some broad category. Tag auto-completion using counsel package does not need me to remember the exact tag string if it's used previously.
Have you every considered using Jupyter Notebooks[0] or is the execution of code not so important?

[0]http://jupyter.org/