http://www.perlmonks.org?node_id=680926

talexb wrote (in Interview Counterattacks):

I started keeping a log book a few years back -- it was something my colleague Mike Stok did, and it's fantastic. Now when someone asks me something, I flip back in the book and read out the command I typed. That's way better than "Oh, I think I typed in ..". I can also pin-point, to day anyway, when I actually did something a few weeks or months back.

Paper log books have their uses, but myself I've gotten in the habit of using text files full of notes (and I adopted the convention of naming them all "notes-*", very useful when I want to search for them). As I'm working on a project, I add things to the notes-* file for the project (error messages, thoughts, commands I tried, snippets of code, solutions that worked). It helps somewhat that I tend to live inside of emacs: I may have a shell window and a notes-* file buffer open in the same emacs frame, so I can switch back and forth between the two of them. The notes-* file helps me focus even if I'm interrupted/bored/etc and if someone says "Hey, you know how to do this, you did this last month, right?", I much prefer being able to say "Let me check my notes" rather than "Last month! You expect me to remember what I did last month?!"

Further -- since I work in emacs -- I can save the shell buffer to a file (usually called "shell-*") and I always have a record of precisely what I did, even if I didn't think to add it to the notes file. There was one occasion where my supervisor asked me if I might have forgotten to do a COMMIT the day before, and I happened to have the SQL/PLUS session saved to a file, so I could prove that I hadn't forgotten.

The drawback to this, however, is that if someone accuses me of causing a problem by a stupid mistake, it's possible for me to verify that yes, indeed, I am the one who made that stupid mistake.

More about notes-* files practices, if any one cares: I type rows of equal signs (e.g. "===") to visually divide between topics; I often label things with uppercase tags (e.g. "TODO", "SUMMARY", etc) that are easy to find with case-sensitive searches later; and I've got a datestamp command bound to a few keystrokes, which I use nearly every time I start working...