TLDR: It depends on your project and team.

This is a topic that I’ve been pondering for a while and only recently been able to speak to with some confidence. I’ve been working as a designer for the last 10 years, and for 8 of those years I didn’t really know how to code.

Over the last two years or so I’ve really sunk my teeth into programming, partially because I’ve always been curious, but also because the answer to this question burned so deeply at me.

I often saw other non-technical cofounders asking the same question:

“How do I get started on a product if I don’t know how to code?”

And typically the responses fall into two buckets:

  • Find a technical co-founder and convince them to join you
  • Get technical yourself and learn

I took the second option.

Around June 2016, in order to learn as fast as I could, dropped everything I was doing and devoted myself to learning programming. I was averaging around 100 hours a week, basically only stopping to eat and sleep. I did nothing else. With the help of my colleague Rodolfo Perottoni who often graciously stayed up past midnight to answer my noobish questions about why my recursive functions weren’t working, programming finally started to ‘click’. I started working on my own side project shortly after and by the time we began work on Askable version 1 in November 2017, I was at what I’d now consider a basic level of programming skill and knowledge.

So after all that, do I think designers should learn how to code?

It depends.

For me personally: absolutely. It’s made a huge difference. I lead a small (tiny?) development team of 4 and I work in a tech startup. The benefits of being a co-founder who knows both design and development for me are:

  • I can much better empathise with the engineers than I could before and therefore have been able to form stronger connections with the individuals on my team
  • While designing, I can more easily estimate the difficulty of implementing any particular component I’m designing. I can more confidently create MVP designs or be aware when I’m entering into non-trivial territory.
  • I am able to have a wider understanding of our product
  • I can work with the team to make much faster decisions since they don’t have to take extra time to explain concepts to me
  • I find it easier to build rapport and connect with a more skill-diverse group of people in the startup space
  • I’ve found it to be critical in my responsibilities in product management and helping me to roadmap features and prioritise

“Yeah that’s all cool but what about the drawbacks? It sounds too good to be true”. Well yeah. If I’m going to be honest there’s one massive drawback:

  • Like learning any other new skill, it’s a huge time investment

The amount of time needed to invest to learn programming is going to be different for different people. But generally speaking I’d say that for most designers you’re looking at a few months minimum to grasp the basics and a few years if you want to get good.

The other issue is that if you’re a designer, your brain is probably wired to think like a designer. Learning to program as a designer is in some ways like putting on a blindfold and designing using only keyboard commands. It really requires a radical change in the way you think. You no longer have the luxury of being able to see your work laid out pixel by pixel in front of you. Sometimes, you simply have to hold a bunch of functions and variables in your ‘working memory’ while you’re build something.

It’s hard as hell and feels extremely unnatural. It was almost painful, forcing myself to re-wire my brain and train myself to think about problem solving in a completely different dimension.

But for me, it was absolutely worth it.

It may be an entirely different story for designers who work in much larger organisations — I simply couldn’t speak to the benefits of learning programming in a situation like that (if you are one of those people I’d love to hear your thoughts!). But as a designer working in a small, fast paced team, learning and knowing programming has played a critical role for me personally in the journey thus far.

If you’re interested in the story of Askable (we like to think of ourselves as Uber for getting user testing participants), you can check out my interview on Indiehackers.