# What is programming?

There are many different definitions of programming, but Martin O'Hanlon's is simple. Watch his video to find out the three basic structures.

## What is programming?

There are countless definitions of what computer programming is, but here is mine.
“Programming is how you get computers to solve problems.”
There are two key phrases here that are important:
• You: without the programmer (you), the computer is useless. It does what you tell it to do.
• Solve problems: computers are tools. They are complex tools, admittedly, but they are not mysterious or magical: they exist to make tasks easier.

### Computer programs make computers work

Computer programs (or software) are what makes computers work. Without software, modern computers are just complicated machines for turning electricity into heat. It’s software on your computer that runs your operating system, browser, email, games, movie player – just about everything.

### Programming is creative

Programming is a creative task: there is no right or wrong way to solve a problem, in the same way, that there is no right or wrong way to paint a picture.
There are choices to be made, and one way may seem better than another, but that doesn’t mean the other is wrong! With the right skills and experience, a programmer can craft software to solve an unlimited number of problems – from telling you when your next train will arrive at playing your favourite music.
The possibilities are constrained only by your imagination. That’s why I love programming.
When you create a program for a computer, you give it a set of instructions, which it will run one at a time in order, precisely as given. If you told a computer to jump off a cliff, it would!
1. turn and face the cliff
2. walk towards the cliff
3. stop at the edge of the cliff
4. jump off the cliff


To stop computers from constantly falling off cliffs, they can also make choices about what to do next:

If I won't survive the fall, don't jump off the cliff


Computers never get bored and are really good at doing the same thing over and over again. Instruction 2 above might look in more detail like this:

 2a. left foot forward
2b. right foot forward
2c. go back to 2a


These three concepts are the basic logical structures in computer programming:

1. Sequence: running instructions in order

1. Selection: making choices

1. Repetition: doing the same thing more than once, also called iteration

Add to these concepts the ability to deal with inputs and outputs and to store data, and you have the tools to solve the majority of all computing problems.

## Programming languages

Unfortunately, computers don’t understand languages like English or Spanish, so we have to use a programming language they understand to give them instructions.

There are many different programming languages, all of which have their own merits, and certain languages are better suited to particular types of tasks, but there is no one language that is the ‘best’.

In this course, you will be programming using a language called Python. Python is one of a group of languages called “general-purpose programming languages”, which can be used to solve a wide variety of problems. Other popular languages in this category are C, Ruby, Java and BASIC.

This is a small Python program that asks the user to enter their name and says “Hi” to them:

print("Hello and welcome.")
if name == "Martin":
print("Thats my name too!")
print("Hi " + name)

You don’t need to be a computer programmer to be able to read this code. It contains English words and it is readable (if not perhaps understandable). However, by the end of this course you will understand this code, what it does, and the concepts it uses.
Programs are often referred to as code and hence programming is also known as coding.