This post is in response to Stephen Hay’s post Put the “designers should code” debate to rest.
First of all, I think the big answer is that designers should code more. To truly design something is to consider all aspects of the subject: use, misuse, ethics, aesthetics, and so on, but definitely including the media. The implementation of an idea is bound by (as in, limited to) one’s understanding of the chosen media.
Therefore, one can not design something for the web without coding. This is beyond argument to the extent that it’s all code when a computer is being used. To say you ‘design for the web but don’t code’ parallels a painter who paints but doesn’t understand (and therefore cannot intelligently apply) principles of viscosity and solvency; just because you have a finished product in a certain medium doesn’t mean you understand everything about that medium. Designing something as opposed to just making something) necessitates expert understanding of the medium. Anything less means that your product was poorly designed, in other words, not actually designed.
Consider the well-tempered clavier; this piece was well designed because of the composer’s expert understanding of the media: the notes as well as the instrument. Written 100 years prior, this piece could have only been an interesting study in ‘what might be’ if the music could be played in one sitting on one instrument.
The more code a web designer knows, the less his expressions are limited, and the more those expressions can be realized. This also means that ideally, a programmer needs knowledge of graphic design and art history.
This becomes an extension of the full-stack programmer argument. Being versed in the full stack is a start. As long as the presentation medium is the web, a web designer’s stack should include visual representation, just as a writer on the web’s stack should include character encoding knowledge and a composer on the web’s stack should include music markup.
The logical extension of all of this is that one’s sphere of knowledge should be ever-expanding. Although the danger to this is a spiral of DaVincian lack of accomplishment due to learning new fields, the alternative is thinking you already know enough. Try to learn everything and be as full stack as you can be.