Benefits of programming
In today’s world, the computer is all-pervasive. Almost every aspect of our lives has been touched by computer technology in one form or another. For instance, we can use the computer to play games, write a letter or a book, shop on the Internet, perform accounting functions for a company, learn a foreign language, talk to someone far away, listen to music on a CD or watch a DVD movie.
How is this possible, all on the same machine? The answer lies with programming – the creation of a sequence of instructions which the computer can perform (we say “execute”) to accomplish each task. This sequence of instructions is called a program. Each task requires a different program:
· to play a game, we need a game-playing program;
· to write a letter or a book, we need a word processing program;
· to use the Internet, we need a program called a Web browser;
· to do accounts, we need an accounting program;
· to learn Spanish, we need a program that teaches Spanish;
· to listen to a CD, we need a music-playing program;
and so on.
The vast majority of us would never need to know how to create a program (or even know what a program is) in order to use a computer. For the most part, we need only learn how to use the programs in which we are interested to enjoy their benefits. Because of this, many people argue that they do not need to learn programming since they do not intend to be programmers. Similarly, others say we should not teach children to program unless they wish to pursue a career in computing. Sadly, this is a short-sighted view which completely misses the point. Regardless of what you do, what subjects you like or what career you intend to pursue, you will need to think and solve problems. And no subject trains you better for that than computer programming.
The reason is simple. A computer program is written to solve a problem or perform some task. It is a truism that the best test of whether you understand how to do something is to explain to someone else how to do it so that they understand it. Writing a computer program requires explaining in minute detail the steps (instructions) the computer must perform in order to solve the problem. Programming is the art of expressing the solution to a problem using the kinds of instructions that the computer can understand and perform. And that takes discipline, skill, patience, perseverance, a great deal of logical and critical thought and knowledge. Surely, these are attributes worth striving for.
Apart from these indirect benefits of programming, many of the programs we use do require knowledge of programming principles to make better use of their capabilities. Two of the most widely used programs are word processors and spreadsheets. Automating certain actions in either program requires the writing of a ‘macro’ - just another name for a computer program. For example, suppose you had a large spreadsheet and you wanted to highlight (in red, say) all numbers less than 50 with the click of a button. You can do this quickly and efficiently by writing a macro.
Computer programming is a wonderful vehicle for teaching problem solving, logical and critical thinking. It has the ability to nurture and develop thinking skills that are just not possible with other subjects. And the earlier children are exposed to it, the better. The greatest benefits will be derived during the formative years of about eight to fifteen. Also, it is easier for children to learn programming then than later, when their thinking patterns have become more established.
Even though a computer program is ultimately run on a computer, programming is much more a ‘thinking’ skill than a ‘computer’ skill. You can learn much of the art of programming without ever going on a computer. However, the ultimate thrill is experienced only when you get that program to run correctly on a real, live computer.
With all its benefits, the learning of computer programming should be as commonplace as the learning of reading, writing and arithmetic.
In our next article, we take a look at the programming process.
Related programming references