I often see web designers that avoid coding at all costs. However, I am a strong believer that you need to learn how to code a little even if that is not part of your daily work. Designers must learn how to code for the following reasons:
- If you are a Web Designer, you should learn how to code so you understand the medium. You are designing for the web so you must understand the web. This does not mean that you need to have the same level of expertise as an engineer. But, at least you should know the basics and continue learning during your career. By understanding the medium I mean going beyond the actual design of the page. There are things that must be considered that affect the UX like color contrast, the performance of the page, usability, etc. You gain that knowledge by doing it yourself. Remember a Web Designer is not the same as a Graphic Designer.
- In the real world, it is crucial. Most companies (and startups) have a small team for web design and development. Thus, you will be wearing different hats during the development or maintenance of a product. Today you could be designing a page while tomorrow you could be fixing a bug in the site. You cannot be useful for a company that once you finished with your job, you just sit down and see the world burn, and the team struggle because “I don’t know how to code” or “this is not my job”. You will be required to code.
- Learning new things never hurts. By knowing how to code, you are more marketable and you will have an advantage over other designers that don’t know how to do it. This also makes you a well-rounded professional that can help you to be freelance in case there is no job opening in the area. If you only design, you will have trouble finding freelance jobs.
- As I mention in point two, companies have small teams. Hence, before you pass a feature to a developer to implement, you can code/test it so you see if it is worth it implementing it. This free the developers to keep working on the real project without having to waste time testing something that will not be implemented at the end. Once you are sure, you can pass it to the actual developer that will use best practices to improve your code and make it to production.
You don’t need to be an expert that will create a full application from scratch. You are expected to know something to gain the respect of the engineers because you have been in “their shoes”. Also, by knowing the fundamentals, you can clearly articulate your ideas when communicating within the team.