The Art of Coding
The room is cold, the lights are out, there is no sound inside nor outside this four walls, everything in the space is left for imagination but three specific things, a screen displaying colored letters against a black background, a soft colored light shining behind the previously mentioned screen and the muted cracks of the keyboard below the fingers.
Those are the moments when the mind start to run, when there is nothing between what the thought gives birth to and the reality, those are the moments which every artist craves.
To the unexperienced eye, coding is surely a trivial and technical skill, in this century we all know that computers are just a collection of ones and ceros, we all know that machines do not think nor learn, that is just math and probability, computers are actually pretty dumb objects. Computers do not think nor reason and they loyally do as their programmer wrote, step by step, with no exceptions, with no reinterpretations, with no opinion at all.
So coding at the end of the day seems a very easy task, you study how the computer work, how to talk to it, how the problem at hand can be solved using technology and then you just write the code. But if there is something I have learnt in my professional experience, that is not much so please be kind in your judgment, is that there is always more to it. Every single time, code starts as a very simple and straight forward task that ends up being almost an artistic endeavour.
A fascinating, infinite, puzzle, a blank painting canvas, maybe thats what an empty file look to us.
How does a painter chooses to paint a mountain? I am not a painter myself so I don’t have an answer to that question, but I certainly know that to paint a mountain is an act of free will and there are infinite ways to achieve that. Sounds familiar? Thats what code is, really. A blank canvas where creativity, style, math and ingenious thinking collide, and at times fight, to solve a problem, a puzzle.
But solving the task, with this kind of creativity, is not enough. Solutions in code need to be simple, they need to perform well in our computers run time, they need to be readable not just for the machine but for us humans too, sometimes they even need to be able to scale, to serve millions of individuals worldwide. Here is where art begins, were solving the problem is the bare minimum and solving it elegantly is the artistic goal.
Some days ago I tried to read “The Creative Act” by Rick Rubin. I did not like it, as a personal opinion I feel like there is a good number of books out there about creativity that do not try to communicate every sentence as if you were reading a ethereal and philosophical book, Creativity Inc by Ed Catmull for example.
There is one thing I can accept and embrace, however, from Rubin’s book, every one in an artist.
I do not know when did it started but at some point in my life I decided I was not good enough to draw, funny, considering my early life plans of pursuing an architecting career or the fact that in my youth I did attend to drawing classes. I was, in fact, not that bad at drawing, but somewhere along the way I found myself undeserving of making art.
Truth is, architecture was not the right path for me and I can surely say that computer science was, but these doubts of “am I not good enough to make art?” were crippling, life is just a long search for beauty and to exclude yourself of that is just plain sad.
Is coding an art?
Maybe we are just tasteless engineers, humans after all, with an innate desire of looking for beauty. Is life worth living without beauty? I do not think so. Maybe we just want to be part of this exclusive group of people capable of creating and finding beauty in the mundane.
Or maybe, coding is in fact an art, maybe there is some kind of beauty in the words we desperately write in our text editor, maybe there is magic in all of the possible combinations we can create, maybe there is something amazing in how we build complex systems just with a small dictionary of basic words.
Maybe it doesn’t matter.
Maybe art has different definitions for all of us, maybe, defining what art is, is actually not that important nor trying to figure it out if coding enters in that definition. Who cares.