6 reasons programmers should think on paper

How recording your thoughts in words can level up your programming

6 reasons programmers should think on paper

What is thinking on paper?

I forget where I first came across the term (it's definitely not original to me), but "thinking on paper" simply means writing out your thought processes as you go through them. I don't use paper, I record my thoughts in OneNote so I can search them, but the principle is the same. It's a great way to take your programming to the next level, for the following reasons.

Why you should think on paper

  1. Keep track of complexity without being overwhelmed

    While working as a programmer you will need to keep track of complex information. This is a lot of mental strain, and it's easy to forget something or become overwhelmed by the numerous factors that affect your decision making. You can combat this by writing down your thoughts as you go. When ideas are put in writing they seem more manageable, and the overwhelm reduces.

  2. Clarify your thoughts

    Very often someone has a vague understanding of a problem, but is struggling to make progress towards a solution because their understanding is still fuzzy. Writing forces you to articulate your thoughts precisely. When thinking you can get away with saying to yourself "I'm not sure how to explain this but I think I understand it". Writing forces you to confront the reality that you don't understand it, or at least not as well as you would like to. This realisation may seem intimidating, but actually frees you to focus on how you can make progress.

  3. Keep focused

    It's critically important to break down any large piece of work into more manageable tasks, but even after doing that it can be difficult to focus on a single one of them. You may be partway through one task when you realise that it would have been beneficial to do a different task first. You might have picked one task to work on, only to discover that you may need to redo some of the work depending on decisions you were planning to make when working on a different task. For many reasons, you could need to switch between tasks to solve your problem. Keeping a written record of what you're doing helps you keep track of where you're up to, and ensures that you always know exactly what task you should currently be focusing on.

  4. Improve your debugging

    You may be familiar with the concept of rubber duck debugging - explaining your problem to a rubber duck. The point is that you can often solve your own problems by simply articulating them, without any need for input from others. Writing your problem down is a great way to do this.

  5. Create a record for the future

    We are all familiar with the feeling of being baffled by the decisions we made in the past. We don't remember why we wrote our code a certain way, or sometimes even what it means. Writing your thought processes in realtime means you create a record which you can refer to in the future. You will have a record of the pros and cons you considered when making a decision, and if the decision needs revisiting in the future then you can be sure that you're not forgetting something which was considered first time round.

    If you write them in a note taking app then they will also be searchable. If you are making them searchable I would advise storing key details like work tracking references and git commit hashes at the bottom of your notes, so you can use them for searching without them getting in the way when you're reading your notes. Error messages are also worth recording, so that when you get an error you're sure you've seen before, you can easily find how you resolved it.

  6. Recover quickly from distractions

    It is inevitable that you will sometimes be distracted, and those distractions can sometimes have a huge impact on our productivity, completely derailing our train of thought.

Monkey User comic illustrating a distraction

Source: monkeyuser.com/2018/focus

If you have been writing your train of thought, you know exactly where you got up to and where you need to carry on from. You can quickly remind yourself what you'd been thinking about, what decisions you'd already made, and what decisions you were pondering.

Conclusion

There are numerous benefits to recording your thought processes in writing - or as I prefer to say, "thinking on paper". Have you ever tried it? Let me know in the comments how you got on.