Do designers need to know how to program? I’ve gotten this email a few times and have been asked about it when interviewing for jobs in some form or another. The short answer is yes, for an interaction designer writing code is just as important as pushing pixels in Photoshop and maybe more so. I am not talking about writing heavy back end code, regular expressions or CRON jobs, I am just saying that a designer should know how to make their design actually work.
First, let me point out that I think the 20 different names for “designer” on the web are a joke. User experience design, interaction design, user interface design, web design, etc. are the same. The end goal of each is to create a website that is easy for people to use. That said, web design is not graphic design - a graphic designer (in my view) is generally someone who is “classically trained” who does design for design’s sake without much thought for usability.
37signals actually avoids Photoshop and does their mock ups in HTML, CSS, and JavaScript. This is obviously an extreme case and their design style allows for it, but it is an interesting idea.
If you look at the job listing for a Facebook product designer they insist their designers be fluent in CSS, HTML, PHP, and JavaScript so that they can prototype their designs. Those four languages are what make designs interactive, they are what determine how a user actually interacts with a page. Photoshop can only do so much - at some point mock ups should be interactive to allow for feedback on behaviors of links, buttons, menus and other elements of a page.
My personal process involves mocking up a loose version of a design in Photoshop, more for myself than for anyone’s approval, before beginning the code. A pixel perfect mock up in Photoshop is an oxymoron - the design is going to change when you move it to code. Content is dynamic, constantly changing, constantly moving - no graphics program in the world can account for that. Most of the detail work I do stems from me seeing a need for it in my design to highlight content or make a call to action more obvious, not out of a desire to make things “pretty.”
My official title at Bleacher Report is “User Interface Designer” - turns out, I spend most of my time in TextMate (thanks RescueTime!). Why? Because the things I do in Photoshop aren’t particularly useful is they never move out of Photoshop. Engineers have bigger problems to tackle than wondering whether a class or an ID is appropriate for a given element.
What about front end engineers? What about a graphic designer? Those jobs have their place, but in general it is a bad idea to separate design and code. A designer who doesn’t understand what it takes to implement an idea, or worse yet has an idea that isn’t possible, is useless. “But anything is possible, Ben!” I agree, as long as you have unlimited resources; otherwise, you need to make sure designs are usable and practical to implement.
{ 1 trackback }
{ 6 comments… read them below or add one }
I wholeheartedly agree with you on this point. Although 37Signals do have a bit of a special case and Facebook is a large platform it is important for designers to understand how things will actually be implemented.
Whilst you can spend all day playing around in Photoshop, you cannot get a feel for how a user interacts or understand the current limits of what can be done in an affordable manner.
You can argue than anything can be done, but generally it is not affordable to spend hours implementing an over complicated link scheme - especially where clients are paying the lowest possible and even more relevant when you are dealing with small businesses which often do not entirely understand the web.
I have found it odd that designers like to argue over whether or not they should be able to code, but I feel that it is the nature of the internet as a whole to be progressive and not stand by what you know. So designers should be learning more, on a macro scale it makes them worth much more.
Nick
Of course I code!
I don’t do code. But people buy my design (mockup) for their websites.
I definitely code. And I think I’m one of the few designers who’s been in this for a while (10 years) who makes only a very abstract mockup before tackling some of the technical issues. No sense getting totally attached to a pretty picture before we see how the content and the tech requirements are going to interact with it.
From then on I work back and forth between my source files in Fireworks (which I really do prefer for web graphics) and the site files in Dreamweaver. I run the latter in “split view” — half code, half design preview –which is a nice metaphor for the kind of vision web designers really need to have.
I think it is inaccurate to say that a ‘classically trained’ graphic designer designs for design sake. It is still about presenting ideas and information via visual communication, be it a logo, magazine page etc. It’s like saying a copywriter writes for writing’s sake. Who’s paying these people? Perhaps a ‘fine artist’ who paints for paintings sake would be more accurate.
Now as for web ‘designers’ knowing how to use HTML, CSS, PHP and Javascript. I think it is great if they can do this but IMO they are different skills sets. I design websites and work alongside developers to make sure they work. Knowing how to write code in multiple programming languages and being someone who can make something look visually appealing are not often the same. Hence the reason so many designers ask this question.
I do think web designers should know HTML and CSS. But are programmers asked to design? Maybe, but I know many developers and none of their courses discussed color theory etc and most could not design to save themselves (nor should they). Why are they not asked to learn this?
I agree that a certain level of proficiency in both areas comes in very handy, however my primary skill set lies within the code, I can use Photoshop to get done what I need to do if something takes editing or changing but to be quite honest I am not a graphics designer nor do I wish to be. I personally prefer to get a graphical “mock up” of my desired design and then I start coding it using notepad++ then I will do what is needed graphically in photoshop to tweak or alter it to work as desired with my code. I think there is something to be said for specializing in your field, if you are a graphics guru stick with that, if you are a code wizzard stick with that.. its all about doing what you are good at. Ever heard of the term jack of all trades, master of none?
Also, why do you have a link to your wp-admin in your footer? :-p