Should a UI/UX Designer Learn Javascript?

February 16, 2017
Written By John Lai

I received a question from a friend:

I have been a freelance UI/UX designer for many years. I can also write CSS code. Should I learn Javascript for my web projects? I've encountered numerous challenges due to my lack of Javascript knowledge. Also, it seems a lot of clients want front end coders that have Javascript abilities.

In my opinion, I think a UI/UX designer who also implements the website should learn javascript. But the UI/UX designer should learn the minimum to satisfy the following requirements:

  • On brochure websites only - be able to install popular third party plugins like social share widgets, jquery plugins (for parallaxing, simple animation, calendar, twitter feeds, navigation, etc...) to add interactivity or animation
  • On brochure websites only - be able to do basic manipulation of html elements on a webpage such as hide and show, expand and collapse panels, and inject inline CSS rules
  • On front end engineering projects - be able to recognize the projects are beyond your skill level
  • On front end engineering projects - be able to articulate the technical challenges to other team members

Regarding the first two points on brochure websites, a great deal of websites are the typical 5-10 page website that consists of pages such as a home page, about us, services/products, contact, and maybe a simple blog. Brochure websites aren't often very engaging, have limited functionality, and are only meant to serve static information to the reader. There are plenty of cloud software services that allow non-technical individuals to easily build their own brochure website. Someone with slightly more technical knowledge and someone who needs more design flexibility than a cloud software service can offer, may decide to use popular CMS-blog platforms like Wordpress or Drupal to build their brochure website. Given that little technical knowledge is necessary to set up brochure websites, it is common for designers to implement the website after they've finished the UI/UX designs.

Because brochure websites are mostly cookie cutter templates, you will find that there is a large library of Javascript plugins and widgets readily available for web professionals with limited Javascript experience to use. In essence, a UI/UX designer should learn enough Javascript to leverage the rich community of off-the-shelf Javascript plugins and widgets. Having some Javascript experience to do simple HTML manipulation would also be beneficial.

Regarding the last two points on front end engineering projects, any web interface development project that is not a brochure website project will likely be a front end engineering project, and Javascript is just one of several technologies to consider during execution. A front end engineering project requires an experienced software developer to devise software system with an architecture that is clear for other developers to follow while offering flexibility to accommodate eventual changes to business requirements. The problem with an untrained front end engineer working on a project without supervision is that s/he will often solve problems with excessive band aid solutions that substantially increase technical debt. This makes the software more costly to maintain and upgrade.

To further complicate the matter, as of early 2017, the world of Javascript is a chaotic one. The days of writing snippets of procedural code in a hodgepodge manner are long gone. In its place are the proliferation of front end frameworks, bundlers, packagers etc... each brawling for supremacy in the domain of web interface implementation. There are new contenders every year, and by the time you can proudly announce your proficiency with a suite of tools, the community of front end engineers will derisively smirk at how 2016-ish you are.

Become a Front End Engineer

Despite challenges to become a front end engineer, it is not impossible. Before you begin this journey, you must accept the following terms:

1. You must be good at convergent thinking

Convergent thinking is pre-requisite to learning programming.

According to a definition on the internet, convergent thinking "is a thought process or problem solving technique in which ideas from different fields or participants are brought together (synthesized) to find a single optimal solution". This is opposite to divergent thinking which "is a thought process or method used to generate creative ideas by exploring many possible solutions".

With many UI/UX designers, I have found that they excel with divergent thinking. They can see a problem from many different angles and can provide a lot of brilliant ideas. However, very few UI/UX designers are equally good with their convergent thinking, which undermines their ability to consolidate their divergent ideas into a fundamental framework that others can use as a guiding principle for their application development.

As a front end engineer, you must be proficient with convergent thinking. It is the cognitive process responsible for creating logical order. Maintainable software architecture is all about logical order.

2. You will invest as much time learning the discipline of front end engineering as you did learning UI/UX development

This one is self explanatory. If you have no prior software development experience, yet you want to become a reasonable front end engineer, be prepared to invest 2-5 years of education.

Like everything, learning takes time. Learn enough to appreciate the discipline. Learn enough to work effectively with other front end engineers. You don't have to do everything yourself!

And if you're one of those professionals who can effectively wield both UI/UX design and front end engineering responsibilities, then you are a rare and gifted individual. Be sure to reflect that in your compensation. Go for it!