Even though from an outlook, some consider programming as just a way of instructing a computer system to do the desired task, it is a lot beyond that! As per the Oxford Dictionary, art is "The expression or application of human creative skill and imagination". Programming is an art of solving problems and building solutions.
Programming is all about creativity and imagination. For developing better solutions, a programmer requires to think and work out various patterns and structures. Just like any artist, creativity and imagination are the crucial skills needed to a good programmer. They have essential roles in making the solutions easy and usable. The imagination power will help to build better mental models of the problem which will further result in the creation of quality and error-free solutions. Creativity is all about how a programmer approaches and understands the problem. As each sculptor sculpts differently for the same theme, each programmer will solve the same problem uniquely as per their creative thinking. There are lots of programming languages and pre-built algorithms which are already proven by many scientists and researchers. Since all the programming languages have the flexibility to translate the algorithms, the programmer's make them in their very own fashion as writers prepare stories and essays (Dale & Weems 2013). Which is a sole piece of art?!
Every art is a form of converting imagination to reality. A good program is a composition of artistic preparations. To build a better solution that addresses the problem efficiently, a programmer first needs to figure out the patterns and structures involved in that problem. Once the mental model of the proposed solution is ready, just like an artist makes the plan for his drawing, a programmer needs to prepare an algorithm (step by step guidance) and then needs to write the pseudocode, for mentally testing and validating the solution. Only after completing all these steps, an actual computer program will get built.
Why it considers as an art, is just because, the way a program is getting executed from the mind of a Programmer to the Memory of a system. As Knuth Said, "when we prepare a program, it can be like composing poetry or music"(Knuth, 1974, p. 670). It is an art of generating 0's and 1's. Programming is just like poetry. "It is the process of creating something out of nothing with the pure power of logic" (Liukas, 2015). It involves logical and creative thinking. It is the output of one's reasoning and imagination, which structured according to a set of principles and laws known as the syntax written in a language, which both human and the machine can understand.
The art of computer programming is the way it is getting constructed. Just like any artist does their artwork, it is the process of bringing the programmer's imagination to reality. It is like composing music and sculpting a shape based on a theme. In programming, the rhythm is composed up of 0's and 1's!
Dale, N., & Weems, C. (2013). Overview of programming and problem-solving. In Programming and problem solving with C++: comprehensive (6th ed., pp. 1-44). Burlington, MA: Jones & Bartlett Publishers.
Liukas, L. (2015), The Poetry of Programming, Geneva: TEDxCERN
Knuth, D. E. (1974). Computer programming as an art. ACM Turing Award Lectures, 1974. doi:10.1145/1283920.1283929