Programming is the art of solving problems. Specifically, computer programming is the art of solving problems using computer software, or sometimes computer hardware.

The art of software programming involves several important steps.

The first step involves identifying the problem: Just what is it the program is supposed to do? It can be something relatively simple, such as converting a set of data to a different kind (e.g., converting a bitmap from one file format to another), or something quite involved and complex (e.g., connecting different computers around the world, making them talk to each other, understand each other, i.e., creating the Internet).

The second step usually is the how-to phase. It involves analyzing the problem, breaking it down to smaller chunks, each of which may produce new problems that need to be solved. Because of that, this step may be recursive. This second step may take anywhere from several minutes to many years, depending on the complexity of the problem and the urgency to find a solution. This is also the most invisible step of programming, one that can happen at the oddest of times, not just while you are sitting at your computer, but while you are taking a shower, attending a party, watching TV, even while asleep (relaxed mind always helps).

The next step involves finding out if the problem or a part of the problem has already been solved by someone else, and if so deciding whether that solution is sufficient (in which case your work is done), or can be adapted to the problem at hand, or perhaps needs to be be redone from scratch.

Once the problem has been broken down to the smallest subproblems possible, the programmer needs to identify the proper tools, which typically involves finding the appropriate programming language. This step is often neglected, especially when the programmer thinks of himself as a C programmer, or a Fortran programmer, or a Java programmer (etc), rather than simply a programmer. Yet, this step is just as important as all the ohers: It is certainly easier and more efficient to create a web counter in several lines of Graphic Counter Language than in ten thousand lines of Cobol, to name an obvious example.

The next step is the most visible (to the public), namely coding, i.e., writing the code for the program. If done too early in the process, it may involve a lot of trial and error. But if done after all the previous steps have been fully completed, coding can be like automatic writing, appearing almost effortless.

The final two steps involve testing and debugging. Unfortunately, these are often skipped, especially when there is corporate pressure to release the software early and start making money quickly, and more money by releasing upgrades which may or may not include debugging of the previous version.

All of the above steps can be done by the same person called programmer, or they can be done by a group of persons, some of whom may be better at certain steps than others. The best software is generally produced when a single individual is capable of going through all the steps, but not all programmers have that ability.

Programming is more than a mere idea. It is a way of life. Technically, it is the creation of software. However, such a task is meant to be more than just mundane diversion. It is a supreme challenge through which peace and order are maintained.

Often becoming an ongoing circle of coding and debugging one ultimately finds, in programming, the ability to explore new worlds of possibilities for generating error messages. One can quickly understand why programming is, under normal circumstances, analogous to hitting one's head on a brick wall.

However, this concept of programming does more than generate massive concussion and obnoxious headache for those involved. It is a key in making the best out of life. Ideally, it is an outlet for creativity in the design of software, but, more than that, it is a process of finding ultimate solutions to insurmountable problems. This is why programmers should be respected throughout society, and why geeks should not be spat upon by those who do not wish to understand. People should love programmers and treat them with kindness as they go about solving the problems of the universe.

Programming is the powerful, but poorly understood force that is used to control a realm of infinite possibility. This universe is plagued by an epidemic of bad software. However, a glimmer of hope stands out in this universe... it is the concept of open source. Programmers now have unprecedented tools at their disposal at virtually no cost in a powerful operating system, known as Linux.

USE THE SOURCE!

Programming is truly a form of art. It is the pinnacle of the creative process that a select few can reach the summit of. It is a form of expression just as a painter paints, a writer writes, or as a musician composes. However, consider if you will the true power that a programmer possesses. A programmer can make it possible for that musician to compose and store music on a computer, or a writer to save his or her documents. Conversely, a musician or writer or even a painter cannot make their art transform into a permanent medium for the benefit of computers. Therefore, it could be safely said that the art of programming is actually a "Meta-Art". It reaches into so many facets of our everyday life, and yet it takes a rare breed of talent to truly harness that ability.

Programmer's Cheer = P = programming fluid

programming n.

1. The art of debugging a blank sheet of paper (or, in these days of on-line editing, the art of debugging an empty file). "Bloody instructions which, being taught, return to plague their inventor" ("Macbeth", Act 1, Scene 7) 2. A pastime similar to banging one's head against a wall, but with fewer opportunities for reward. 3. The most fun you can have with your clothes on. 4. The least fun you can have with your clothes off.

--The Jargon File version 4.3.1, ed. ESR, autonoded by rescdsk.

Programming also refers to controlling another person's mind or life with behavioral triggers, often as an abusive parent or significant other. Programming in that form usually includes acute physical and/or sexual abuse, and often a highly controlled environment in which logical rules and cause and effect are destroyed as thoroughly as possible to weaken any ability to fight the programming. There are also larger groups that do this, often in the form of ritually abusive cults. In benign theraputic terms, one can also program oneself to change one's behavior with affirmations, which is a considerably different experience.

Formerly the Programming Metanode

If you think something's missing, /msg me.
Also, visit the sub-nodes of this node:

Now for the node:

References:
Books:
Ahh, all the types of programmers
Programming Styles
Culture and Self-Development
  • Evolution of a programmer
  • What it takes to be a good programmer
  • virtues of a good programmer, A good programmer is a lazy programmer
  • C Programmer's Disease
  • Why programmers should support same sex relationships
  • Now you're a coder. Dress the part.
  • Programmer Hell
    A Programmer's Inventory:
    Don't forget the Macintosh!
    Assorted Things
    For now, unsorted

    Thanks to these people for their help:
    sockpuppet
    mcc
    tftv256
    getha
  • Log in or register to write something here or to contact authors.