Question

Years ago, in my first real programming job, my boss encouraged me to keep a journal of my daily activities. I still do so, although no longer a paper and hand-written one.

Do you keep a journal, if so, what do you write in it, and how does it help you in your job? Or, does it just take time that is not ever recovered?

Was it helpful?

Solution

I find an activity log helpful for several reasons:

  • I fully agree with Jon Sagara in that it helps answering the question "what have you done past week (apart from sleeping)?".
  • Additionally, it helps to keep track of the million interruptions, which are often forgotten but combined they take a lot of time.
  • I also find it a great help for learning to estimate, as it gives you hard figures on how long things take (often longer than you'd think).

OTHER TIPS

I did at my previous job. Every day, I would spend a few minutes writing down what I'd done. Whenever I reached a big milestone, I would record that, too. No entries were very elaborate; they contained just enough information so that they would be useful at a glance.

Come review time, it was very easy to answer the "how have you contributed to the company in the past X months/quarters/years" questions, and back up my answers with specific examples.

Personally, not me. The code I write is the journal. And much like a real journal, I remember where and when I solved a specific problem and can jump right back to it.

As far as the normal 'journaling' process goes, I have no need in professional development to journal about how my desk was moved last month, etc.

Edit: After thinking about this a bit, I do keep a blog, and when I run into something particularly difficult or rare, I do blog it so I can come back to it later. As a side benefit, it helps others with the same problem. So I guess this question could also be "Does keeping a blog help you in your job?"

For example, I only run into SharePoint's SPWebConfigModification class once in a blue moon, so: http://brandonpotter.wordpress.com/2010/02/04/moss-2007-how-web-config-modifications-work/

I always thought that keeping a "real" journal would be cool but never could keep at it very long. I don't stand a chance keeping a coding journal, as much as I think it would be a good thing. I just feel too much pressure to keep coding or maybe that just an excuse. I guess I'm just not the journal type.

There is one advantage of keeping a log which I tend to draw more from than anything:

You can let go of things that are bothering you easier when you write them down.

I usually write down stuff I've done or what remarkable thing happened during the day in small one sentences in a paper notebook. That way I can forget about it when I get home and do home stuff.

There are of course other reasons for you to keep a log as well:

  • For your own sake, the journal is also evidence for you to prove that you're actually "working" in case anyone doubts it.

  • It is also a training for you to become a better communicator. If you can read your own scribbles from weeks ago, then you know you've improved. If not, you should concentrate more when you write down your log. It doesn't matter wether the log is digital or analog: grammar does! So does clear and concise language!

I'm biased - I work with lab scientists fairly heavily, so "You don't keep a lab notebook!?" would be met with shock and horror, even though they recognize that most of my work will never go near a lab bench.

But yes, it helps me in my job. While I heavily comment code, there are decisions that are made in the code, and the development of projects, that might take paragraphs of explanation. Or pictures. Or back and forth with myself. A notebook both allows those internal thought processes to be documented in a meaningful place - complete with random side ideas like "Could multiple imputation fix this?" - and allows me to refer back to them to job my memory as to why I chose one concept over another.

It's let me do things like pick up a project and not only know what/why the code is doing (comments), but why those things got coded, while other questions didn't. In my case, it happens to actually be a physical journal.

IMHO it is very helpful and generally can serve as / replace code documentation if you keep track of the right things. Much like code documentation, the how and what isn't usually important as it should be relatively easy to discerne through the code layout and implementation. What is important is the why. Why are we implementing it this way? What should it be doing? But yet more important still, what else did we try (that didn't work) that lead us to implement it this way.

This can prevent wasted time later. Either in retracing your own footsteps or in the classic rewrite debacle that happens x years later when the original white-papers and e-mail exchanges have been archived/deleted... "this code would be so much cleaner and faster using the so-and-so architecture, no wonder it's broken, who wrote this mess?" Only to find out late in the rewrite/refactor that there is some critical shortcoming in hardware or a 3rd party app that lead the original developer down the seemingly less elegant path.

If, as a previous responder suggested, you change the question to "Does keeping a blog help you in your job?" then, yes, it absolutely helps. As 'tech wizards' we have a lot of spells to deal with! When I find myself looking up some tricky incantation for the second or third time, I post it in my blog with an appropriate tag so I don't have to go spelunking for the answer again. I'll post stuff like:

  • How to Use Vim as an External Editor with Outlook
  • How to Use easy_install From Behind a Restrictive Firewall
  • Combining Multiple Static Libs in Visual Studio
  • Packaging a Standalone Python App with bbfreeze

My blog is publicly accessible, but I don't bother too much making it look sexy. A lot of times I'll just paste a bunch of commands from a terminal session so I have some kind of searchable record...

Not exactly journals, but I write a lot of stuff down.

Paper note pad for quick stuff (they do get tossed when full).

I keep a database for job specific things:

  • how to log into the document sharing site for one of our providers
  • what folder do we keep the templates for annual reviews
  • software keys
  • my bio to put on website
  • business card info

Other non job specifice programming stuff goes into evernote.com

Licensed under: CC-BY-SA with attribution
scroll top