What is programming then ?
The answer depends on who is asking this question. There are few other trades where people often calll their work as programming. And there are all kinds of people who even does not know what is computer programming. BTW, here I'm only talking about computer programming. And this blog is for people who are actively involved in computer programming, so if you happen to be here and not interested in this, please take a quick exit !.
The assumption for any further blog is that the audience knows some programming environment that uses systems like Windows, Linux, Unix, Mac OS, Symbian, Palm, and your favorite mini/micro/main/embedded program development environments.
In my opinion, Programming is a realization of an algorithim. And an algorithm, recursively defined, is an algorithm. No seriousness warranted :-)
At a very basic level, programming is to write a program to do repeatative computation. Computation at a very basic level is to take representable and measureable input of some kind and observe some output. At a logical level the computation can be thought of arithmatice nature. If these huge computations of modern days could be done by programs using computers, we should be able have lesser number of working hours, and more quality time. Wasn't it the big daddy of all little promises of high tech?
An algorithm is a finite combination of computations of above nature. We use algorithm for almost any type of human work, be it making food, be it making shoe or be it going to places. There are a wide variety of formal and informal definitions of programming, algorithm, and computations. From a programming perspective these above definitions should certainly help.
Since we almost always use higher-level computer languages to craft a program, abstractions from the above definitions are necessary. In that abstract model we think about an algorithm as a piece of code that does some computations. A piece of code is really some finite number of high-level languge statements.
Finally to me, programming and programming model are cousines. There are two primary models: Higher-level language model and Machine mnemonics model. Mnemonics models are also called assembly language programming. If you split hair, I'm sure, you will find more models :-)
Reader Comments