Original Post (2011-08-31)
A blog post yesterday from the respected Frank Chimero ignited a lively Twitter discussion about the designer’s relationship to code. Some feel strongly that basic knowledge of HTML and CSS is essential for a designer in this day and age; some cling to the idea that a designer’s job is to make things pretty and the nuts and bolts of how that pretty thing is built are of no consequence. I’ve got an answer to settle all the 140-character arguing.
Ready? Here it is:
“Should I learn how to code?”
“If you want to.”
Really, it’s that simple. This question is -no- little different from “Should I learn how to screen print?” or “Should I learn how to bind books?” Basic coding is a skill that will allow a designer to produce something he or she has designed, which is an immensely rewarding experience, but is in no way essential to the design process. Will knowing HTML and CSS make you a better designer for the web? -Almost certainly, but no more than knowing how to coat, expose, rinse, and pull a screen will make you a better poster designer.- We learn about how to design something by using it, not by building it. An avid reader is better suited to design a textbook than a bookbinder. If you’re reading this, you’ll probably visit and use dozens of websites today — most of us interact more with screens than printed material on a daily basis. Assuming you’re constantly analyzing the world around you for the basic principles of design, and you should be if you call yourself a designer, I say you’re qualified to design for the web.
I know how to develop websites. Once, I even coded a website that accidentally worked perfectly in IE6. However, at Friends of The Web HQ, I am surrounded by far more capable and speedy developers, as any designer working for a decent sized company or studio will be, so I haven’t touched a single line of code since I graduated.
Incidentally, in my experience, most real developers don't want your “designer/developer” slashie code anyway. It doesn’t matter how many articles you’ve read on A List Apart or how long you’ve followed Jason Santa Maria on Twitter; your code is probably mediocre. But don’t worry, it’s not your fault. Being a good developer and engineer is a full-time job, not a side-dish to your design career.
Yes, there are exceptions. Jonnie Hallman, one of my earliest design role models and now a close friend, is a designer/developer that consistently puts out clean looking, smartly engineered apps and websites. However, I am sure even Jonnie would admit that in order to keep his execution on par with is discerning standards he spends the vast majority of his time and energy wearing his developer hat; design is the cherry on top. Phenoms like Jonnie are the exception, not the rule.
Why this is so Important
I am definitely not trying to discourage designers from learning how to code if they want to. Just as Jonnie designs and builds his own apps and Chris Muccioli designs and prints his own beautiful posters, you too can design something and bring it to fruition. I recommend doing it at least once.
However, I think it is dangerous and misleading to say that coding is an essential skill for a designer today. As I have discussed previously, one of the most apparent issues in design education to me right now is the deficient excitement around web and screen based design. The “designers need to know how to code” attitude is largely to blame for this. To some of us, code is meditative, logical, and beautiful. However, to most designers and design students, code is confusing, boring, and frustrating. This will probably never change.
I worry that posts like Frank’s, which perpetuate the myth that you have to know code to design for the web, are pushing students away from screen-based design. The Internet is an exciting and powerful medium and people should be jumping at the chance to design for it, whether they understand code or not.
Besides, breaking the rules is how we get progress. Think wrong.
It's been over a year since I originally wrote this post, and with exception of the things I've struck through above, I still feel largely the same. I still don't write any code at Friends of The Web, and I still think it's dangerous and single-minded to say that all designers for the web must write code.
That said, I have not stopped thinking about the subject, and after participating in the first inaugural Designer's Debate Club this past Thursday, discussing this precise issue with some brilliant minds and imposing personas, I have more to say.
I believe we are at a critical moment in the development of design. Designing for the web is fundamentally different than designing for any other medium due to its interactivity and foundation in time. When studying user experience, interaction and time are the most important components, more so than composition, typography, and all the other things we designers are traditionally good at. Some of the philosophies that have always guided us do not apply to this new medium, and more significantly, there are a whole new set of philosophies to be created and explored. One of the reasons I am so drawn to designing for the screen is because everything is in flux. I personally have trouble simply identifying things I believe to be successful in this new language, much less why, and this is both frustrating and exciting to me. There is much work to be done.
The charge of any designer working on websites, mobile/desktop apps, or web-based products is to figure out a way to work in this new space and break out of the trap of designing these time based mediums as a series of still frames. Despite all of Adobe's efforts, our tools remain behind the times and ill equipped for this challenge. We are forced to hack solutions together. Edenspiekermann uses Keynote as a design tool, others use combinations of Photoshop, Illustrator, Fireworks, pen and paper,