Score a Job by Keeping a Programming Journal
By: Steven Curtis
Tags: New Year Resolution, Software Engineering, Programming, Software Development

Why keep a learning journal at all?

Articulating throughts

Coders tend to think through problems, and this is just the sort of strategy that interviewers wish to see in interviewees.

The techniques and strategies that you will go through when encountering a new problem do not change (are invariant) across different problems, and even different programming languages.

A beginner may use a try-experiment loop that works for simple problems, but can’t scale for more complex and innovative problems.

An intermediate begins to put into place a pattern of attempting known good strategies for solutions, based on problems that have been attempted before.

A learning journal records these strategies (steps of algorithms, design processes and even fixes for IDEs etc.) so patterns can be found and drawn out.

With a formal process in place you are assisted in the following:

seeing the problem before you with clarity

break the problem down into smaller parts(decomposition)

see links between previous problems and the current problem

put steps into place between simple and complex problems

eliminate errors through documenting the problem and previous errors

Increase productivity

Analysis paralysis is a real problem and can prevent us from improving in our work as we move from task to task and problem to problem.

There is so much going on in life. Being productive can mean having a focus.

The act of writing down a problem makes it real, and can leave you to focus on the problem at hand, and improve concentration.

You only have a limited amount of memory resource, and focusing on one area or problem not only limits distractions but frees you think about what is really important.

Planning and focussing keeps your mind on the problem, and in reality pushes you towards planning and away from those hours of unfocussed debugging of a problem that you do not even truly understand.

Recording your progress and development

One disadvantage to learning to code, or improving your existing work is that you are blind to your own progress and feel like you just aren’t getting better. This is tied into our development, since until we are 4 years old we do not understand that information is tied into our perspective, and the ability to understand ones past self as someone without access to your current knowledge a further leap.

Not understanding your own progress is toxic for motivation, and makes some people stop developing altogether.

Keeping a log of your work shows you not just the work you are putting into your development, but how far you have come in your understanding and progress.

Physical writing

Many developers keep their learning journal by hand rather than on a computer.

One possible advantage of this is the action of writing can help improve memory, but another is the permission to take a break from using a computer all day.

There are real benefits to taking a break from work at a computer, not just for your posture but for your memory too.

According to a 2014 study you should be taking 17 minutes away from a computer for every 52 minutes of work. Hiding in the toilet is not a good use of that time, having a learning journal enables you to record your progress away from a screen.