The common perception towards programming is often colored by a sense of begrudging monotony. This is more or less true for any technical pursuit since the public imagination regards subjects that fall into this assortment as lucrative but insufferably tedious or boring. Such an opinion partly owes itself to the nature of these subjects themselves because they involve the rigorous application of certain rules and methods. Programming, for instance, requires the learning of the special syntax and grammar of specific “programming languages”. But unlike the language that we use colloquially, there is little room for ambiguity in programming. Since computers are deterministic and only understand binary operations, we find ourselves in a position where we must explicitly translate our thoughts in a formal medium of expression.

So a programming language is fundamentally a compromise between man and machine. As you learn the language and subject yourself to its rigour, you obtain an understanding of how computers reduce seemingly complex tasks into simple mathematical operations. The process of arriving at this understanding, however, remains strenuous and is partly what creates the impression that in order to talk to machines, we must also become monotonous and machine like. There is some truth to this assumption but it also arises from the misconception that programming merely involves the mastery of rules and syntax.

Although a large part of programming seems highly technical, the process of translating your ideas into the language itself couldn’t be farther from it. As I had implied before, programming languages fundamentally establish a bridge between you and the machine. It affords a set of tools which, although are applied technically, can be wielded for our own creative ends. So more than mere analysis, the task of writing a program is also guided by intuition and the attempt to discover how one can creatively express themselves within the limits of a binary world. What makes this process enriching and perhaps even artistic lies in the character of this negotiation. You are confronted with what is essentially a logical beast. And as you wrestle with it and attempt to formally express your idea programmatically, the idea itself assumes radically different dimensions.

Therefore a neatly written program is the hard earned product of this tumultuous struggle. It is not only the accumulation of the instructions you have laid out but also represents the incarnation of your thought in reality. So programming, far from being an impersonal task of churning out code, calls for immense personal involvement and creativity. If done properly, it demands the constant refinement of your thought and the ability to express yourself in a manner that is both concise and deliberate. So even for a layman who might not pursue this discipline professionally, there is much to gain from learning to converse with machines.

A part of the reason that technical disciplines, especially those that pertain to computers, have created the impression of being either exceedingly difficult or too mundane to pursue is because of the fact that they have been taught in complete isolation. An engineer or a programmer is rarely informed on the rich history of their discipline and neither are they concerned about the social or the cultural implications of the work they do. As they apply methods and procedures systematically and objectively, their work gradually assumes a direction of its own. This kind of detachment, we are told, is what specialization entails and allows for technology to breed out of its own necessity but it comes at the expense of what makes a pursuit fundamentally human.

So there is not simply a rigid distinction between the technical and the artistic but also the steady encroachment of the former to envelop the latter. Art, in its highest form, requires immense personal sacrifice from its practitioners. It creates a possibility to contemplate on the fundamental unity of all things. But what transpires practically, both in the case of an artist and a technician, is more or less the same. A set of methods and procedures, arrived at through years of practice and experimentation, are applied in a specific context to secure an outcome. Therefore what differentiates the both is that in art we see the individual gleam through his work but in a product that is technical, he vanishes behind the sophistication of its methods.

Such a disparity emerged not from the nature of these pursuits themselves but in the way we have learned to practice them. As much as it is possible to pursue art mechanically and impersonally, it is equally possible to pursue anything that is technical through the avenue of involvement and creative self expression. Although a well written program might not be as universally appreciated as the rhythm of a good song, you are still transformed in the process of creating it. Similar to how art becomes a means to comprehend the unity of things, immersing yourself in a world of 1s and 0s lets you see how daunting complexity can arise out of mechanisms that are breathtakingly simple and elegant. The beauty that is witnessed in both of these instances are strikingly similar despite the obvious differences in their form and context. And in witnessing it, you cannot help but wonder if the line that divides the technical and the artistic is nothing more than mere pretense.