A debate that I see pop up every so often is “should designers know how to code“. If you Google that, you can read all the blog posts for both sides. Here’s my answer to that question:
Why not?
I know, it’s such a cop-out answer. But really, it’s up to a designer to decide if he should or not. Do you want to learn new stuff? Do you want to keep up with technologies? Do you want to understand how developers are going to implement your design? Do you want to understand the platform for which you’re designing? If you answer yes to all these, then yes, you should learn some code!
Being able to prototype designs in HTML and CSS (even if your final product isn’t a website) helps you to understand your designs better than static Photoshop mockups. Adding interaction with Javascript makes it even better. Prototyping your designs, whether in HTML or Flash or even Java, is so useful because it allows you to see your designs in action and help you iterate on changes if necessary. Of course, I don’t expect every designer out there to go learn Java or Xcode or whatever other language, but if you can and would like to, then do it!
One argument that I’ve seen (and actually heard at work) is that designers should provide the best-looking design possible and not think about whether it actually can be built (because that’s the developers’ job to figure out) and that if a designer knows his limitations, he won’t be able to create truly ground-breaking designs. I’m guessing that those people are huge fans of Frank Gehry. Frank Gehry is the architect behind such amazing buildings as the Stata Center at MIT and the Guggenheim Museum in Bilbao, and the Disney Concert Hall in LA. Gehry really pushes the envelope in coming up with ways to mold building materials into organic shapes that aren’t typically done in construction. I saw some photos of his design process, where he actually made sculptures out of pieces of paper which were then 3d-scanned to figure out how they could be constructed. This process was even joked about on the Simpsons! I admit that it is refreshing to see such creativity in architecture, but there should also be a balance between what looks cool and what is functional, otherwise you may end up with a hard time constructing it right and a lawsuit on your hands. I’m not saying we should just be boring and only design what we know is possible. I think the more we learn about what is possible can help us to create designs that are not only interesting, but actually work.
There are a couple of arguments (here and here) against designers who code that are, interestingly enough, written by people who are actually designers that code. It makes me wonder if people are pushing others away from doing something that they have seemed to specialize in doing, in order to make themselves more special. I think if you are a successful designer who codes, you should encourage others to do the same. If people can learn to do both and be good at it, why discourage anyone from trying? I happen to be a designer who knows some code (although, it’s still to be determined if I’m successful at it :P), and I highly encourage any designer out there to at least learn HTML/CSS/JS…you won’t regret it. It’s much easier as a designer to learn the basics of coding rather than to be a coder trying to learn the basics of design.
There is really only one downside to being a designer that can code (and it’s not that you’ll dilute your ability to design, that’s ridiculous), but I’ll leave that for next time.
I’m hoping that for designers coming out of school today that this isn’t even a question – HTML, CSS, and Javascript are just some of the tools that designers will use going forward. I went to design school during a transitional time (1993 – 1997) when some of the old guard at the school still resisted computers and wanted students to do as much with paper, pencil, darkrooms and french curves as possible. While I appreciate the focus on the process vs. the technology that this style of teaching emphasized, I can’t help but draw parallels to today’s designers clinging to Photoshop and resisting the new tools that will one day be the standard. Imagine being a designer today and saying “I don’t use photoshop, I do everything in photo-static mockups I make in my darkroom”. I think the same thing will eventually be said for anyone who says they are a web designer but doesn’t know at least the rudimentary aspects of coding.
You are 100% correct.
If two designers go for a job. Designer 1 is excellent at visual design, but doesnt know anything about code. Designer 2 is very good at design (not as good, but good enough) and knows how to build and prototype what she designs = Designer 2 wins every time.
Its like when Graphic designers (for print) design sites that are impossible to build, or just don’t work as intended (because they didnt understand the limitations of using a grid etc.) I mean you wouldnt be expected to work as a graphic designer if you didnt know how to use a computer or Adobe software would you?
Hi! Thanks for picking up that discussion 🙂
I’d just like to clarify one thing, about “[Are] against designers who code”: I’m not against designers who code. I’m against designers and coders that say things like: “a designer that can’t code shouldn’t be called designer”, and nice things like that. 🙂
Because you can have excellent designers that are impressive specialists and know very well how to work on the web without coding. You can have excellent designers that can code as well. You can have also designer hybrid with other things that aren’t coding, maybe copywriting, or marketing, or business strategy, or psychology, or social psychology.
For example: I’m sorry @KTdesigner but “Designer 2 wins every time” is false. A designer that can code has some advantages in some scenarios, but in others a designer that is excellent in design is preferred.
Plus, as I said before, it’s not binary (heh)! There’s not only “design” and “code”. First of all, there are LOTS of specializations even within design (IA, workshops, interaction, visual, …), plus a whole other set of VERY useful specializations other than “code”: copywriting, marketing, business strategy, psychology, social psychology and so on. All of them, might be a better professional in some companies, and a worse professional in others.
Plus, as I wrote in the article, there’s a huge difference between “know what code does” and “know how to code”. Pairing designers and developers isn’t an option, on the web, exactly like having engineers working with architects isn’t an option either. 😉