I was doing a talk the other day and made an off-hand reference to 'coding' which prompted a suprising question from someone in the group I was addressing. "Just what is 'coding'?" he asked.
It struck me at the time that I have been doing this stuff for so long that sometimes I forget that those who do not have a job involving computers can still be lost by what seem to be simple terms.
I gave an answer which was enough to deal with the question at the time. However, later it occurred to me that there really is a lack of clarity around the term 'coding' that can be confusing for anyone - including those who 'code'.
The reason is that the terms 'coding' and 'programming' are often used interchangeably, but they are actually two different things. So it is worth looking at them both separately to get a better understanding.
Coding refers to the process of writing instructions that a computer can understand and execute.
This can involve writing instructions in a specific programming language, such as Java or Python, but it can also involve other work in markup languages such as HTML or CSS.
The best way to think of this is like a snapshot in a video. If we take a snapshot from the video, there will be lots of information on the picture with colour and structure and we may even be able to take a guess at what happens next, but it will be well short of the full story.
Coding is therefore the work to define what is needed to create a picture or snapshot within an application or website, but it is only part of the story.
Programming is the process of creating a plan or a set of instructions that can be executed by a computer to perform a specific task.
This involves not only writing the code for specific scenarios, but also thinking about the overall strategy and approach to solving the problem at hand.
So, if we refer back to our video analogy, the programming is creating the full story. The sequence of events: what happens when and why.
The programme is therefore an assembly of coding snapshots put together in a logical sequence.
So coding happens within the programme to assemble various pictures or scenarios, but the programming work is about designing the full story from start to finish.
In reality a programme is more sophisticated than a video because it contains conditional elements.
A program's users typically make choices as they are using it. This can be choosing a menu item or filling in a form.
Also errors happen as the programme is being used. Users can look for a page that does not exist, or miss out vital information in a form input. So a good programme will recognise that possibility and put in options to recognise the error and guide the user onto the correct path.
The coding work at any one time will focus on a specific scenario which the programme will call according to the situation.
The point being that being able to write code in a specific language is not the same as writing a program as the programming work requires planning, forethought and a decent appreciation of best practice.
Having said all of the above, if you wish to learn programming, then learning to code in a specific language is the place to start.
This is a bit like learning vocabulary in a new language before you tackle grammar and tenses.
It is possible to start in very simple terms and develop your sophistication over time. learning to programme is learning to assemble your code in a logical and clear for both users and for future maintenance.
As with any long journey, it usually starts with a single step.