Art in code
Late last year I read an article in TechCrunch about how Rivers Cuomo from the band Weezer finds meaning in coding. Cuomo, a budding coder, was taking an online course offered by Harvard and created a web app to help coordinate tour schedules. It’s symbolic that a professional artist, like Cuomo, is converging on something that is not typically the domain of artists.
The CS50x course, the one Cuomo is taking, is described as an:
Introduction to…computer science and the art of programming. This course teaches students how to think algorithmically and solve problems efficiently… [with] problem sets inspired by the arts, humanities, social sciences, and sciences.
When Professor Malan, the CS50x instructor, uses the term “the art of programming” it is unlikely that he is referring to the beauty in programming but instead, using “art” to reference the learning of the craft. The phrase could also be a veiled reference to the seminal monograph “The Art of Computer Programing” by famed Stanford computer scientist Donald Knuth. It is an amazing work that adores a special place in my personal library, but it is not introductory reading material.
Throughout my life, programming has meant a plethora of things to me: development, community, and money. At one point, code was a thing that I sold by the hour to employers. Sometimes those employers valued beautiful algorithmic solutions and other times they only cared “if it worked.” No matter what I was programming I always strived to make what I wrote “beautiful.”
All of this has me thinking about what is art in relation to programming. Many programmers feel simplicity and cleverness in your code, as if you are writing poetic haikus, is the ultimate expression of art in programming. This view has been so prolific over the decades that the Clean Code Movement gained traction to fight back against the clever, and often indecipherable, code those programmers wrote. But perhaps the “art” in code is simpler and more direct.
The creation of [art] is the bringing about a new combination of elements in the medium (tones in music, words in literature, paints on canvas, and so on). The elements existed beforehand but not in the same combination; creation is the re-formation of these pre-existing materials.
So perhaps just coding is a form of art. We take existing elements, the programming language, and create something new with the combination. There are novice artists, like Cuomo, and master artists, like Knuth.
Today, I view programming as an expressive outlet for my desires and feelings. Programing is a tool I use when starting companies and something I turn to when I want to relax. I find it calming being in the zone and refactoring/improving something I wrote in the past to make it better, more expressive, and a little simpler.
I hope more musicians, painters, photographers, sculptors, potters, etc. follow in Cuomo’s footsteps and embrace programming. They may never get to the level of mastery where they are reading “The Art of Computer Programing” but they will nonetheless add a new perspective to the community. And perhaps, more traditional software developers will start to view what they create as art and not just a means to an end.