Computer programming is the process of designing and writing computer programs. That’s pretty simple, isn’t it?
At its most basic, you can think of programming as instructing a computer to do something you want it to do, which might sound very similar to the way you handle your desktop computer. Quite simply, the only difference between what you are doing now as a computer user and what you could do as a computer programmer is that the instructions are stored somewhere so that they can be used over and over again. In fact, if you have used macros in a software program such as a word processor or a spreadsheet (or countless other macro-enabled applications), you have done some sort of computer programming.
Programs can be as simple as a set of instructions stored in a text file to perform some mundane task, such as backing up all the files on the computer to a folder, or as complex as something like a word processor, or the operating system that uses the computer that may require millions of lines of code. We need to understand that computers, which are usually just pieces of metal, plastic, silicone and other materials glued together in a way that allows them to do amazing things that seem to think, can’t really think at all. But what they can do very well is follow the instructions. What are these instructions anyway? At the level a computer understands, they have to be very precise, very detailed, and very complete step-by-step instructions, and they have to be in a form that the processor and other parts of the computer can understand – and this is like small electrical pulses that humans are not capable of emitting (at least not right now).
In a way, one can think of a computer program as a recipe: a set of instructions that can be followed to produce a result. In the case of a recipe, the instructions are used by a human and therefore may be a little descriptive, omitting some of the details. For example, if the instruction in a recipe is “pour the mixture into a blender and beat until it is frothy,” it is assumed that the human knows what a blender is, where it is, and how to place it, and how to use it – and also what it means to pour, and what it means frothy, and so on. The human chef is expected to fill the gaps. A computer can’t do this – it has no idea what nothing means, except a few very simple instructions. So the way we do it is to give the human being a way to write instructions that can be translated into something the computer can understand. The “way of writing instructions” is called programming language.
What a programming language allows us to do is write instructions for the computer in a more or less human-readable form that can then be translated into something the computer can work with. Human-readable instructions are typically called (you guessed it) – code! Each line of human-readable code translates into thousands of detailed instructions for the computer. A special program (or set of programs) is used to do this translation – each computer language has its own translators, who are called compilers or interpreters. Once the translation is done, the result is stored in some kind of file or set of files (or in the memory of the computer in some cases), and each time the software is run, the computer follows the instructions and (hopefully) the program does what it is supposed to do.
Although you often imagine that you have to be a genius to be able to write useful software, almost anyone who knows the computer and has an interest in becoming an expert user can learn to program. Most programs are written by people with specialized knowledge and skills. Mastering computer programming can be a lifelong quest, but gathering enough knowledge and skill to be able to do useful things is not beyond the reach of anyone who knows how to use a computer and is willing to devote a little time to it…. or perhaps a lot of time, but still – it’s not beyond their reach.