Image Credit: Patrick Leger
4 minute read

Ah, your question comes very close to the age-old question… should designers code?

Both questions are really hard to answer without more information. My take is that you should learn how to code, but only if certain conditions are met. Ask yourself:

  • Does your team need you to know how to code?
  • Do you want to work more collaboratively with your engineers?
  • Are you looking to broaden your skill set?
  • Do you want to learn how to code?

If your answer to these questions is “no,” then maybe learning to code and the rest of this article aren’t for you. (Instead, maybe you’d care to read my thoughts on communication as a design problem? 🙃) However, if you answered “yes” to any of them — most importantly, to the last one — then yes, you should learn how to code!

How much, then, depends on your specific interests and circumstances. Taking from the scenarios mentioned earlier, let’s say…

… My team needs me to know how to code

This one’s easy. Ask them what you need to know, and learn that.

… I want to work more collaboratively with my engineers

Working closely with engineers is part of a designer’s job, and miscommunication and disagreements are inevitable. You can become a better design partner by learning how to talk about code, and understand how code impacts your work.

Knowing how to code is useful, but not necessary. Instead, familiarize yourself with:

  • common HTML elements and how they fit together
  • common CSS properties and their values
  • what data your team logs, as well as how they store it
  • how your engineering team is structured and what processes they have in place

… I want to broaden my skill set

If you’re looking to contribute more than “just” design, being able to code can open some doors. For example, you can test microinteractions by prototyping your own designs, or fix styling bugs without having to go through an engineer.

To get to this level, you’ll want to learn how to:

  • build components and webpages with HTML
  • style elements and follow a naming convention with CSS
  • manipulate DOM (the page you just built) with Javascript
  • “read” code. You don’t need to understand everything, just get the gist of what’s happening. For this, you’ll need to learn fundamental concepts like data types, control flow, loops, and functions.
  • set up and navigate a development environment via a command line interface

Bear in mind, vanilla HTML, CSS, and Javascript can only get you so far, but these fundamentals can be the gateway to learning more advanced concepts.

… I want to learn how to code in general

Well, in that case, it’s all out there waiting for you! If you’re a total beginner, I recommend starting with the basics in the section above. Build a strong foundation by learning HTML, CSS, Javascript, and fundamental coding concepts.

From there, you can learn more specialized front-end and native technologies, like React for web development, Java for Android, and SwiftUI for iOS development. If you’re looking to build something on your own, you may need to learn back-end technologies to set up your own infrastructure, APIs, data stores, etc.

Then, once you’ve mastered all of this, if you want to learn more — well, you’re already at the deep end, so you probably have a pretty good idea of what else you “need” to learn. You tell me: what’s next? The world is your oyster! ✨





Kristin Au is a Senior Product Designer at Slack and design mentor on ADPList.

At Slack, we value courtesy, craftsmanship, and good humor. If you do too, learn more about what we do, or better yet, join us!

Do you have design-related questions? Our team can help! Ask your question here or tweet at us with the hashtag #heyslackdesign.