Computer programming is not just about building the next cool app, or about creating a killer web site – it's about planning, discipline, and problem solving, as well as a good introduction to the wonderful world of logic.
Even for people who are never destined to actually make a career out of telling a computer what to do, there are some great advantages to have had by acquiring the skills needed to actually do it.
Before looking at the three key skills that are common to all forms of programming – planning, problem solving and logic – it's worth citing a little anecdote about the misconception that programmers have to be engineers, or at the very least, good at mathematics.
There was a time when computers were the size of a house, and communicated with the programmers using little bits of cards and ticker tape. If they went wrong, someone had to repair the valves (yes, valves), and it saved a lot of time if that person was also the programmer.
Fast forward a few years, and applicants for Universities across the UK wanting to study Computer Science wonders what kinds of subjects they might need to study in order to be accepted onto the course.
Medical students needed a grounding in human biology, those wanting to study astrophysics had better know their mathematics and have at least a basic idea of the advanced laws of physics.
For computer science students, it was easier. No special knowledge is really required.
Learning Planning through Computer Programming
It is said that the best way to appreciate subject matter is to teach it to someone else. This being the case, the best way to appreciate how to do something well is to break it down into successively smaller steps until the whole process is laid bare.
With knowledge of all the components, estimates of time and cost can then be applied, as well as the various checks and balances that will prove that what has been done has been done correctly, and is the correct thing to have done in the first place .
This is as true of building a block of flats as it is a computer program.
Computer Programming as an Introduction to Problem Solving
Some things just do not seem possible at first glance. No doubt the idea that every page on the internet could be indexed, and then searched in real time was considered to be a bit of a pipe dream by some.
However, knowing that a computer is just a thing that can interpret commands leads the programmer to be able to find a way to solve just about any problem. And if there are not any obvious solutions, the brain has a way of being able to think laterally and at least find a workaround.
The basis of this is known as logic.
Basic Logic in Computer Programming
This is really the only “science” bit of programming left. Logic essentially allows you to hand the decision making process over to the computer, and force it to perform different actions depending on the various conditions it encounters.
There are also logic constructs that let the programmer repeat actions, as well as choose actions, and methods that various lists of instructions can be re-used for different tasks, depending on how they are invoked.
Seeing the entire domain as a set of interacting objects in this way is a fundamental transferable skill that computer programming teachers.
In fact, all of these skills are transferable. Computer programming is one big set of transferable skills; and that's probably the best reason there is to learn Computer Programming.