Programming & The Myth of the Art Degree

Sure, But Can You Code?

Posted by Vance Feld on September 19, 2015

Waring: This advice is probably for 1% of you who are naturally good at technology and possibly programming. You want a career in software and you enjoy doing it in your free time. If this is you, you may stand to benefit greatly from studying a subject deeply that is not CS/Engineering. Some of the best developers I know came from non-programming academic studies. For the other 99% of you for whom technical skills don't come natural or are not self-taught, this is probably terrible advice.

I'm a software engineer. I've worked for both Fortune 500 companies and startups. Once and a while somebody asks me, "Really? you were an art major?" Look, Just because I have an art degree from some liberal arts college, that doesn't mean you can dismiss my engineering skills. Sure, ignore me because I'm too old, or because my pants are too small, but not because I studied the "wrong" thing in college. Would a CS degree have prepared me better for a career in software?

Here's Mitch Hedberg describing how one is expected to have skills outside of their specialization.

Quite to the contrary, it was my art education that made me a better software engineer. I've hired software developers with a Masters Degree in computer science who couldn't make a UI to save their life, let alone create a full-stack, multi-device application from the ground-up. Yes, I was an "art major" but since then I have built enterprise apps from scratch and once ported a physics engine from C++ to Javascript and then parallelized it using an experimental OpenCL browser extension for Intel--But I don't think I could have done it without my foundation in Art. Just look at any of the examples here, or here and you will see that function can also follow form; at least the two may be more intertwined than one would assume.

Visual dialectics play a large role in creating a software product. Most software planning starts with wireframes (projects large enough to be considered a product or solution), the equivalent of a functional sketch. There might not even be a UI, but the interaction of data or sequences of processes may be represented as well. These in and of themselves have their own motifs, vocabulary and assumptions. Having visual deconstruction skills can help immensely in creating good mockups and interpreting them in a team context.

Motion design may not be something one fist thinks about when it comes to software, but gestures, transitions, unfolding and showing or hiding information is tied directly to how humans process information visually. While not every art student is interested in animation and film, most programs will require some courses in this area. I've directly translated skills in animation to programmatic behavior, and vice versa, applying programmatic motion to artistic animations. But I feel like traditional animation concepts such as squash-and-stretch and easing have helped massively in terms of creating programs that live up to art directors expectations. Even film studies such as montage theory and sound design have helped me create more engaging software that tells a story.

Sculpture probably doesn't come to mind as being to useful for (software) engineering, but having a 3D vocabulary and abilities to sketch in 3D (and in 3D modeling software) have given me enormous advantages when it came to learning 3D systems like Web/OpenGL/DirectX. Also, there is a fine art of installations. Some of my early work involved very site specific engineering; motion tracking cameras, stage tracking and multiple screens of different shapes and configurations that had to synchronize, or in some cases, represent within the images 3D spaces that played off it's surroundings. Having actually built installations and going through the motions of orchestrating physical installations probably gave me the leg up in a few of my early interviews. I understand that one could get the "sculptural" part from engineering courses, too. It doesn't preclude it.

Ultimately art is communication. Developers with successful careers will attest that having people skills is just as important as technical skills when it comes to working on projects. Projects are made by people, day by day. I, too, almost missed the point of art critiques thrust upon me year after year. I thought they were to make me a better artist. In reality they shaped me into a more conscientious human (though my girlfriend may disagree). Critiques were not simply lessons in aesthetics, they were visceral lessons in emotional arbitration, patience and constructive criticism.

Add academic pressure to top it off... In critique, you learn who's sensitive, who responds better to humor, how to communicate your quarrels about a placement decision without insulting classmates personally. You learn to think on your feet, but also learn how to speak with empathy and treat everyone as intellectual peers, even if you disagree. Art class isn't like biology class where you're either right or wrong, it's subjective and it's close to people's hearts and inner voices. Navigating this territory without insulting and also being able to take criticism is essential. While we are still our own worst critics (and should be) it always stings more coming from somebody else.

There was no "turnaround." It is precisely the critical thinking and visual vocabulary from the intensive art critiques, writing and researching art and the struggle to produce something new that propelled my career. That and a lot of self-teaching on the side. I did not learn programming for it's own sake though, I learned to help me create new and surprising art. My first forays were scripting within Aftereffects to add mathematical, sinusoidal motion to layers, later I did the same in AS3 and eventually JS. The desire for engaging interaction is what has driven the entirety of my career. I can and will do the most boring database/infrastructure/devops work just to make sure I can still push pixels around.

I've always been kind of a lousy graphic designer. If any of my early websites still existed, you'd see that they were stunningly 3D, or very realistic for their time, but complex, and unnecessarily 3D, complex and stunning. Sometimes stunning is not what you want! After years of working with designers I can see why the average engineer may want to just stick to the engineering. The visual training and visual awareness has given me an added ability to work with visual directors and designers to carry out the vision. Now that I'm building my own projects again, I can use the sensitivities I've learned from working with graphic designers to be my own designer (and not suck horribly). If you only focus on the engineering, you might lose sight of the cultural implications or never quite be able to make a product entirely on your own (which has it's own rewards).

I've heard plenty of arguments for and against studying computer science or art. From "my parents won't let me go to art school because I won't make a living" to "My parents don't want me to study computer science because they think I will become a pervert or a hacker," the arguments on both sides are numerous. Perhaps less extreme is that CS is a trade and not real engineering, or that art is no applicable in the real world The truth is, only three things matter:

  1. Do you hate giving up?
  2. Do you like to solve problems with reason and logic?
  3. Do you need to surprise yourself?
    1. I can't reasonably say if I'd be a better engineer if I got a CS degree or went to art school-- I'm just thinking about what I gained from studying the arts and how it might be applicable, in real terms, to my current career and how anyone considering studying art needn't be afraid of becoming "useless".