public
Last active

River (getriver.com): Keep a programming journal.

  • Download Gist
gistfile1.md
Markdown

One of my favorite past times is to look at the notebooks of famous scientists. Da Vinci's notebook is well known, but there plenty others. Worshipping Da Vinci like no other, I bought a Think/Create/Record journal, used it mostly to keep jot down random thoughts and take notes. This was great in the beginning, but the conformity of lines drove me nuts. Only moleskines made blank notebooks, so I had to buy one.

At the same time I started a freelance project. The project itself is irrelevant, but suffice to say it was very complex and spanned several months. It seemed like a perfect opportunity to use the moleskine. Looking back, all my entries fell under few categories:

  • Todo
  • Question
  • Thought
  • Bug
  • Feature

Clearly there isn't any technological reason you couldn't use Github issues or Pivotal or Jira. I tried those, but none of them caught on. The real value for me, was oddly not looking back at the entries (I rarely do), but writing them down on paper, especially the question or thought. I'd write it down, research online, test it and write down the results. It gets tedious at times, but at the end of the day its a real pleasure to look back and see how far I've come.

If you decide to start your own journal, here's few tips:

  • Keep a list of contents
  • Number each page
  • Note date & time before each entry
  • Write everything everything

I've been doing this experiment for the past 4 months and it's been very helpful. Some days I'd feel lazy or be excited to write stuff down, but inevitably the regret train hits me the next day. Nowadays I open the notebook and write down date and time first thing in the morning.

This is part of River blog. See https://gist.github.com/3417820.

pictures.markdown
Markdown

nice leather covered notebook.

I think notebooks typically help you organize your current thoughts and plans. I never look back through mine either.

would you be able to elaborate on this point: "Keep a list of contents"?

How would one deal with multiple projects?

@ecirmada My current list of contents is something like this:

Project A: 1, 3, 5
Project B: 2
Project C: 2, 4

The numbers next to the project name are page numbers. I experimented with allocating a set number of pages for each project, but then I ended up with lot of unused pages. Now if I switch projects I simply write down the name of the project on a new line and add the page number to the contents. Another idea is to write down the new page number next to the last old entry, so there's trail. You could also use page markers with different colors indicating different projects.

I don't mind too much anymore about the projects being spread out so much. Like I mentioned before the real value for me is putting my thoughts on paper, not reading them back, but its nice to know I can.

I started doing this a few months ago as well, with similar results. I find that writing things down helps get them out of my mind so I don't dwell on bugs and todos.

Rather than using a bigger notebook I've been using Molskine cahire-sized notebooks, like Field Notes. This way I can have a single notebook dedicated to a single project without the need to try something like your page numbering technique. Field Notes also have a blank version, which is the kind I use as well since the lines applied too much structure.

Ever since college, I've kept notebooks for long running projects. I would discuss problems, approaches and features in the notebooks, enumerating pros/cons and edge-cases. This prevented me from getting blocked, or worse, thrashing around in the code.

Also, quad-ruled Composition notebooks are superior to Molskine notebooks; cheaper and found in most any grocery store. If you need more writing space, try to find a Chemistry notebook (60 sheets, 11'' x 8 1/2'', hardcover).

If you like the physical medium, you should try the Circa notebooks from Levenger. They allow you to reorganize pages inside the notebook in a pretty slick fashion! I have used these before and they work well. You can buy a hole punch to make your own, and print out your own templates to reduce cost (The products are rather expensive, so just get the starter kit to try it out).

I keep a continually growing text file. Plain text with a smattering of "markup" that's not really conforming to any specific syntax although it's mostly markdown.

In that file I just drop in short notes on what I'm working on, problems I ran into, solutions I found, code snippets, sql queries, etc. Being plaintext it's easy to move around, search, edit, etc.

I've done this for a while. I stock up on notebooks during "back to school" sales when they can be had for a dime a piece. Then each project gets its own notebook(s).

I've done taking note with notebook but I don't keep it as a journal. I just write all my thought, my flow to get things clear and then throw it away, if there is important information, I will write back to evernote or text files to search later.
My real journal actually is my blog and private notes ( which is mostly text file, easy to write and easy to search )

  • Nice leather covered book :)

This looks more like a notebook than proper journal. I've been considering a real programming journal for a while now, a spot to note down what I worked on that day, what worked, what didn't. A tool to encourage reflection after a day of pushing pixels and bits around.

I'm sure having a place to periodically organize yourself throughout the day is great though!

I keep a couple of notebooks for thoughts and sketches. They're not at all structured, everything goes in it as it comes out of my head. Though I do date entries.

I also keep text files, one per month, with my daily work activities in. That has a running to do list at the bottom. I can easily look back over events and grep keywords. These files are sync'd via Dropbox so I have them at work/home and on my phone.

Why use pen instead of pencil? Or is it erasable ink?

Just for pior art ... I have a similar glyph system that annotates my notes. The plan is to create optical recognizers so when the notes are scanned sections can be highlighted. My scribblings will be hard to OCR but the glyphs will be indexable.

I'm a big fan of the dot-grid notebooks from behance:

http://www.creativesoutfitter.com/product/34/dot-grid-book

They are great for wire-framing, but I mostly use them for free-form notes. For some reason I really hate having lines on a page. Too restrictive man!

@Apocryphon The one in the picture is a pencil. Its a Zebra M301 0.5mm lead. I really like the feel of it in my hands and they're relatively cheap, been using them since college.

YES! I do the same thing, but I can't stand how dark the lines are in most notebooks. I love the Whitelines brand for both lined and quad-ruled notes: http://whitelines.se.

I wrote a CLI tool that saves and organizes notes as you work, on top of Gists for this exact purpose. Of course pen and paper offers the best UX, but command-line is a close second for me.

https://github.com/jondot/logbook

I have a very similar system that I've fallen into after years of documenting nearly everything in a moleskin. I've used the Question mark and Exclamation's - but for "Ideas" I always combined the two - i.e. (!?) <--- idea

I noticed you use the same mechanical pencil I use so there must be similarities in tastes. In the end I found that I liked the Grid moleskins for engineering work (for the occasional diagrame, flowchart) but I felt the exact same as you about having lines on my pages because I write in my journal so the pages are landscaped sometimes - usually when diagramming.

A cool way to amp this up is to get a Fountain Pen. Now you are rocking in style.

The bad news is that moleskin has reduced paper quality, so you may need to find an alternative to them.

Never buy a notebook to write in. Always make it yourself. It's cheaper and it makes you think more carefully about what you're saying because each page (or folio, in my case) was put there by you by hand.

This is pretty much kind I like to make for myself, I've been doing this since I was 9:

http://danidraws.com/2007/09/19/make-your-own-sketchbook/

STOP THE PRESSES!!! You've been doing this for four months and that's awesome, but I've been doing it for N+1 years and have to add one more detail to "write the date" WRITE THE YEAR AS WELL!!!

You should definitely re-read it :)

@sent-hil Ah, I see! I know some people who swear by ink over graphite, and while the latter certainly fades over time, I just don't see how anyone can do drawings or sketches with ink, even if it's just part of a journal. They must have a steadier hand for wireframing than mine.

@sent-hil Which Moleskine notebook do you prefer? And which is the brown one in the photo also a Moleskine (if so, what is it called, need to order that one since it looks slick!)? :)

@sweetfish The brown one is a Think/Create/Record graph ruled notebook, the black one is a blank Moleskine.

the problem i always find is that anything you write in a notebook, moleskine etc., once it's written it takes extra effort to review it or copy it into something you can then process (basecamp), especially if your working with external sources.

so how i do things is use notepads and paper for sketches and notes to help my mind. anything i need to keep or use as actionable items i'll either put in basecamp via email or via the web client.

and then any programming notes i'll put in my note readme's via vim, and i've got a few macros for quick access to those.

i've got 9 filled moleskines at home and i'm pretty certain i have no desire to go thru them again, notebooks for me are temporary and just required to keep things in play during the moment, anything long-term needs a git repo.

probably super anal but that's just me.

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.