DEV Community

Cover image for How Art School Prepared Me for Programming
Anna Rankin
Anna Rankin

Posted on

How Art School Prepared Me for Programming

At the startup where I work, a lot of my coworkers in the engineering department have great stories about where they came from - organic chemistry, education, computer science, publishing, data, etc. - the list goes on. My personal experience before transitioning into software was in traditional illustration: mostly pastels, oils, and acrylics.

While I don't normally catch flack for having a non-traditional background, I know a few folks who associate art solely with emotional expression, and technology exclusively with math and logic. I'm of the opinion that programming is as much an art as it is a science or a utility. In that vein, I wanted to share a few lessons I learned in art school, but use in my job every day.

You can often communicate better through abstraction.

When I mention "abstract art," a lot of folks bring up Jackson Pollock, Mondrian, or some of the more "out-there" (read: usually cubist) works of Pablo Picasso. Personally, I'm really digging this quote I saw highlighted on Mondrian's page (linked above):

"I wish to approach truth as closely as is possible, and therefore I abstract everything until I arrive at the fundamental quality of objects."

That idea is extremely appealing to me as a developer - the idea that I could strip away all the unnecessary details in a project until only the bare, beautiful, unconvoluted minimum remains. The less code there is in a project, the cleaner the lines of the whole; the simpler the shapes, the less muddied the colors. This doesn't mean there's a "right" number of lines or characters or methods for a project to have; only that I strive for elegance through simplicity (actually achieving that admittedly lofty goal is another matter 😁).

As a pixel artist, I think about abstraction a lot - how much detail can I take away before my doodle becomes unreadable? What's important to include? I ask the same questions when I'm designing an interface for a class or when I'm writing documentation. I think (a lot 😳) about how much flexibility to allow for - how much configuration is too much? Not enough? How much complexity can I abstract away while maintaining the functionality and usefulness of a service? Documentation is hard, too - distilling nebulous chunks of shared and individual knowledge down into a manageable set of bullet points, examples, and/or diagrams is an art form all its own.

The same concept holds true when you're trying to explain something verbally. Choosing the right level of detail for your audience - whether it's your co-workers or a class of programming newbies - allows you to communicate with them clearly.

We sometimes talk about libraries or workflows as "black boxes" - I think this is a valuable tool and a great abstraction for working with beginners as well as experienced folks. It's nice to remember sometimes that we don't need to know how everything works right now - we can give ourselves the luxury of tighter focus on what we're doing.

Don't be precious with your creations.

There's a story that circulates through the students and alumni of my alma mater of one instructor's particularly challenging drawing class. For an entire semester, students work in pencil on paper, drawing the same model in the same pose for six hours a week. They pour their hearts and souls into this drawing, obsessing over light, form, and subtle gradations of shadow for months. At the end of the class, after a group critique, the instructor gives his final instruction:

"Erase it."

After all that hard work, the students rub out every painstaking pencil stroke until their papers are gray and featureless. Some call it cruel (I won't say it's not, honestly), but it teaches a very important lesson in an indelible way. Don't be precious with the product of your work - the important thing is that you did it. You've learned from the experience and (as the instructor would say) - "You drew it once, you can draw it again."

This idea has served me well in my work as a developer, from being critiqued in code reviews to seeing thousands of lines I wrote deleted from a project all in one fell swoop. You'll hear folks say "You are not your code!" and it's true! The amount of amazing (and sometimes bizarre) knowledge I've gained from my past work is invaluable to me regardless of where it lives now. When someone points out a strange pattern or opportunity for improvement in my work, I have no compunctions about erasing my old "sketches" in favor of a better solution.

Dissatisfaction with your work is a sign of developing taste.

This one is very close to my heart. When I was in art school, I noticed a pattern in how I felt about my work:

  1. I'd work really hard and create some pieces I was super proud of.
  2. I'd see the amazing work that my peers, mentors, or even famous artists created and start comparing my own output to theirs.
  3. Cue depression and dissatisfaction with my own work - everything I'd done before was childish and crude; my hands weren't capable of creating what I saw inside my head.
  4. After days/weeks/months of struggling with my own skill level, I'd start to create things I was proud of again.

This probably sounds familiar to anyone who's learned how to code - at least, it was common among my students when I taught web development. One of my drawing teachers told me that taste and skill develop at different speeds, and at different times. If you can't see the flaws in your work, then you probably need to refine and develop your skill further. If you feel that what you've created is lacking, then your level of taste has simply progressed beyond your current level of ability. Thinking like this has helped me deal better with doubt and (mostly) fend off the dreaded impostor syndrome.

Thank you for reading! If you've got any other stories of lessons you brought to your tech job from a seemingly unrelated field, I'd love to hear them.

Top comments (28)

Collapse
 
cat profile image
Cat • Edited

I love this:

Dissatisfaction with your work is a sign of developing taste.

I had a conversation with a renowned cartoonist who said

"If you look at what you've done and you're 100 percent satisfied, you've failed as an artist because you aren't growing. But if you take that dissatisfaction and let it fuel you instead of deter you, you'll be able to keep going.
Don't be afraid to fail or revise."

I came from a more art-related background as well!
I'm still a licensed cosmetologist (hair, makeup, skincare--the works) but not practicing. However, I apply what I learned when we were getting ready to work with real clients to design and developer problems and concerns I run into today:

  • Always ask and clarify their wants, needs, and goals
  • Find the balance between their wants and what could be done in reality and present it in an easily digestible manner (i.e. a certain eyeshadow color does not work for their skin, present other shades of color that match closely to the eyeshadow requested, but are more complimentary-- swatch the requested color as well as alternatives.)
  • Give them a realistic timeline for their goals (i.e. acne skin will take a few months to start noticeably clearing up so they would have stick to a regimen)

Wonderful read. Thank you for sharing!

Collapse
 
annarankin profile image
Anna Rankin

Thank you so much for your thoughtful response! That cartoonist has it 💯percent ❤️It's so cool (and inspiring!) to hear how you brought your client-handling and project management skills into your development career.

Collapse
 
kathryngrayson profile image
Kathryn Grayson Nanz

This really hit home with me! I'm in a similar situation – graduated with a BFA, now doing web dev. There are days when that art degree feels useless – when I feel like I wasted time on it and I wish I could go back in time and study comp sci instead. I try to remind myself that my design education gives me a unique perspective and set of skills that other devs may not have. While not having a formal education in my current field definitely has drawbacks...it does have some perks as well, and this article did a great job of identifying some of those perks. Thanks for the reminder :)

Collapse
 
annarankin profile image
Anna Rankin

Oh man, I totally feel you on that - my dad is a software engineer, and he pokes fun at me sometimes for getting an art degree... then following in his footsteps anyway 😬Sometimes I wish I'd studied comp sci, but I figure we can always learn more! Then, we'll have the combined benefits of our artistic experience and computer knowledge 💥

GO TEAM BFA GO! 😂

(apologies for the excessive excitement, I've just had my morning coffee 😅)

Collapse
 
dmfay profile image
Dian Fay

Art-class critique makes an excellent model for code reviews too! Everyone's trying to improve their craft and rigorously analyzing each other's work so they can do the same so it maps beautifully.

Collapse
 
annarankin profile image
Anna Rankin

Oh my gosh, yes!! That's such a good point! 💯I definitely felt some of the same trepidation that I did in critiques when I put up my first PRs.

Collapse
 
ben profile image
Ben Halpern

I relate to all of this! Artists make amazing devs.

Collapse
 
annarankin profile image
Anna Rankin

Yay! (I think so too, but I'm super biased 😜)

Collapse
 
thecodetrane profile image
Michael Cain • Edited

My background is in music: my undergraduate degree is classical voice and percussion, my masters degree is in jazz studies. I very much agree with the sentiment of this post. There is something to be said about how creating art; taking something from chaos and making order of it.

For me, one of the most useful skills I have is the ability to see patterns in code-where things can be abstracted in a meaningful way. I credit this directly to learning how to orchestrate for ensembles, whether it choir, big band, or symphony orchestra.

Collapse
 
annarankin profile image
Anna Rankin

That's so cool - Literal orchestration! I love the idea of bringing order out of chaos. Thank you!

Collapse
 
inceptioncode profile image
Darrell Washington

“I'm of the opinion that programming is as much an art as it is a science or a utility.” I didn’t even get pass this line. I was stuck on that line for awhile. Like finally someone feels how I feel about programming. It’s a work of art and genius.

I feel it’s like any artwork, in terms of being able to solve multiple problems. Whether it’s emotional, personal, entertaining, or critical it can be solved with programming.

👏🏾👏🏾👏🏾

Collapse
 
annarankin profile image
Anna Rankin

I totally agree! The only thing that really sets it apart is medium. Thank you 😁

Collapse
 
annarankin profile image
Anna Rankin

That's an interesting question! The short answer is "Very rarely." If I made enough sketches of my subject to understand it, sorted out the light/shadow/color palette beforehand and had a good technical mastery of the medium, it went a lot more smoothly - jumping in and trying to complete an assignment the night before was a bumpier ride 😬. I think the challenge is what keeps me trying to depict things to this day.

Collapse
 
holiviel profile image
Holiviel Valdez

Wonderful post I love the way you explained how art help you with your career and you touched the main reason I like software development specially the front end, I can represent whatever I have in my mind and create that in like a digital space, thanks for share your experiences.

Collapse
 
annarankin profile image
Anna Rankin

Thank you Oliviel! I love code as a means of creation 😊

Collapse
 
andrianaart profile image
Andi 👩🏽‍🚀

Oh man does this article hit home...

It took me until very recently to learn how to talk about my non-technical fine arts background in interviews, and how those skills provided any value.

I vividly remember those nerve racking Art-class critiques 😖

But without those experiences I don't think I'd be able to take and give feedback as objectively as I do now. If you can't talk about what you did, why you did it, and how it impacts the system/product/whatever it's difficult to get your ideas sold.

All those formal critiques helped us break down feedback into actionable items. Analyzing that feedback, turning it around quickly into new iterations, without being emotionally attached to the previous concept are skills I wish more people had.

Collapse
 
annarankin profile image
Anna Rankin

Well put! Also, I absolutely agree - the the ability to give and receive feedback objectively is rarer than I'd like in our field. Thank you!

Collapse
 
renegadecoder94 profile image
Jeremy Grifski

I had a pretty similar background in the arts. Most of my life I would have considered myself a musician. Then, I went to college for Computer Engineering and tried to get a Music degree on the side.

Turns out, Music is really, really hard. Back then, I would have rather taken a Calculus exam than sit through another private lesson. Ultimately, I dropped the Music major, but it's still a huge part of my life.

Collapse
 
annarankin profile image
Anna Rankin

Oh man, music is so hard. I have a lot of respect for anyone who can even play an instrument - the discipline and work that goes into that blows my mind. Awesome to hear that it's still a part of your life!