Cover image for How Art School Prepared Me for Programming

How Art School Prepared Me for Programming

annarankin profile image Anna Rankin ・4 min read

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.

Posted on by:

annarankin profile

Anna Rankin


Educator, software engineer, and lifelong learner.


markdown guide

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!


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.


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 :)


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 💥


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


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.


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.


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


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


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.


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


“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.



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


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.


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.


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


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.


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!


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.


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!


Great Article.

Being an Art School Grad myself, MASS COLLEGE OF ART '98 BFA Painting.

All these years and different types of jobs later, the big take away is: I'm passionate about what i do and i have the ability to think in abstract terms about problem solving.

Art School taught me how to learn about things and ask better questions. Being forced to consider the questions you created in a drawing or painting can be an introspective and challenging process. That ultimately gave me a way to generate and scrap ideas with out flinching.

In my daily work, i find this is of the greatest value and i cherish it. Thank you for posting this, it helps to read the thoughts and experience's of others.

one other thing: Art School taught me to
'paint until all of the critics leave the studio'
'paint until all of my peers leave the studio'
'paint until my mind has left the studio'

today i spend most of my free time (outside of my wife and kids) coding while everyone is asleep and taking all the free time i can to enjoy it.


The parallels between pixel art and documentation are 🔥

Oh, also, one of my big takeaways form art is thinking about breaking things down into simple details and reassembling those pieces. This made anything seem reproducible. Like, I still remember as a kid when I realized that a horizon was just a line across the page. It was a breakthrough.

I feel kind funny when I say “I‘m not a designer anymore,” and not because I was a designer for 10 years, but because I approach the structure of my code with the exact same “design thinking.” There is no one way to code something, and the decisions I make on how to write something, how to name something, how to build a component, can have a huge impact.

Man, that drawing class! I think I would have rather burned my work than erasing it. I love delete my old code though!


Oh, also, one of my big takeaways form art is thinking about breaking things down into simple details and reassembling those pieces. This made anything seem reproducible. Like, I still remember as a kid when I realized that a horizon was just a line across the page. It was a breakthrough.

Omg, absolutely! I love those moments where everything just makes sense. I totally agree - art is a great way to learn how to break it down to build it back up ❤️


Love hearing about others who studied art and are now working as a developer! I switched majors from engineering to art, graduated with an art degree and then went right into web development. The most valuable thing I learned while in school was actually from an intro to drawing class, where the professor would walk around the class saying “remember, general to specific” what seemed like 100 times per class. At the time it drove me crazy, but now every time I get caught up in a tedious detail I can hear her saying “General to specific” and it forces me to move on 😊. Sure, it shouldn’t take a 4 year degree to learn that, but it definitely stuck with me!


Hahaha I know that mantra! I found it annoying at the time as well, but it feels just as applicable today as it was then 😊 Thank you!


I can relate to this very much. Sometimes I feel stuck between technical brain and artistic brain, but then realize, it's all the same! It's all about creativity. Probably why I flipped flopped a lot in college and even still in the dev world :D Thanks for this post Anna!

(Also, I'm dying to learn pixel art...just bought Aseprite!)


Oooo I'd love to know how you like that program! I've been tempted myself 😀And thank you - I agree, it's awesome to have that flexibility 💪


For me, a long time "artist-to-be" and also a developer-to-be, this post was so important for both sides of me. I can not say how this whole thing motivated me.
I am really thankfull :)


Awesome, I'm so glad! 🤗


I'm glad this resonated ❤ it's nice to know there are others out there