Programming as an Art
Throughout my public school career, teachers taught me to memorize formulas and apply them to specific types of problems. In math class, I learned trigonometric proofs and how to apply them to my homework problems, and in English, I relearned how to write a five paragraph essay every year. Looking back on my experiences, I feel that the public schools cheated me in one vital area: critical thinking. If a unique problem appeared in math class, it would take me a while to complete it, or I might just give up before I started, and the essays I wrote had become so generic, they were all basically the same. My ability to apply my knowledge, to critically think, had never been encouraged, and as a result, I suffered. My boring problems all changed to interesting ones when my friend introduced me to programming.
Scott was a genius; he could write a program to solve any problem on a Texas Instruments calculator. He taught slowly, deliberately, but his teachings were unparalleled. After his lessons, programming on my calculator became my siren. It would call to me in math class, in English class, in any class. I could not escape it, and I did not want to. Everywhere I went, I brought a calculator with me just to get my fix. Eventually I moved on to bigger and better languages such as C++, a programming language used in computers. As I became more competent, I started to solve my own issues. I needed a program to play tic tac toe? No problem. What about compute some data using an algorithm? Easy. With my dive into programming, my critical thinking skills drastically improved. Instead of quitting when faced with a unique problem, I started to think about the basic principles that needed to be applied and could then easily solve it. I easily applied this skill set to the rest of my schooling, resulting in improved math grades and more varied essays. Everything seemed to benefit from my choice to learn programming. As I came to find out, programming did not just help with school, it helped improve other parts of my life as well, namely connecting with others through empathy.
Music class always seemed to occupy my life since the fifth grade, and when I discovered programming I realized the two were quite similar. Consider what happens when you perform music: you look over a set of notes and then interpret them for the audience. Simple in concept but difficult in reality. It is up to the performer to add a little nuance here or a pause there, making the piece of music their own.
Programming requires this same creativity. When presented with a problem, you have to figure out how you will go about solving it. The programmer can choose to add in a certain function or optimize one that already exists. How you choose to structure your program to solve a problem is just like interpreting a piece of music. The interpretation of notes changes a piece of music into art. Similarly, the way the developer goes about solving a problem, interpreting the problem, changes his program into art. But what is art?
Art is unique expression that creates empathy with the audience. With a piece of music, you can portray feeling and thought through the structure of the music, sharing with the audience how you feel, your art. A program can do the same. Think about applications on mobile phones today. What problems developers choose to solve and how they present their solutions expresses how the developer feels and think about a certain problem. By taking the time to provide a solution, the developer shares his thoughts and ideals, his art. Whenever artists share their art, they establish empathy between people. By viewing the art of someone else, you are almost compelled to imagine the situation the artist lives in, and through this imagining, some understanding of the artist is gained and connections form. Just as a sad movement of music can bring an audience to tears because of the connection made with the performer, a connection between the developer and the user can form through using his program. It’s odd to think about. How would using someone’s program create empathy? It does not just come from using someone’s program. Empathy comes from the curiosity created when you use the program. From my experience and knowledge of programming stems a curiosity to figure out why a program exists and how it works. By trying to understand the developer’s motivations, I can empathize with him and understand him. Take the famous game: Cut the Rope; I love this game and with every new release of levels I proceed to play through them all. As I do, I wonder about why the game seems fun, and how the developer designed the game to achieve such entertainment. I contemplate how they would have solved issues that immediately arise in my mind like the implementation of gravity or how to effectively integrate a trampoline into the gameplay. Through the developers art and my curiosity, empathy arises, giving me an appreciation and understanding of their art.
However, what turns his program into art is my curiosity, and that mainly exists because of my background with programming. In my opinion, most people do not ever attempt to program and as a result take all of the technology around them for granted. For this reason, I feel programming should be taught regularly in public schools, or at the very least highly promoted as an important class. Some might argue, why is this necessary? Other vocational and fine arts provide the same benefits: an expression of oneself and an ability to share art and empathize with people. It could even be argued that such classes also teach critical thinking. However, I think programming is more worthwhile than any other class because of its growing prevalence in our culture.
As I witnessed in my high school, the number of people actually interested in learning about programming has been a minority compared to the number of people who will take band and then forgo performing once they get out of high school. But take a look at computer usage in the world over the past ten years: computer processing power has increased exponentially and the number of people with smart phones has surpassed the number with “dumb” phones. With the advent of increased smart phone adoption, the prevalence of applications and the amount of usage they see has greatly increased over the past few years whereas the usefulness of reading music has dwindled. Even most upper level schooling depends upon software to make the school work as efficiently as possible. With such prevalence of software in our daily lives, I think the basic principles behind the software should be taught in schools, and with this will come all of the other benefits. The art expressed through programming will be available to a larger audience than before, connections created through empathy will increase between developers and users, and above all, critical thinking skills will easily improve in students who miss this vital part of education from their other subjects.
With the way the public school system currently operates, I feel the addition of programming to the curriculum would greatly improve people’s understanding and appreciation of software and computers. The connections made between people through programming’s art form will increase because of the curiosity created. Last, critical thinking skills, which are vital to be a productive member of society, will greatly improve.