EJS logo

Web designers who can't code

Wow, what a day! It started with one little tweet and ended with a discussion that seemed to sweep across the whole web design community. It appears there are some very strong opinions held on the subject of whether web designers should be able to code.

Because Twitter isn’t really the best place to have a thorough, in-depth conversation about the industry, I thought it best to blog about it. I’ll try my best to represent the various different points of view by quoting tweets directly.

Disclaimer #1: this is a loooooong post.

The tweet

So, before we get into this, allow me to quickly recap what I said on this morning on Twitter:

Honestly, I’m shocked that in 2010 I’m still coming across ‘web designers’ who can’t code their own designs. No excuse.

~ Me

Admittedly the short character limit prevented me from putting across my point with much elegance and it was certainly misunderstood by some, but regardless of the exact meaning, it seemed to cause quite a stir. The majority of those who replied seemed to be in agreement — that basic front-end knowledge should be possessed by anyone who calls themselves a web designer — but it certainly got a few peoples’ knickers in a twist as well.

Disclaimer #2: If you disagree with my opinion, please feel free to let me know in the comments, but kindly read this whole post before doing so.

Some clarification

I should’ve been a little more specific in my tweet. I was talking about designers who don’t have even the most basic HTML and CSS skills to turn a flat design into an actual site. Not people who intentionally choose not to code; those who can’t. And I’m also referring only to front-end code here; of course it’s ridiculous to think that designers should also be amazing back-end programmers (although there are exceptions).

I’m not even saying that it’s always a bad thing. As Mark said in response to today’s Twitter conversation, “ it depends.” Of course, there are plenty of horror stories, and this still seems to be sadly familiar:

We get ‘web’ designs sent in Illustrator, 300dpi, impossible to code, no consistency / usability.

~ Amy Mahon

Of course, I realise that’s an extreme; many no-code designers are well versed in the web and produce great work. But wouldn’t a little more knowledge go one step further?

Can’t vs. won’t

There’s a very significant difference between designers who can’t code and those who choose not to do so. Because I don’t always code my own work, I do occasionally fall into the ‘choose not to’ camp. In fact this is happening more and more as time goes on: I’m focusing more on design and even occasionally stepping even further back into an Art Director role, where someone else fills in the smaller design details. This is commonplace among designers and is certainly the case in larger agencies, where the career-progressing designer has less involvement in the nitty gritty work and teams are made up by specialists. But having that knowledge and choosing not to code (whatever the reason) is entirely different to lacking that knowledge in the first place, which — I believe — has the potential to unintentionally distance the designer from the end product.

Andy Budd pointed out that,

if you’re designing fairly large scale sites it’s often not desirable, possible or practical to do the coding, especially if the complexity of the various components (e.g. complex JS functionality) outweighs your technical ability.

~ Andy Budd

I couldn’t agree more, and I didn’t mean to sound like I was attacking the benefit of working in teams. But a decent working knowledge of your team members’ skills is a huge bonus: even if you’re not making nightmarish mistakes that fill your developers with dread, there may still be aspects of your non-code-aware design process that makes the lives of your teammates unnecessarily hard.

‘But an architect doesn’t have to know how to build buildings’

This is the analogy being used as the counter-argument and is, on the face of it, fairly sound. But can’t we apply that to any walk of life? I don’t know how to plumb, so I hire a plumber. A dentist doesn’t know how to build a mechanical chair, so he buys one from someone who does. This is the way society works: none of us are able to do everything, so we work together, each person using their own specialisation.

So have I just proven myself wrong? No, because web design is not separated on the same level as architect / builder. Actually, let me rephrase that: web design certainly does have its specialisations (I’d be crazy to suggest otherwise), but we’re talking specifically about front-end skills here; I’m by no means saying that we should all be able to handle all of the complex tasks required to make a large-scale (or even small-scale) website. But front-end code (just HTML and CSS; let’s forget Javascript for now) is intrinsically linked to the design process. It’s a design tool just as much as Photoshop.

Designing in the browser

However you feel about the concept of designing in the browser, the reality is that more and more designers are adopting this as part of their workflow. Some, like Andy Clarke, treat it as the biggest part of the design process, allowing the client to see flexible layouts, type, and rendering engine treatments on the fly as a design comes together; others, like me or Mike Kus, use it as an extension of our Photoshop work: initial design is done offline and is completed by filling in the gaps while in the browser. It’s certainly not my intention to write about the merits and pitfalls of designing in the browser here, but the key point is that if you don’t know how to write HTML and CSS, it’s an avenue that’s completely closed off to you. The design process can begin and end entirely in your graphics app, but because websites will not (and should not) look the same in every browser, the design will not actually be complete until it’s coded.

What about developers?

Many people raised a good point: they said that if a designer should have some basic development skills, surely a developer should have some basic design skills? Well, yes, I believe that should be the case, but of course I realise that it rarely is. So how do developers get let off the hook so easily?

Because it’s easier to work design around code than it is to work code around design.

But actually there’s no excuse

There are some great designers out there who don’t know how to code and some of them produce amazing things for the web. But whatever excuse is given basically falls down when you look at one simple fact:

It’s easy.

That’s right: writing HTML and CSS is so easy, that there’s actually no excuse not to learn how. There’s no obligation to use them — you could carry on just staying in Photoshop — but they’re so simple that they might as well be a part of your design vocabulary. If you’re a web designer, you could liken HTML and CSS knowledge to a few other fundamental skills, like:

  • knowing how to cook a basic meal,
  • dealing with your bills,
  • or knowing how to connect your TV to your DVD player.

I didn’t enjoy learning to drive; I passed my test before uni but didn’t drive for years, so had to go through the whole process of driving lessons once again as a refresh. But I learned to drive because I knew it would allow me to do so much more, and because it seemed silly not to do it for such a relatively small period of learning time.

Liberate yourself

As Mike said, learning front-end code was extremely liberating for him. I was exactly the same: the unknown was holding me back; I didn’t appreciate how things worked and it scared me away from producing my best work. But with a little bit of technical knowledge (and I’d really like to emphasise the ‘little’ there — I’m not much of a coder beyond HTML, CSS, and the odd bit of PHP for WordPress theming), I ‘got’ the medium in which we work. Sure, things like Python, Rails, Actionscript, and even (to an extent) Javascript scare the crap out of me, and I’ll happily employ others who are much better qualified than me to handle those things, but having a connection to the immediate link in the chain (i.e: front-end) is something I treat as invaluable.

Parting thoughts

It’s getting late, and I’ve got to wrap this up somehow. I know there will be many who disagree with me, and my intention is not to offend or upset anyone who can’t code, but I hope that some of what I’ve said reflects some of the points that always come up when delving into this debate.

At the end of the day, I don’t lose any sleep over who can code and who can’t. I’m just genuinely surprised to find so many designers that lack front-end skills, as I thought this was a thing of the past.

Does this matter? Perhaps not.

I’m sure this will require a ‘part two’ tomorrow…