programming is a really big science and art. I reduce the topic to the way programs are produced and maintained operational and fault-free. programs are usually produced by writing text files (source code) from which the program is derived. to add features, to keep them fault-free and to modify them... all this modification are obtained by modification of the above mentioned source code, that is the origin and soul of the program.