“Should designers be able to write code” - as you know, this is one of the most favorite topics for discussion in the IT community. Today we offer you a translation of the post Allie Vogel, in which she talks about personal experience and why, from her point of view, the time and effort spent on learning the code are worth it.
Product design through the eyes of a techie')
Four months ago, I left my easy and well-paid job at a LinkedIn branch in San Francisco to learn how to code.
I always sought to develop as a designer, and suddenly I realized that I have no idea how web products are made. Learning programming has become the logical next step towards achieving this goal.
Starting an intensive training course, I didn’t know what the difference between programming logic and markup was, and even between the client part and the server part code (or what these concepts mean in general) - even more so.
I think it is obvious that the learning process was painful.

Now, when I am interviewing for the position of product designer, I understand that my decision to master the code was undoubtedly correct. Now, when a difficult design task arises in front of me, I use the programming wisdom with might and main to understand the problem. Here are a few basic lessons I learned from my experience:
Aim for simplicityThe development process is to write neat, understandable and functional programs that can perform a set of microtasks. In general, the problems you are trying to solve are large.
Before starting to work on a design project, I felt a little overwhelmed by the uncertainty of what I was designing. But the development process taught me to break each problem into micro fragments, which are performed as separate functions.
Now, taking up the solution of the problem associated with the design, I consider it as a complex integral integrity, which can be gradually, step by step, broken into small fragments.
Tip : In the process of creating wireframes, think of each element as a component. I began to look like design from a developer’s perspective, considering each component as a building block for a future application.
The concept of responsive website design for Kiva. When making design decisions, my colleague and I looked at the project through the eyes of developers.Learn to learnPreviously, when I was faced with a question that I could not answer with confidence, or when I was asked to use technology that I was not familiar with, I immediately panicked.
Being engaged in development, I came to understand that the human brain cannot store all the information that is needed to write in dozens of languages or for many operating systems. Programming teaches you how to think. And for everything else, there is Google.
Want to program for iOS? Learn PHP? Create a chat bot? Most likely someone has already written about his experience or has published a code for a component or a design element that can be used. Break the task into fragments so that it becomes clearer what needs to be done, and begin your research.
Develop empathyIf you have not mastered computer science or technical specialties, such as engineering or mathematics, learning the basics of code will help fill many gaps.
It will teach you to separate the important from the unimportant and help you to think from the standpoint of the developer when working on product design.
“The most important thing is that designers and developers develop empathy towards each other. Both parties must understand the essence of the process and work effectively together. " - Ryan Scott, Chief Designer, DoorDash
Adapt the design to the technology you are using.You do not have to often ask yourself: "Is it possible?". Studying the properties of various languages and web frameworks will help you to get an idea of the possibilities and limitations within your field of activity.
Even if you have doubts whether it is realistic to implement this or that interaction, the developer's instinct will help you to understand. When I first met advanced CSS and JavaScript, I was covered with a wave of inspiration: I realized that I now have a whole library of interactions.
“Understanding the limitations that development imposes allows me to find effective design solutions.” - Elliot Dahl, Product Designer at Pivotal Labs.
Tip : Do not be lazy to engage in self-education. Each language has its own official documentation. Relying on it, Stack Overflow and Google search, you can easily outline the area of the possible before giving your design to the development team.
Improve communicationMastering the code, you learn to think like a developer. This ability, in turn, helps you to establish reliable communication. Developer knowledge will give you the opportunity to form a more holistic user experience and formulate your ideas in such a way that people with a technical mindset will appreciate them.
Having taken part in countless hackathons and having worked in a multitude of teams, I came to the conclusion that there is a sense of creativity only when it is accompanied by the ability to infect others with your vision through the effective articulation of ideas. The development has helped me enter this zone.
Engineering can infuriate. Until you overcome this barrier. After that, it gives a feeling of unlimited possibilities.
Now I no longer hate writing code. It even gives me pleasure. But the way I fought with him, almost banging my head against the wall and pulling out my hair, left such a deep impression that I will always treat with sympathy the developers who work with me side by side.
Thanks to this experience, I realized that I didn’t need to be a developer in order to think like a developer. If you can specialize in creating cool designs, but at the same time have the communication skills to work with fellow technicians, you can take your projects to a new level and become an excellent digital product designer.