One of the concepts I find important to learn when starting to code is Computational Thinking.

Computational thinking is the step that comes before programming.

Computational thinking is a set of problem-solving methods that involve expressing problems and their solutions in ways that a computer could also execute.

Decomposition means breaking down the problems into smaller, more manageable parts that can be addressed more easily.


Pattern recognition means observing similarities, regularities and trends in data, processes or problems.
Wether you are watching clouds for fun, or even to predict the weather, or you are analyzing symptoms to set a diagnostic, or you are developing an app to solve the most common service requests for a company, or you are training a machine to respond like a human, you are using pattern recognition.
This is a series of weekly posts aiming to demistify concepts in coding and computational thinking.

Abstraction is the process of filtering out
the characteristics that we don't need
in order to concentrate on those that we do.
When you are playing tangram, or sketching an idea, or you are transposing business requirements into an UML diagram to design the functionality of a new software system, you are using abstraction.

An algorithm is a plan, a set of step-by-step instructions to solve a problem.
When you are dressing up, making a sandwich, going on a specific route to get somewhere, you are a doctor treating a pacient, or you are a software engineer developing a search engine, you are describing or following an algorithm.