Programming is Art

I can’t remember a time in my childhood that I didn’t want to be a drummer. My mom would tell you that it started with Fleetwood Mac on the radio and a little blonde boy flailing his arms in his car seat. Drumming grew into percussion and percussion grew into music. By the time I was a junior in high school my dream had matured into something drastic… I wanted to be an artist. I was inspired by Chaucer, Wilde, Bach, Klimt… men who lived in a world of expression. They lived life passionately – romantically – with something to say.

I think I knew all my life that I had something to say, and wanted to say it desperately. However, one day I woke up and realized my art wasn’t the correct medium for my message. That realization surprised the people in my life, and well… most people I meet are surprised when they learn that I moved from music to data science. I get less surprised every day. I still want to be an artist – I just need a better method of expression. Continuing through graduate school and now the ChiPy mentorship program has convinced me that programming is art, and I hope to convince you too.

Art is a Skill

Skill building is slow. It is long exhales of frustration. It’s looking into space and shaking your head. It’s resting your head on the table in defeat and then picking it back up out of stubbornness. My life pursuing music was full of these moments, and now I relive them daily in my coding practice. There’s a messiness too it. You produce work that is absolutely horrible, and then make it better. The only way to make it better is to just do it more. Every great music teacher I had told me the way to improve was through practice. All of my coding mentors have expressed similar sentiments. The expressiveness of an artist is limited by his or her commitment to practice.

Art is Rigorous

Practicing art isn’t easy. Practicing productively is damn near impossible. So much time goes into the basics. Let me tell ya, percussionists love their fundamentals. So much so that the goal is literally muscle memory. Artists want nothing disconnecting their thoughts from their expression. When a pianist intrinsically knows the fingerings of a scale, or a dancer instinctively steps correctly – that is where art takes place. The most fundamental pieces are perfected discretely, and then combined effortlessly into a continuous flow expression. Programming embodies this concept. Every task is broken into fundamental pieces – simple tasks easily conceptualized – and then aggregated to perform magic. And it really is magic! As I alluded to in my first post – you can do almost anything with code. True art is rigorous and creative.

Art is Collaborative

The only way to play notes together in chamber music is to breathe together. The same inhales, the same exhales, even the same duration of breath at times. It is a collaborative experience like nothing else.

While I haven’t breathed with any of my coding partners (although we needed to take some breathers), coding is collaborative. Every tool I have used in my project so far has been open source – a product of pure collaboration at the largest scale.Thousands of people collecting their insights, thoughts, and experience together to solve problems and build new tools. Ideally it is clean, it’s well documented, and it’s meant to share a specific idea with someone else. This doesn’t always happen. Collaboration can be messy, but it makes you a better person. Collaboration brings different schools of thought, different personalities… but it’s up to you what you do with it. You can get frustrated from it or you can learn from it. I see all collaboration like I see music – it needs to harmonize.

Art is Elegant

“Readability counts.”

– Tim Peters, The Zen of Python

Music has form and structure, but in great music you wouldn’t realize it’s there. The form is there to take the listener on a journey. Well structured code is the same. The form is there so that all you see is the programmer’s ideas. There’s an honest pursuit of simplicity and abstraction, and I love it.

Art is Transformative

Pursuing elegance changes you. Not only does it change the way you think, but the frustrating process of developing it molds your character. Almost every positive quality in myself – from patience to honesty – I attribute to pursuing music. I feel a new transformation happening as I learn to code. Every day I learn something that changes the way I see the world, and changes the way I see myself. How exciting is that? I am blessed for the opportunity to learn from such great people, grateful to have such patient mentors, and lucky to live in a time and place where I can pursue art. I can’t wait to share what’s next – and as always thanks for reading.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s