One of the questions that all those who have a look at the monitor where a programmer is coding is: But how can you figure something out?

Understand something

It’s not easy to start programming. And understand why, or what snaps into the mind of a novice programmer who leads him to take this road deserves a separate article.

But when ideas get clear in your mind, traveling between lines of code seems like a walk. To you, a little less to those who watch you. And in this article I would try to explain to all those who live this experience, what is there in the mind of a programmer.

Memory drawers

That programming is based on the typed data structures, saved within the variables, is not a fact notto everyone. Let’s start from here: in programming something exists if it has a value. If it does not, it is null or even undefined in case the programmer has not even conceived its existence.

In case it has a value, this can be one of the data types that the programming language makes available. Data types are extensible in most programming languages, meaning that the programmer can create new ones from those already existing.

Programmer positions in the same way these values are saved in variables, within the drawers of his brain. It creates a mental bedside table with many micro drawers in which it puts the values of all the variables created. For this reason, the more the program becomes long and complex the more some drawers end up stored in the depths of the mental drawers and need concentration to be extracted, in the same way as the most difficult memories in our own life.

Logical steps

Anything that cannot be stored can be obtained. It’s what any high school and University Professor teaches. It is useless to memorize something that you are not going to use immediately, because the short-term memory is volatile and if you insert something new, as if by magic, something that you have saved some time before will come out.

How do you derive something that, when we had written it, had its own logic? You can trace it step by step, also thanks to the textual comments that every programmer should always accompany his code, for the simple reason that the code is a synthesis of a man-machine language, while a human language is for everyone more clear (even for a programmer).

Every line of code is a step. As in a book, to understand its unfolding you have to read it from the beginning. In coding it’s the same. You can not expect that, starting from the middle and having a look, you understand the plot of the novel. Even more so in case you do not know the language in which it is written…


Simplifying complexity is a skill that all programmers should have by nature. On the other hand, to solve problems you have to slice them into simpler subproblems.

Instead of being you in their head, they could make you a little drawing.

0 0 votes
Article Rating
Inline Feedbacks
View all comments