There are 6 fundamental concepts of coding:

Sequencing

Branching

Iteration

Arithmetic

Data storage

Data in / Data out

We covered the first three concepts in this blog post.

Let's go through the last three concepts here: arithmetic, data storage, data in / data out.

### Arithmetic

Arithmetic involves traditional operations of numbers: addition, subtractions, multiplication, and division. This also includes negative numbers, decimals, and fractions. When we write code, for example developing a computer game, we use arithmetic as a tool to control what happens in the program. We can control the movement of objects in the program by changing the X-Y coordinates, i.e. this may require adding to or subtracting from the current X-Y coordinates. We can control the numbers in the player dashboard, e.g. points, health, damage, with arithmetic.

### Data storage

Data storage are items which can save or store data e.g. numbers or strings. A string is a linear sequence of characters. An example of data storage is a variable. Variables, as the name suggests, is assumed to vary or be capable of varying in value. For example, when we develop a computer game, a common example of a variable that we use is the score. We use the variable called "score" to store the value of the player's score in the computer game.

### Data in / Data out

Data in and data out refers to input data and output data in the process or algorithm. When we write a computer program, e.g. a computer game, we need to organise data. Let's use the example of using the variable "score" to store the value of the player's score in the game. When the game starts, the score is equal to zero. The input data is that the variable "score" starts at zero. As the player collects points, "score" increases in value. The output data is the subsequent "score" after the event of collecting points, however that might be in the game, for example when the player collects coins or other collectibles.

## How long does it take to learn to code?

In other words, if there are only six fundamental concepts in learning to code, why does it take so long?

You can spend a few terms at school learning the absolute basics of computer programming concepts. But programming enthusiasts can spend their entire lifetime becoming the best programmer they can be. Just like any skill, like playing the piano or playing soccer, how long it takes to learn to play the piano or to learn to play soccer is up to you. You can learn enough to start enjoying it straight away, but to pursue mastery can take a lifetime.