Why learn programming? There are several answers to that. Computers are ubiquitous—your car, your mp3 player, the orbiting satellites which provide us with the ability to communicate and the automatic coffee maker all use a computer of some sort. Andcomputers require programming to function. Knowing how to program provides us with a bit of insight into how our world functions. And the less mysterious our world is the more comfortable we will be in it.
Apart from the use of computers which are hidden from general view in the car or the coffee maker, depending on our particular profession, many of us will use computers directly in our professional lives. Whether we are a musician expressing ourselves through electronic compositions, an accountant doing the mysterious things accountants do, or an engineer trying to design a widget, we will end up using programs. Even if the programs you use were written by someone else, you will find when you try and use these programs for any complicated tasks you will go through a process suspiciously like programming. Albeit one which uses constructs that are specific to the profession or application.
Learning how to program is a very good way of learning how to solve problems. A program is written to solve a problem or accomplish a task. To write a successful program one has to be able to analyze the problem or task, and then synthesize the solution in the form of a program. Analysis and Synthesis are two essential aspects of problem solving. Analysis involves the breaking down of a problem into its components, while synthesis involves bring together components to make a whole. Programming initially looks like an exercise in synthesis: we put together commands and modules to perform a task. However, if we look closer, we find that programming at its heart is also an exercise in analysis.We write programs to solve problems or to achieve an objective. To understand the problem or the objective we have to first analyze it.