Programming:
A set of instructions that you give a computer, in order for it to perform tasks.
Before we get into the deeper topics of programming, we have to first understand the different types of instructions that we can give the computer. These instructions can be simplified into 3 different categories, as I like to call it, Direct Instructions, Storage Instructions and Retrieval Instructions.
The first type of instructions are:
1. Direct Instructions
These instructions cause a direct change in something, which shows results. For example, if we give PaperBot a Direct Instruction, “Move 1 step front”, PaperBot will move one step forward.

PaperBot takes one step foward.
In code, a direct instruction would be something like printing a sentence onto the screen:

The Instruction [cout << “This is a Direct Instruction” << endl;] prints the string “This is a Direction Instruction” onto the screen of the console.
2. Storage Instructions
This type of Instructions stores information, unlike “direct instructions”, there is no visible change during execution of the code. For example, if we give PaperBot a Storage Instruction, “Remember NAME is PaperBot”, nothing will happen visibly but PaperBot will now remember that NAME is “PaperBot”.

PaperBot Now remembers that NAME is “PaperBot”.
In code, a storage instruction would be something along the lines of declaring a variable:

The Instruction [string myString = “This is a Storage Instruction”;] stores “This is a Storage Instruction”, into myString as a string data type. Now the Computer remembers myString as “This is a Storage Instruction”.
3. Retreival Instructions
This type of Instructions retrieve stored information. This type of instructions retrieve information. For example, based on the storage instruction example. if we give PaperBot a Retrevial Instruction, “Say NAME”, PaperBot will in turn say “PaperBot” when he executes the instruction.

PaperBot remembers that NAME is “PaperBot”, and follows the instruction [Say NAME] and says “PaperBot”.
In code, a retrieval instruction would be akin to using a variable:

The Instruction [cout << myString << endl;] retrieves the value of the variable [myString] which is “This is a Storage Instruction” and prints it onto the console.
So if we put it all together:
Storage Instruction + Retrieval Instruction + Direct Instruction

Storage Instruction: [string myString = “This is a Storage Instruction”;]
Retrieval Instruction: [cout << myString << endl;]
Direct Instruction: [cout << myString << endl;]
[string myString = “This is a Storage Instruction”;]
This stores the value of “This is a Storage Instruction” in the variable myString
[cout << myString << endl;]
This is a combination of a Retrieval and Direct Instruction, where the computer retrieves the value from “myString” and outputs it onto the console screen as shown above.
Essentially, Programming is a combination of the 3 different types of instructions. Storing memory, retrieving data, manipulating the data and showing an output onto the computer screen.