If you are a designer who has been thinking about learning to code or even if you haven’t but this concept sounds interesting, keep reading.

While co-hosting Design for Humans meetups, I have been talking to a lot of designers about learning to code. Many of them have an inkling about how their life could be better if they would know how to code, but they haven’t heard of such thing as designer who can code and not sure how becoming one can help them. The intention for this article is to share how I see me becoming a better product designer by being able to code.

The idea came from talking to my fiancee, Nazmul, about the collaboration between designers and developers. The different mindsets of two parties, how things go sideways if teams aren’t cross-functional and how they work really well if they are.

This led me to thinking of learning to code in order to design and build better products. Just to clarify, I am not intending of becoming a full stack developer. My goal is to understand JavaScript, React Native and Flexbox well enough in order to do the following things:

Reason #1 - Build prototypes

The ability to code enables me to build prototypes and figure out how I want the apps I’m designing to behave and feel, then test it on users, before getting it built by collaborating closely with developers. This allows me to receive the most relevant user feedback without actually building the full app, and test some core assumptions as inexpensively and quickly as possible. InVision screens linked together don’t deliver the best user experience for testing (users tend to get confused since they are interacting with pictures of things, rather than the actual things).

Reason #2 - Build simple apps

By being able to build simple apps/plugins/chrome extensions, I will practice everything ranging from identifying a user need, to shipping products, and everything between. This will allow me to become a better product designer.

Reason #3 - Communicate better

By understanding how products are built, what UI elements are called technically, and how they behave, I will be able to use the same language as developers in order to communicate better. Clear communication will create faster shared understanding in a team. It will lead to less confusion, more clarity and shorter meetings.

Reason #4 - Understand limitations better

It’s hard to understand technical limitations with very limited technical understanding. One time, while I was working with a front-end developer on a web app, we had issues getting the line spacings right. I didn’t understand why this was an issue, as it seemed like a simple task. At that time, I didn’t know whether the task was technically difficult or whether the developer was not very capable, because I didn’t have much technical understanding of the problem, and he didn’t understand it either. Later on, while working with Nazmul on an app, I learned about  the limitations of line spacings and why it wasn’t technically feasible  to match the designs exactly as they were in Sketch.


Understanding limitations and why they are there improves the team alignment and helps to come up with superior solutions.

These are all the main reasons I am learning to code.

In my next article I will be sharing:

  • Why I chose JavaScript and React Native over other languages.
  • What resources I tried and eventually chose to learn from.
  • Tips on how to manage time and energy in order to learn while having a full-time job.

Related Posts