Programmer’s Notebook

In mid 90s I read an article about keeping a programmer’s journal. I don’t know where the article went, but recall sharing it with a couple of my friends. I knew it had something to do with the original wiki. I finally found it. It was an entry in one of my 2001 posts in a yahoo group. I don’t think it is the original, but this one is good enough to share.

I am trying to get a young project team to keep a learning log and project log. But I need to tell them how and why.  This page does a good job. But I don’t want to lose it again. So I put it everywhere I can think of (lots of redundancy). Here is a copy.

  • Start slowly; some log is better than no log. (AnyXisBetterThanNone)
  • Don’t postpone writing something down. Somebody else will come along, and you’ll forget your bright idea.
  • Put a date on every entry.
  • Number the pages so that you can easily reference them.
  • Use a consistent format so that you can easily go back and find something.
  • Use a horizontal separator line and a project name to separate individual subjects (e.g., music, theorem proving, or language research).
  • Use secondary headings that include the date and the subject (for example: “980425, Ideas on extending Java with laziness”).
  • Different kinds of entries, each with a special symbol in the margin: remarks, questions, definitions, to do items, MetaRemarks.
  • After every entry, leave at least a single empty line. This can be used for last-minute additions, the answer to a question, or a forward reference to more thoughts on the same subject.
  • Make it readable for yourself and others.
  • Log meetings with dates, attendees, topics and results.
  • Keep a separate ToDoList, or put it in a special place. Do not scatter ToDoItems? throughout your notebook.
  • LetYourLogsBecomeYourPlans

What are the current tools to keep a journal.

  1. Google Notebook
  2. Twitter – a couple of sentences on the thoughts as they occur with a special marker
  3. A wiki (which is what we are using now, with private spaces for each member of the project team)
  4. Your blog (if you want to write a lot more)

1 and 4 may work even for private info that you may not want to share publicly. What kind of items can you log? At the risk of repeating some from the list above, here is mine:

  1. Questions
  2. Resources
  3. How-tos
  4. Problems and How I solved them
  5. Idioms I learned (or used)
  6. Things to Research (like Questions)
  7. Why did I/we make a certain decision? What were the options?
  8. what did we learn – LearnLog
  9. List of things to do – TodoList
  10. Open Issues – Things to think about (no immediate action known)
  11. Ideas – IdeaLog

If there is one thing to remember, it is  “Start slowly; some log is better than no log”.

More resources:


Self Improvement Patterns – Slightly related but fun to read

One thought on “Programmer’s Notebook

Comments are closed.