What is Programming / Coding?

Computer programming, also known as coding, is the process of creating software. But what exactly is software, and how is it made?

What is Software?

Software is a set of instructions for a computer to perform. It’s a bit like a cooking recipe:

  • Crack an egg into a bowl
  • Whisk the egg
  • Put a pan on medium heat
  • Grease the pan
  • Pour the eggs into the pan
  • And so on

Instead of manipulating ingredients, computers manipulate data. The instructions inside software look more like this:

  • Load some data
  • Load some other data
  • Transform those two bits of data into result data
  • Send the result data to the monitor for display
  • Send the result data over the internet
  • And so on

These instructions are usually called source code. Source code is just a set of written instructions that a computer can understand.

It’s More Than Just Writing Code

Writing code is just one part of making software.

Large pieces of software – like Windows, OS X, and big-budgets games – are made up of millions and millions of lines of code. When you have that much code, you need to plan out how the code will be written, and how different parts of the code will work together. This kind of planning is called design or architecture. On large projects, a lot of time is spent designing and architecting before code is written.

Another large part of making software is testing. Just because the code has been written doesn’t mean it is correct. The code might crash sometimes, or give the wrong results, or freeze, or any number of other problems. To try and avoid these problems, professional software developers have various different ways to test their code.

Then there is debugging, which is the process investigating, diagnosing and fixing problems in source code. This is a skill in itself.


So programming is writing instructions for a computer to perform. The instructions, called source code, are written in special languages that are unlike natural human languages. It also involves planning, testing, and debugging source code.