How computer science is exactly like any other creative discipline

Turns out English, Painting, and Computer Science are not that different after all, and it will completely change the way you write code

Cole Agard
Towards Data Science

--

Photo by Riccardo Annandale on Unsplash

Some of my fondest memories of my freshman year in college were the late-night conversations had in random dorm rooms, shifting locations every week but ever-present within the chaos of classes, social life, and tight schedules. I remember one of these talks clearly, as the topics discussed completely reshaped the way that I thought about the differences between liberal arts and the sciences.

It was an unassuming Thursday night, and one of my fellow computer scientist friends had invited me up to his room for some food and to work on a project due the following Friday. I hobbled up the stairs and entered a room with five people in it. Immediately I knew no more homework was being completed that night, and I took my seat on one of the bottom bunks in the tiny room, awaiting an interesting conversation. Now, when you introduce yourself at any college, there are several conversation topics that will be brought up within the first five minutes. These are your name, your major, where you are living, and what you are getting up to this weekend. With this particular group, all of these were brought up immediately. The spread of the room was one English major, one Film major, two Computer Science majors, and a Graphic Design major. It sounds like the start to a bad bar joke, different parties from all walks of life walking into a bar and some mishap occurs while ordering the drinks. On this occasion, things went a little differently.

The conversation was halted at first, as one of the first things that I learned in college is that a large majority of your friends come from who you take classes with and live with, and the first sorts people almost entirely by major. Conversations revolve around homework, projects, and the dreaded midterms that everyone within each discipline shares, it's easy. Comfortable. On this night, however, there were none of these familiar topics to fall back on, so we began the rigorous path of finding commonalities between all of our walks of life, comparing hobbies and traits that we all shared to find some common ground. All of a sudden, in a lull of conversation, the graphic design major asked the group, “What is your guys’ creative process?” With this one question, my preconceptions about Computer Science shifted.

I was always under the impression that science was a purely logical act, attempting to remove the mystery and creativity from the phenomena of life. As everyone compared their process, however, the English major outlining the writing process and the horrors of writer's block (horrors which I am experiencing with this article), the graphic designer not being able to do that one thing that he sees so clearly in his mind but can’t figure out how to do in Photoshop or Adobe XD, I realized that computer science is an inherently creative act. While flushing out a solution to a data structures problem, the same process is applied to find a solution as a writer would use to flush out the thoughts in their mind to paper, or a designer would use to commit their imaginations to the canvas, or a filmmaker to the big screen. The only difference is in the tools used to commit thought to medium.

You, the reader, are probably reading this with horror at the garish oversimplification of this statement. But, I encourage you to look at your own career, or passion for that matter and see how you implement your creative process. This process led me to become a much better coder and a much more creative problem solver along the way.

Before this realization, I treated computer science as a one tool discipline. There was a problem, and there was one predefined method for solving it. This is not true at all, and I was drawing myself a box that was stifling my ability to create. When I started thinking about code as a medium for the creative thought process on which I committed my personal creative problem solving, I opened my mind to solutions I didn't even know were there. Code isn't the end goal of solving a problem, but the tool by which one can use to create one solution out of the infinite array of possibilities. I embarked on a journey to turn computer science into an art form with all the technique and intent that a painter, writer, designer, or any other creative would commit to their work.

How I changed my coding style to reflect the creative process

With this insight, I began to alter my own workflow to take advantage of the creative process. Just as a painter knows what each brush in his brush bag (I don't know what they are called please forgive me) does, I began to learn the form of coding: learning when to use for loops versus while loops, places where I could trim a condition using some creative array construction. Just as a writer would not ramble to convey a point that only takes a sentence to convey, I would go through my code and eliminate redundancy and unnecessary verbosity. Like a graphic designer who wouldn't hand draw ten thousand lines that could be drawn by a program like Adobe XD, I learned how to use tools like Pycharm and Unix Terminal to expedite my workflow.

Along with the benefits of the creative process, there came with it the same downfalls: code-writers block, endless errors, and lack of inspiration. To solve these pitfalls, more insight can be taken from the creators of all fields. For code-writers block, moving on to another section of code and then coming back allowed for a fluid transition that would minimalize frustration. For the unsolvable errors and lack of new ideas, inspiration from others on Github, Stack Overflow, and Reddit allowed for new ideas to be infused into my workflow, also allowing me to pick up some new tricks along the way.

Just as a creative would look to the masters to learn their craft, I looked to the masters in the computer science field: Linus Torvalds, David Patterson, and others to not only look to their projects, but to their style and technique, how they put their creative minds to the terminal to solve a problem.

With all of these changes, and reevaluating my own creative workflow, I have not only become a better developer, but I have developed my own style and tendencies for the development process and found joy in it. Just like a writer or a designer, the process by which the infinite possibilities of a solution are whittled down by the creative process can be refined and become a joy to partake in. No matter what discipline you are in, it never hurts to realize that your discipline isn't all that different from everyone else's. Go and create!

--

--

I am a computer science student at the University of California Berkeley, and I am currently working for Openeye Scientific as a Data Science intern.