The Programmer's Brain - Deepstash

Explore the World's Best Ideas

Join today and uncover 100+ curated journeys from 50+ topics. Unlock access to our mobile app with extensive features.

Cognitive Processes

Cognitive Processes

We use 3 cognitive processes while programming or reading code:

  • Long-term memory (LTM) is similar to the hard drive of the brain. It stores the things that we have learned in the past, such as syntax or an algorithm.
  • Short-term memory (STM) is like the RAM or cache memory. We use it to remember the things we have just seen, such as the type of a variable or a function name.
  • Working memory is the CPU of the brain. This is what we use for thoughts, ideas, and coming up with solutions while programming.

156

1.59K reads

A Chess Experiment

A Chess Experiment

In an experiment, both chess masters and average players were asked to memorize a chess board configuration, and the chess masters did way better.

That was because the experts had previously seen something similar, and they only had to store a few items in their STM, such as “Sicilian opening with a knight moved to D4”. The average players were trying to memorize the whole board. Research showed that we can only hold around 7 items in our STM.

When they ran the experiment with a configuration with pieces arranged completely random, the chess masters did just as bad as the average players.

140

1.43K reads

Chunking Code

The way the chess experiment applies to programming is that we should aim to split our code into chunks that make it more readable and easier to remember.

We can achieve this by using design patterns and comments. If a function’s name is enough to describe what it does, then a comment is not necessary. But sometimes a comment is needed to increase code readability.

146

1.26K reads

Active Elaboration

Active elaboration is the process of thinking about similar things when learning a new concept. This helps strengthen the concept in memory.

In the context of programming, you can think about similar concepts in another programming language or if the concept fits a certain paradigm, framework, or domain.

144

1.16K reads

Understanding Code

Since code is similar to natural language, we can apply the same techniques that we use to understand text to understand a piece of code. A great way is to try to summarize the piece of code in words, which helps you understand it better and can serve as documentation.

133

1.06K reads

Naming Variables

Naming Variables

It is pretty obvious that the names of variables matter. But oftentimes when we are in the middle of a hard problem, thinking about the name of a variable is too much for our cognitive capacity, so we just choose the first thing that comes to mind.

But we can increase our naming abilities while reviewing other people’s code. When you see one of their variables for the first time, take a few seconds to try to predict what it will be used for, and later evaluate how accurate its name was. Overtime, this should increase your intuition about good variable names.

142

922 reads

Choosing A Good Name

A good name must fit the natural language the variables are defined in. For example, since in English you would say “the maximum number of points”, it makes more sense to choose the name max_points over points_max.

Also, the aim should be to use 2-4 words per variable (apart from the common 1 word names).

136

913 reads

Using Memory To Your Advantage

Using Memory To Your Advantage

Since we can only hold a few things at once in our memory, this can slow us down while programming or while reading code. There are 2 strategies we can use.

  1. Automatization: Practice a concept so much that it becomes second nature. If you’ve been programming for a while, you never think about the syntax of a for-loop, so that does not take almost any brain power while writing code.
  2. Making models: a model is an abstraction you make to reduce your cognitive load, such as a diagram about a complicated codebase that helps you understand it better.

146

885 reads

One of the things I take away from this book is that confusion and feeling cognitively overwhelmed is fine, and is part of life and learning. Before I knew all I know about cognition, I used to get upset with myself for not being smart enough to read complicated papers or explore unfamiliar code; now I can be kinder to myself and say, “Well, maybe you have too much cognitive load.”

FELIENNE HERMANS

146

957 reads

IDEAS CURATED BY

Andrei Hodoroaga's ideas are part of this journey:

The Halloween Collection

Learn more about books with this collection

Navigating and enjoying the thrill of horror and scare experiences

Historical knowledge of Halloween and its origins

Understanding and appreciating Halloween traditions worldwide

Related collections

Discover Key Ideas from Books on Similar Topics

How to Read a Book

8 ideas

How to Read a Book

Mortimer J. Adler, Charles Van Doren

Speed Reading

8 ideas

Speed Reading

Kam Knight

Limitless

8 ideas

Limitless

Jim Kwik

Read & Learn

20x Faster

without
deepstash

with
deepstash

with

deepstash

Personalized microlearning

100+ Learning Journeys

Access to 200,000+ ideas

Access to the mobile app

Unlimited idea saving

Unlimited history

Unlimited listening to ideas

Downloading & offline access

Supercharge your mind with one idea per day

Enter your email and spend 1 minute every day to learn something new.

Email

I agree to receive email updates