UX Careers: To Code or Not to Code?

jobs

#1

Hello All,

Aspiring UX designers always ask me, “Should I learn to code? And, if so, which languages are most critical to my long-term success?” I’m wondering if there are UX designers out there willing to share their personal experiences, especially at the extremes (i.e., UX designers with absolutely zero coding experience versus those of you with in-depth training in HTML, CSS, Javascript and beyond.

How much code should a UX professional learn, and for what specific purposes? And how, if at all, has coding experience affected your job prospects, salary and overall career enjoyment?

Robert


#2

My career path took from me (in part) from software engineer to developer to UX Engineer. I’m certainly not Captain Code, but I know my way around a few languages (HTML, CSS, JavaScript, JQuery, PHP, and MySQL are my go-tos).

My advice to anyone wanting to get into UX is to get a fundamental understanding of HTML, CSS, and JavaScript. Modern websites rely on all three, and knowing how they work - as well as their current strengths and limitations - will help you understand the limitations of your designs.

A practical example: one of my employers used a Java-based system to render their front end. Our developers wrote Java code that grabbed pre-styled page elements from a visual library. Although they could write additional Java code to edit an element’s CSS styling, that often meant visual changes were hard-coded into the system. This is a bit of a no-no for most developers, but a lack of CSS knowledge on the part of our Java developers (which was surprising to me), deadlines and pressure to move items to complete quickly got the best of people, especially if time to create or edit new CSS styles were not included in our work estimates. Between the time they took learning the appropriate CSS solutions and completing the code, hard coding was sometimes the only option to move features out the door on-time.

From a my standpoint, this meant I had to have a damn good reason for requesting visual changes, that I had to point out these changes during our story refinements (it was an Kanban shop), and that I’d often work with developers to help them identify the CSS properties to adjust.

Now, is this all strictly UX work? No. But it did bring a ton of value to the team. Eventually our Java developers took more time to learn CSS, our PM’s learned to ask about time needed for visual changes, and our process became much smoother and straight forward - simply because they had a design professional that new the technical requirements well enough to point at the beginning of the process, rather than in the middle of it.

The counter-argument is, of course, that UX can, and maybe should, be done in a vacuum. Especially from a UX Research perspective, we are normally more focused on identifying problems and suggesting solutions than we actually are with how those solutions are implemented.

It’s entirely possible to be a UXer who doesn’t know a lick of code. When it comes to landing a role and adding value to an organization, however, those with coding knowledge will usually have an edge.


#3

You should definitely learn the basics of coding as well as the development process of websites and apps.


#4

Agree with what @dougcollins says. :slight_smile:

I used to be a front-end developer many, many years ago. But I have rarely had to code since being in UX for 18 years. However, I make sure to stay up on the latest developments in both coding and technology. I read A List Apart and Smashing Magazine every week. I am learning about AWS and containers. I know how virtual machines work and I know what Kubernetes are, but I can’t do any of that technical stuff.

It’s more about workign with developers, learning to speak their language and be a team player. :slight_smile:


#5

As a programmer who just entered the UX world. I believe you don’t need to learn to code if you’re a UX Designer, because you can apply your knowledge in any field. However, if you know how to code, learning how to become a UX Designer is a plus.

For example, when I used to create mobile applications or web applications, I always thought about how the user should interact with my app, learning about the process of building a user-friendly experience helped me create better apps. Currently I’m working with a company with the main expertise is UX, we create anything, from mobile and web apps, to building a network for your own company, my job at the moment is to design flows for projects offered by clients, the major problem I encountered was that I always laid down my background as a programmer, so whenever I started designing an interface, I think about whether what I’m doing is doable as a code or not, it helped me sometimes to save me time from presenting the interface and then having to change it because they couldn’t create it, but however, thinking as a developer doesn’t really help a ux designer, so once you learn how to code, you’ll just be constrained by whatever you learned, you’ll always think what you’re doing won’t work out. So yeah, I don’t think you need to learn to code, as long as you have the ideas, leave the coding to those who are better at it. But, if you want an extra hobby or if you want to learn new stuff, then go ahead, learn how to code(but remember, don’t let it affect how you think, once a programmer, always a programmer).


#6

I actually wrote a blog post and shot a video about this recently. Here was my thinking:

I think overall, if you can code or you have an understanding of front-end and back-end technologies, then it’s very helpful, but it’s not required.

Advantages

  • Being able to code allows you to understand what is possible from a technical perspective. This is positive because if you have an understanding of the technicalities of a product or service, then you are likely to take a more holistic approach to it’s design, incorporating all the elements of what you know about how it might be built and function to your design process

  • The ability to code also allows you to understand what is not possible. Obviously, every project is different and restrictions are largely dependant on context, but understanding what cannot be done allows you to keep the focus on working toward a solution that is ‘buildable’, leading to less friction at the interchange between design and development

Disadvantages

  • To slightly contradict my above argument, sometimes ignorance really is bliss. If you are approaching things from a purely human centered design perspective, then meeting people’s needs should trump technical constraints. So essentially, the focus should be designing the right solution, then figuring out how to build it, rather than being influenced to much by what you think can or cannot be built.

Video here: https://youtu.be/qbD6mEA6s7Q

Would love to know other’s thoughts!


#7

I’ve shared your video on Twitter Robert. I’ll let you know what they think.


#8

Thanks! :grinning:

Very kind of you


#9

How much code should a UX professional learn, and for what specific purposes?

Like anything you pursue, learning to code should be driven by natural curiosity about the way things work, hopefully in concert with some kind of pressure to know how things work.

For a web designer, the browser and how you interact with it are the medium and then HTML and CSS are the brush and paints. Designing websites in Illustrator or Photoshop or MSPaint (yes, there are people still do that) hog-ties you because A) you’re in a static design mentality and B.) fulfillment of your idea will always hang on the decisions of others who actually know HTML and CSS and understand browser interactions.

Every designer has experienced the frustration of seeing your ideas manipulated and revised by someone else until you barely recognize them at all, and that is good motivation to learn how to do it yourself.

And how, if at all, has coding experience affected your job prospects, salary and overall career enjoyment?

Knowing something about the medium helps collaboration with developers, there’s more mutual respect at the outset because you’re designing with some of their needs in mind vs. making assumptions and forcing them to connect the dots. So for me, the technical knowledge really goes hand in hand with my approach to UX and meeting people closer to where they are.

As far as job prospects, I will say that I was once asked to do a simple HTML coding exercise for an interaction designer job which a lot of the other designer candidates apparently failed. I hope that’s not the only reason I got the job and they didn’t! But my point is that it depends on the job. If the description says “Must know HTML/CSS” then be prepared to prove you do!


#10

Just wanted to add this great article to the discussion, https://medium.com/@daveixd/to-code-or-not-to-code-omg-this-is-totally-the-wrong-question-14deb48bd9c3.


#11

Yes! So much this.


#12

I ran a 3-day poll on Twitter asking whether UX pros should learn to code. Right now (with one hour left in the poll), we are at precisely a 50/50 split.

Some great written responses came back as well.

Trick question, to be honest. #UX pros should understand how code works, constraints, limitations, to some reasonable degree. So learning is helpful, to be sure. But that’s very different from being ABLE to code, which is simply not possible for a lot of right-brained folks…

No one is saying we can’t or shouldn’t learn :slight_smile: Instead, my goal is to call out the unrealistic and unfair expectation that every #UXer or #designer MUST know how to code.

Also, the more you know, the better. But trying to do both equally well? One of those balls gets dropped. - @joenatoli

Code is tough. Took a pseudocode class and nearly pulled my hair out. But as a UXer, why sell ourselves short? Why can’t we learn? - @sparkle4meplz

Agree with @joenatoli. It’s the “should” part that is troublesome. Should architects have the skills to build walls or do they just need to have a deep understanding of how walls are built? It’s great when people enhance their skills, but the unicorn ideal is misguided. -@intrepidleeloo

In my perspective, the ux designer will becoming “Killer Frontend” if they major in coding, So it’s not necessary learn how to code but ux people must understand the basic of HTML and CSS -@Lsatriohutomo

As @nickf had mentioned in the recent thread, it’s great to know how to code, the APIs, how it all works at a broad level. But one need not necessarily know how to ship production code.

I’d imagine the courtesy extends the other way too? Overall makes for a great product. - @krayker

EDIT: The poll results ended up being 52% against learning to code, and 48% for. With such a close margin of victory for the nays, I can’t say we’ve really come to a consensus.


#13

Thank you for sharing this.


#14

Short answer: no, it’s not an absolute requirement.

Bit longer answer: it depends :slight_smile:. I stick to my point that it’s absolutely no requirement for a UX’er to be able to code. In fact, if coding is one of your activities as a UX’er, I would wonder how far off you’re from doing core UX activities.

That said, it is useful to have a grasp on how HTML, CSS, and Javascript works, if you’re working closely with a development team. That’s still not the same as being able to code, but you’ll definitely be a valuable addition to the team. I know plenty of UX’ers though who work in scrum teams as well, without being able to read a single line of HTML or CSS. Doesn’t make them bad UX’ers though.

Then there is the other end of the spectrum as well. I mentioned that being able to code, or understand code, is useful if you work in a UX team. If you’re more at the research, or value proposition design end of the spectrum, then being able to code won’t help you a lot, if not at all. And UX is a spectrum, so whether coding is useful depends on what you want to focus on eventually.


#15

This is brilliant, @dougcollins. If we ran this poll every quarter for the next five years, I wonder how opinions might shift overtime?


#16

Yes to the benefits of technical naivete, @thinkrobert! If you’re putting the user first, and have a strong business case supporting your decision to add a difficult product feature, it can go a long way. (Hopefully the dev team will thank you later.)