The elephant in the room
Should you learn to code? “But it gives you all these benefits” I hear you say! Learning to code as a designer is… tough, to say the least. I don’t remember a time where I didn’t come across an article that encouraged the benefits of learning to code as a designer. For many years I believed that a designer is a designer and a developer is a developer and that the industry should respect the differences in the job roles. If I wanted to specialise as a UX designer, I should be able to; and there’s nothing stopping you from doing that. However, when I got my first real design job at a software house I quickly learned the hard way that not knowing anything about code would prove ineffective at communicating why my designs will benefit the product.
Convincing developers is hard. Imagine this you order some takeout food, you heard the food was good but they had no prices on the menu, but still you carry on because the reviews were good and you had no reason to distrust the place. Then, your food arrives, but it turns out they charge you 10x more than you were expecting. You can’t afford it, and now you have to convince the delivery driver to give you the food without paying the costs set by the restaurant - it’s an uphill battle. Do you see why developers have a hard time with this? Developers work programmatically, they aren’t all the creative bunch like we are a great idea to you may be an impossible technical feat to them, but nevertheless you push them to do it. Many teams I’ve read up on even go so far as to separate the teams, and only the project managers relay the communication between design and development. I think this is wrong!
DEVELOPERS SHOULD BE A PART OF THE DESIGN PROCESS! I cannot stress that any more, everyone has great ideas and I have learned so much by going out of my way to take an interest in the “WHY” things can’t be built. Not only do I grow as a designer, but I now approach my designs with not only a creative mindset but a technical one, and this is something that can only be gained by learning a little code.
How it feels being the elusive “unicorn”
We’ve all heard of the design “unicorn” before. The elusive designer that not only knows how to design but to build the design. They exist, but not how you think they exist. Sure, I reckon that there are designers out there who are full-stack and could build an entire application with developement best practices whilst simultaneously designing a beautiful UI. In fact, in many startups you’ll find a lot of these designers actually exist as the “wear-many-hats” role.
As for myself, I exist on both ends of the spectrum, and let me tell you, it’s not for everyone. In the world of Javascript right now, more developers than ever are jumping into full-stack. As tools get better, so does the capability of each developer. I like to think in the near future designers will be able to build apps using low-code tools where with a little technical knowledge a designer could build whatever they wanted.
So… should you learn how to code?
The short answer… it depends on where you want to go in your career. The long answer… I recommend every designer to try to at least learn a programming language. Every designer should have developers within their company, why don’t the next time you see them you chat to them about their job, what it’s like, the struggles they deal with, how you could communicate better, if I wanted to learn code, where would I start? Etc.
We are all learning everyday, but we only learn if we put in the effort. By teaching myself how to code, I not only gained an appreciation for the work developers do but it allowed me to be confident in delivering designs that could be done and have better in-depth communication with my co-workers without them holding back trying to explain technical concepts to me.
While we’re here, it goes both ways! I’d highly recommend developers to learn a bit of design. By respecting each others domains of expertise but just learning a little about them, the collaborative power we have to build products is unmatched.