Should Designers Be Able to Code?

This seems to be a bit of a hot topic on Twitter right now so here’s my take.

The definitions of designer and developer and where you draw the line between the roles is a bit of a nonsense. In reality you can’t box things like this. It’s about the individuals and what skills they have and what fits your team. Overlaps in skills are not a problem, gaps are. So, the handover points will naturally surface out of what works for the team. That said, I do have some more specific thoughts about what might kinds of coding might empower a designer.

I’m assuming we’re talking about designers who already write HTML and CSS and what level of JavaScript they should know or learn. A designer who works in a graphics editor or prototyping environment clearly has a different skill set.

Knowing some basic DOM manipulation techniques can really help to add some life and interaction to designs – “Interaction Design”.

  1. Being able to select a DOM element with document.querySelector() is a good starting point.
  2. Basic event handling with .addEventListener('click', handler) is useful as it allows you to add actions.
  3. Handling events means learning how to write a very basic named function.
  4. Finally being able to toggle properties like hidden and disabled or add/remove/toggle items from classList enables you to design for lots of different states within the same document.

I think just these few basic steps will enable a designer to achieve a lot more in their designs.

Most beginner’s JavaScript courses I’ve seen seem to start with constructing objects but this is far less useful for UI work. Designers probably don’t need to worry about objects, arrays, classes and the whole data side. Static data is generally sufficient for communicating the design and interactions.