Holding a Program in One’s Head – Infographic

If you ever talked to a programmer, you probably noticed that they tend to be quite focused. According to computer scientist Paul Graham, good programmers absolutely have to “hold a program in their head”. But how?holding-a-program-in-ones-head-paul-graham-infographic

Create an infographic like this on Adioma

According to Paul Graham’s essay “Holding a Program in One’s Head”, even the best programmers can not always keep a program loaded in their brain. But, there are ways to maximize their productive time. Working in long stretches, avoiding distractions, and minimizing verbiage are all means of holding on to that train of thought that will become a program.

This quality may not be specific just to programmers, however. It may be a byproduct of the creative process in general. Any creation requires multiple steps. This is true for infographic design, for example. An infographic involves research, data compilation, data cleaning, a sketch, vector graphic design, editing, proofreading, among many more steps. And yet designers maybe are not so obviously focused as programmers.

Perhaps, programming is different in the sense that code is not a static thing like an infographic that never changes once executed. Code that works on live data is more like a car that goes off-roading. Will it stay in one piece? It requires some foresight. So then, a programmer has to think of his program not only as is but as it will be in all probable future situations.

Maybe, this quality can be summarized as sustained focus. This still sounds obvious. But the difference may be in what happens in between the long work sessions. Can the program be kept loaded in the mind so that it does not have to be “re-loaded” each time.? That depends on the type and number of distractions a programmer will experience.

How to Hold a Program in One’s Head

  • Avoid distractions distractions. Even scheduled distractions can wipe your brain in 30 seconds.
  • Work in long stretches. Since the fixed of starting work is high, work in long sessions.
  • Use succinct languages. Shorter programs are easier to load into and keep in your head.
  • Keep rewriting your code. Rewriting eventually leads to complete understanding, which in turn loads the program in your head.
  • Write rereadable code. You yourself are the most important reader, especially in the beginning.
  • Work in small groups. The fewer people are editing the code, the more freedom for changes you have.
  • Don’t have multiple people edit same code. Divide it into components and give each to one person.

Infographic based on Paul Graham’s: Holding a Program in One’s Head