adventures in making stuff with Daniel Higginbotham

Encouraging Programmers to Learn Visual Design

23 May 2012

Below is a talk I was asked to give at work.

In any case, I'm going to talk about why you might want to learn more about visual design and how it's pretty similar to what you already know as programmers.

From a professional perspective, you won't necessarily advance your career by learning visual design. Programmers have done fine without knowing about design. So why should you care?

I think that visual design is worth knowing because it enriches your life. You see the world in a different way, and you learn to communicate more expressively.

Design is everywhere. It's everywhere! And in design is someone's attempt to communicate with you or to affect you. I mean, we're in New York City. Walk one city block and you'll be inundated with design. This is an entire language being spoken around you, and you can learn to understand it.

Learning design gives you more tools to be expressive, creative. Probably many of you had this experience when you learned Ruby. This is so great - I can go from idea to implementation in a way that's more elegant, more beautiful.

Wait. More elegant? More beautiful? Those sound like design terms to me. The truth is - most programmers shy away from visual design because of what they see as its subjective nature. Its aesthetic nature, I should say. When you're doing visual design, you're concerned with the viewer's aesthetic experience.

But aren't we concerned with aesthetics in programming, too? Don't we strive to create beautiful code? Matz designed Ruby to maximize programmer joy, for crying out loud. And if you look closer, there are more similarities.

In both visual design and software design you care about frustration. In visual design, you care about reducing the frustration of your users and you do this by supporting their visual brains. You use techniques that allow users to easily digest the information you're communicating. You use existing patterns like buttons and top navigation.

In software design, you care about reducing the frustration of the people who have to use and maintain your code and you do this through your use of language and, sometimes, diagrams. You try to name things well and use existing patterns like Decorator or Observer or Singleton.

So you're actually not too far from speaking the language of visual design. What you're missing is the vocabulary and the experience. There are plenty of resources out there to help you develop your vocabulary, of which my site Clean Up Your Mess is one. What remains is for you to gain experience, to try to design things yourself.

I hope this talk encourages you to do this. I think you'll find that learning design brings you rewards beyond your job, beyond web development. You'll find that it opens up more of the world to you. You'll find that you've become part of a conversation that has been going on for centuries.