Wizards, Rockets and Exploding Heads: why designers should code

There’s continual debate within the web design community as to whether designers should (or indeed can) write code.

The answer is that yes, designers can code, and yes, designers should.

Why you should code

Efficiency – You’ll work better with developers

If you know how websites are built, developers won’t send work back to you with an apologetic “sorry, we can’t build it quite like this”, because all those carefully considered decisions around typography and layout that you made will have been better informed.

You’ll have more control over the design

A Photoshop comp isn’t a design, its an artist’s impression. That italicised Georgia pull-quote may look beautiful in Photoshop, but it may be almost illegible rendered in Windows. Designs almost always need to be revised once they’re in the browser.

Additonally there are always dozens of pages, elements, fringe-case situations etc that aren’t covered by those Photoshop comps, and someone needs to design them. You might be lucky to be working with a developer with a good eye, but you might not, and micro-managing a less design-savvy developer is inefficient to say the least.

If you can build sites as well as visualise them in Photoshop you will be able to adopt far more flexible design processes. I routinely switch back and forth between designing in Fireworks and designing directly in the browser with CSS. Its a fluid process that works well for me, and I bet it would work well for you too.

Being able to build your own designs, and have full control over every nuance, is a great thing.

Be prepared for the future!

There’s a real momentum gathering around the idea of responsive web design – in a nutshell, websites that adapt themselves to a wide range of screen and device widths, with no fixed layout. For obvious reasons it is very hard to design such sites without taking the design into the browser, and playing directly with CSS.

You’ll be more employable

Being able to design and code means that you will be able to dive in to help out in a wider variety of situations. That makes you a greater asset to any team, and especially attractive to startups, who often don’t have the resources to employer both a designer and a developer. And if you’re freelance, you’ll have a wider choice of gigs.

Why you can code

Some designers feel they can’t code, or that they could but that it would somehow dilute their design skills. Many designers are discouraged from doing so.

All these barriers are based on two myths.

MYTH 1: You can’t do both – they’re a different mindset

There’s a widely believed myth that designers and developers have different mindsets, and that it simply isn’t possible to do both jobs well.

That simply isn’t true.

Contrary to popular belief, using both the left and right hand side of your brains doesn’t make your head explode. It can be done. Many great contributors to culture and science, like Leonardo da Vinci, have done it.

I think its true that some developers can’t design. Design requires an innate ability – without it, all the design principles in the world won’t make a developer a great designer.

And I think its true that there are few designers that can become equally great back-end developers (by which I mean all the really hardcore programming and database stuff).

But I’ll let you in on a secret…

CSS isn’t rocket science

This is rocket science:

rocket science

Pretty damn complicated, isn’t it? You’d have to be a rocket scientist to understand it.

This is CSS

rocket science

‘p’ stands for paragraph. You can guess what the rest of it does, I’m sure.

CSS is written in something approaching English. HTML is pretty straightforward once you’ve learnt it. There’s no logic involved, no calculations, nothing to make your brain explode. You just need to take the time to learn it. Trust me, it feels more like a craft than a science.

MYTH 2: Designing and Coding means you can’t become a specialist in either

When I was a kid I used to play Dungeons and Dragons. In that game, players would choose a profession – a fighter, a wizard, a priest etc. On their adventures players would gain experience points for using their profession’s skills. As they gained more experience, they would become more powerful. A Level 10 Wizard was far more formidable than a Level 1 Wizard, for example.

But you didn’t have to choose just one profession. You could become a fighter-wizard, for example. A fighter-wizard would take longer to progress through the levels, as experience points would be divided between the two professions. It would take a fighter-wizard twice as long to reach Level 10 than a fighter or wizard would. But crucially, they would have the exact same skills and proficiency as their single-profession counterparts when they got there.

If wizards can do it…

The analogy is obvious, and accurate.

Some would argue that if a designer concentrates purely on design for 10 years, rather than dividing their time between design and development, then they’re going to be a better designer.

But I would take issue with that. First, how much better would they be? The more experienced we become in something, the slower our skills grow – there’s a much greater difference in ability between someone with 1 years experience and someone with 10 years experience than there is between someone with 10 years experience and someone with 20 years experience.

I’d also argue that when it comes to web design, that an understanding of front-end development is itself crucial in making you a better designer.

A designer who codes is a specialist

Besides, what constitutes a specialist? I don’t do all aspects of design – I don’t do print design, and I don’t do campaign work – I design interfaces. Similarly, my development skills are concentrated on developing interfaces, not any of the ‘behind-the-scenes’ stuff. I am, in essence, a specialist in interfaces.

I’m at least as specialised as a designer who specialises in ‘design’, working in both print and digital, or a developer who writes both front and back-end code. The only difference is that my skillset overlaps two more generalised areas.

Summary

Being a designer who codes isn’t as hard as some people make it sound. Nor does it make you a worse designer. It makes you a better designer.

So why not give it a go? You may even enjoy it.

4 comments on “Wizards, Rockets and Exploding Heads: why designers should code

  1. Robb said on

    Beyond the personal development side of things (better job prospects, more freelance options etc), it seems like a lot of the points you raise could be met by a designer who understands the restrictions (and opportunities) inherent in CSS and HTML who has a good relationship with front-end developers. Although that’s obviously more expensive, I’m not sure a ‘creative’ in the traditional sense (ie someone responsible for conceptual as well as executional work) would be able to devote the time required to really become a master of front-end.
    I’m not saying they can’t, but I think for commercial reasons it might prove difficult for practicing, non-coder designers to make the switch. Do you think they’ll become dinosaurs, or do you think their dominance of the industry will prevent less experienced designer-coders getting good jobs?

    • Pete said on

      Thanks for your comments Robb.

      You’re right – an experienced designer and an experienced front-end developer, if they have a good working relationship, can still produce great results. But it requires a lot more toing and froing, and is generally less efficient.

      The problem as I see it is that the interface design process is wrongly divided into roles. UI design should be a fluid, iterative process, and that process requires the design to be progressed in the browser. Mock-ups outside the browser have their place (and are usually needed), but they are only part of the process. That’s a hard process to work with if it requires two people to continually pass things back and forth.

      Of course, web design is often not treated as an iterative process. Often a design is ‘signed off’ by a client on the basis of a mock-up and then passed to a front-end developer to build. But I don’t think that linear process achieves the best results, and is plagued by some of the problems outlined in my post.

      In answer to your last point, I think that those companies that hold on to rigid linear processes that I’ve just mentioned actually favour designers who don’t code. And the mindset that resists the idea of someone being able to both design and code is still pretty widespread.

      But in the longer term, although there will always be a place for the ‘creative’ within a digital environment, I think in the future they will have a less hands-on involvement in UI design specifically… unless of course they learn how to code.

  2. Virginia said on

    Great post, Pete. I agree that designers should know how to code or definitely understand what’s involved in coding an interface they design. Though I have found in my own practice one side never receives the same attention. By having to focus on both parts, I have neglected either the design or the code.

    • Pete said on

      Thanks Virginia.

      I know what you mean – it can be a bit of a juggling act sometimes, especially in situations where you’re trying to do both within the same space of time usually allotted to one, which is sometimes the case!

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>