Should Designers Learn to code?


#1

This was covered in the podcast, What’s Wrong with UX. http://www.usersknow.com/podcast/

What do you think? Has understanding how to code made you a better designer?


#2

Understanding what is code and how it works has most definitely made me a better designer. Learning code is a literacy that everyone (not only designers) should have similar to learning a foreign language, math, and English. It is not special to designers.

In terms of the podcast, where I vehemently disagree is that code is a required part of active practice as a user experience designer. While I have basic knowledge of code/programming in languages like Java, PHP, JavaScript, and even Arduino, they have never been an important part of my practice as a designer for me to use at all.

What has been more important is to be a collaborator with those whose primary job function is to program and engineer digital systems that need designing. There is often the argument that if I’m a practiced coder then I can be a better collaborator, but I have found that respectful mutual understanding of ignorance and expertise does a lot more than amateur knowledge and practice of the other’s domain. This does not mean, you can’t have an opinion (or they can’t have an opinion) but it is about understanding the relationship dynamics when you make such a suggestion as one of a question instead of one of a command, or even a statement.

But to the main point, “Should designers learn to code?” EVERYONE should learn to code as part of basic lower education pedagogy. In lieu of going back to elementary school, you as an adult do not need to do anything more than take a few Lynda.com tutorials or Khan Academy classes on coding to catch up enough at this point.


#3

I’m not sure I see any disagreement here. That’s very close to the conclusion that we reached in the podcast, I think. I don’t like it when designers are shipping code either, since a) I think that designers tend to be better at designing and I want them spending their time doing that, and b) I don’t like it when people ship code who aren’t prepared to monitor it, roll it back, or fix any problems that happen after they’ve pushed. In very small companies or in certain circumstances, a designer might ship some code, but it’s certainly not the default for me.

We may be 5 degrees off in our beliefs of how much code is enough. I do think that the more a designer knows about code, the better collaborator they will be. But then, I also acknowledge (and I believe I did in the podcast) that there is an ROI on learning anything. Sometimes it’s worth it for a designer to learn how to code really well. Sometimes it isn’t. If you’re a UX designer for an API that will be used by hardware developers, I’d expect that you be more technical and have more coding experience than if you’re designing the front end of a consumer app, etc.

But again, I don’t think that Kate or I said that designers should be actively coding and pushing things to production. Kate and I both write code to make prototypes sometimes, but that’s a very different thing than writing production code, and we both do it because we’re old and can’t be bothered to learn new tools when the one we know works so well.

And yes, I would LOVE it if everybody knew more about coding, foreign languages, and math. Especially people who make rules about those things for others.


#4

Excellent,
I think where it broke down for me was in Kate’s insistence on the sketch > code practice.
And you telling your own story about how you learned WAP (back in the day). (I used to learn RAIN, too!). But as you said we are very very close.

We do need to be careful how we talk about this b/c knowing about and knowing to do are very different things and w/ the strong call for generalists these days, which has led to great UI Designers over great UX Designers, is very problematic when we simply state, “Designers should know how to code” w/o clearly stating what we expect them to do w/ that knowledge as designers. I’m not sayign that the podcast wasn’t clear in its hour, but the initial framing of the conversation (not its conclusion) was filled with a lot of things like sketch > code that could be broadly taken out of context by less sophisticated and experienced people.


#5

Oh god, please don’t hold the fact that I learned WAP against me. I honestly only did it so I could prototype on feature phones. :smile:

Kate and I will often start a podcast on more opposite sides than we really believe and then eventually come to the middle ground. It’s because we enjoy fighting in public. And yes, I agree that we have to be careful talking about this stuff, but I like having the conversations in public where people can hear all the sides. Because if theres’s anything that’s universally true, it’s that nothing is universally true. What’s good for me may be awful for somebody else, so I try (and often fail) to give advice like “well, this is true under these circumstances and your mileage may vary.”

But it’s a very good reminder that not everybody listening has 20 years of experience in the tech industry and may not understand all of our shorthand. After the second drink, we tend to forget we even have a mic on.


#6

I agree with Dave so hard it’s physically painful. However, I might split a hair and say that it’s an ability to communicate with developers that is absolutely critical. We absolutely must be comfortable

  • Describing behavior effectively
  • Asking questions
  • Asking again until we really actually understand a thing
  • Asking for options

The short, tweetable little catchphrase I like to use to describe this recommendation is that we must be code literate but we don’t need to be code fluent.

Okay. Done splitting hairs. Now I want to talk tools. Because you know what? Prototyping tools get short shrift in this discussion. By prototyping tool, I mean some sort of interface that allows someone to create an interactive model of a system without having to manipulate raw code. These days, there are SO many tools like this to choose from. Now, it’s rare that any sort of tool automatically makes someone better at a thing, but I argue that prototyping tools fit the bill. Why? They facilitate iterative design. And iterative design makes better stuff.

(Hopefully I don’t have to have THAT discussion here. : )

I wrote an article and gave a presentation about this long, long ago (in a galaxy fairly nearby) that talks about this in detail. But specifically in reference to the “should designers code” argument, the basic deal is that maintaining skill with a prototyping tool is far easier than maintaining skill with code. Why? A simple phrase that should be familiar to all UX designers:

Recognition Over Recall.

I don’t have to maintain detailed knowledge of methods, syntax, browser inconsistencies, hacks, libraries, etc. etc. etc. if I can just click on the thing on the screen. Human beings are really good at forgetting things, and prototyping tools help us deal with that fact.

Tool skills are much more flexible too! E.g., instead of learning HTML/CSS/JS for Web and C#/Swift for iOS and so on and so on, I can learn Axure* and be (almost) just as effective on any platform, old or new. If you want to get to really high levels of fidelity, maybe it’s Axure plus a prototyping tool that outputs native app code like Pixate or Origami. Still, that’s TWO tools compared to… MORE THAN TWO languages to learn. I’m not very good at math, but I can solve THAT equation!

  • Yes there are other Web prototyping tools but Axure is what works best for me.

At the end of the day, it doesn’t matter what you use to make your interactive models. Just that you make them. That’s what’s critical, that UX designers have the ability to create interactive models of their designs. Code, tool, whatever gets the job done is what’s right.


#7

I’ve been all over the place on this topic in the past, but I recently reached what I feel is a very specific & defendable position:

  • Designers need to be able to be embedded with engineers.
  • Based on industry numbers, most engineers these days work in some sort of repository (Git) and in some sort of Agile-ish workflow.
  • Under those circumstances there is usually a pull request / code review moment where engineers receive feedback on their work.

My current expectation of designers is that they are technically-savvy enough to run their products/projects locally on their computers, pull those features branches down, and participate in that peer review process.

You don’t have to learn to code in order to do that. It is as simple as following instructions on a wiki.

Yet, as much as I feel like this is a pragmatic expectation, I’m often disappointed by how many designers dismiss the idea outright.


#8

Anyone who is on a team that is responsible for delivering a website whether you’re a designer, developer, project manager, business analyst, etc. should understand the medium well enough to avoid silly conversations that take away from progressing the work.

Silly conversations might be somewhat ambiguous, but I think y’all know what I mean. Anyone on a web team, should know the difference between front-end development and back-end development. General knowledge of how development integrates together, the process and workflow they use and how it fits into the process as a whole. I’ve spent countless hours writing “this is what is happening” emails and in meetings describing how everything works. I don’t think those will go away, but if all on the team had at least basic working knowledge of how IA, design, research, and development produce a living breathing application, then we’d all be happier.

  • But to answer your question directly, yes, designers should learn to code. But that’s just … like … my opinion, man.
  • Should everyone on a product team have a high level understanding of code? YES!
  • Do designers need to know how to code to effectively communicate IA and IxD to developers? Absolutely not.
  • If a designer knows how to code, does that necessarily make the process more efficient, or them a better designer? A BIG maybe.

As a designer, knowing code has afforded me more opportunities in my career and at times put me at an advantage compared to designers who didn’t know how to write code. Maybe because I knew of certain constraint before hand to avoid designing something that I knew couldn’t be implemented. Maybe because as a independent consultant, I am able to double up on the number of work opportunities in front of me at any given time. And maybe because I can contribute on multiple levels and instead of bugging the dev’s all the time I can just pull the repository, make the annoyingly miniscule typography tweak, commit and be done with it.

As a developer, knowing design helps me get into some meetings earlier because I can contribute on many levels. But mostly, the benefits are on the “designer knowing code” side.

But I have been riding on both sides of the fence for 12 years. That’s 12 years of working with front-end code. Getting myself out of trouble with terrible code. Recognizing clean code when I see it and knowing what makes it clean in the first place. For a designer just learning to code, it is a daunting task, but knowing a little helps more than knowing none.

To that and Fred’s point, code has a learning curve, yes. But so does Axure, Edge Reflow, Macaw, etc. Yes, technologies update, but so does the UI’s and controls within those UI’s of all these apps. We’re all at a state of constant learning. So personally, as someone who’s been coding all of their career, I would rather spend time writing JavaScript than building interactions on a widget within Axure. To me, the time it takes is relatively the same so why not potentially have something reusable later? Also, code “tools” like Bootstrap and Foundation have made it easier to code a prototype than ever before.

To another of Fred’s points and on the other side of the coin, for someone who’s never coded, a new GUI is less anxiety ridden than is an empty HTML file in Sublime text. “I know how to push buttons, and these buttons make my design interactive.”

Also, the most unsatisfying, but politically correct answer to any question like this, is it depends on many factors, right? Budget, knowledge and comfort level with code, time, etc. I do love showing interactions rather than explaining them and having my audience interpret what the hell I’m talking about. And I do love doing it with code so that I reuse HTML, CSS, and JS later. But even as a developer, I’ve chosen to use Keynote or Axure in certain situations due to the factors listed above.

So, for me personally, am I glad I decided to learn to code as a designer? Absolutely.


#9

Great essay on why it matters https://medium.com/lessons-from-theater/a-little-rant-about-designers-and-code-8543a3ad6dba

and fantastic tweetstorm


#10

I work in a business that is filled exclusively with very competent full-stack developers who shall we say have been slow to the uptake of User Experience. Especially coming from a young, Junior UX padawan like myself. They speak in technicality, and whilst I know a little CSS and HTLM, and the difference between front and back and, there is undeniably a void of understanding between us. Stuff takes twice as long to explain as it would If I could just explain in some of their lingo.

The problem for me is as a Junior UX’er I’m keen to develop and become proficient in what my role entails, and I worry that if I detract focus away from practices that are very relevant to my role I will be slowing my progress. Of course, I’m not saying understanding code would not be valuable to my role, but I’m not sure how to effectively learn it whilst still learning my trade.

Does anyone have any tips on the most effective method of learning? Do I need to set aside considerable time to get started with learning code, or is it really possible to become proficient with a ‘bit-by-bit’ approach?


#11

Yes, definitely. Designer must have the coding knowledge.


#12

Yes, definitely a designer should have knowledge about coding. I think all of us have grown that way! I am sure one must have done a bit of HTML CSS at the beginning.


#13

i totally agree with you! this is a good one!


#14

This is a good question, a question I’d like to answer, as it falls into the interesting jargon of our field.

Unicorns, Foxes, Hedgehogs, the UX Design Bestiary

Should designers learn code?

Well, there’s no hidden law according to which you are obliged to learn it, but if you want to become a UX unicorn, you should, because:

“A UX unicorn has no horn growing out of its head. In fact, it’s not a horse at all but it’s nearly as rare as the mythical unicorn. A UX unicorn is a UX generalist. Someone who is good at all aspects of UX design work. They are also good at graphic design and coding which allows them to tackle other project work when they’re not doing UX work.”

Other way to make it work is by becoming a fox. Even if you don’t know coding as a designer in a technically accurate manner, at least you understand very well the process and you can communicate in an efficient way with the developer, helping him to understand things on his own terms.

However, you cannot judge a designer who doesn’t know coding at all, as s/he might be a hedgehog.

This terminology might seem childish, but it helps you perceive your colleagues from other departments differently.


#15

If we are taking UX Designers into account, the more we talk about it, the less we know. It almost becomes like poetry: a matter of interpretation, as if we don’t have a clear idea about it anymore. It’s all related to how we feel about it.

It all started with UX simply being the process of designing a user’s experience from the very start until the end, with regard to a certain product or service. Theoretically, perhaps this definition is just. In practice, however, there are so many categories of people with so many different interests, that a vast definition like that can only become a battlefield.

For instance, some UX professionals will say that hiring managers extend the UX field out of ignorance or in order to pay the same man for numerous tasks. Hiring managers will say that it’s the UX professionals’ fault, as they cannot reach a consensus with regard to the essential definition of their field. And so on.

Not to mention the unfortunate usage of the term “design” in the context of the rapid UI development, where “design” has a more particular meaning, allowing for a subtle, yet decisive semantic movement. In the end, we all forget where we started from and we end up confused.

That is why when you ask "Should Designers Learn to Code?’, I feel like you ask it out of the lack of a reference point. It almost sounds like a philosophical question. Should s/he?

Perhaps, if we relate exclusively to theoretical backgrounds, we won’t be able to answer. We should rely on intuition and on a logical approach.

Coding is a matter of implementation, whereas UI/UX Design is a matter of planning and proactively envisaging the successful interaction between the user and the product. That is why, theoretically, the answer would be “no”, just like we shouldn’t mix planning with implementation.

In real life, however, understanding the UI stage at the level of coding might be part of the overall picture a professional should take into account. Then again, one can get the feeling that a professional is bound to take EVERYTHING into account.

In this regard, given that there seem to be no traditional guidelines, we should adapt/select/make the best choices according to our personal profile.

It depends on every person, really. Some of us might be too involved in the abstract notions of planning and might need some engineering activities to bring them back on Earth, why not?

Because of/thanks to its interdisciplinarity, design allows you to learn innumerable relevant subfields. Let’s choose those that complement our journey so far. Let’s even change our mindset accordingly.

So, when someone asks us “Should Designers Learn to Code?”, instead of wondering what does this question mean exactly, we can regard it as such:

Without the obligation of encompassing coding in our design education, the manager about to hire you wants to know if so it happens that our drive so far is consistent with acquiring the said skill.

Then, the dilemma disappears.


#18

In the event that we are considering UX Designers, the more we discuss it, the less we know. It nearly winds up plainly like verse: a matter of understanding, as though we don’t have a reasonable thought regarding it any longer. It’s altogether identified with how we feel about it.
Best Assignment Writing Services


#20

I need to emerge as a UX/UI clothier because the app market inside the meantime is booming and best going to get stronger. I were informed to start from the basics and am currently gaining knowledge of HTML, CSS and JQuery through self teaching. Any one tell me where can i learn like best assignment writing service uk


#21

Design is about people, not technology. In order to design great products, you need to understand not just what you’re making, but why you’re making it. You do that by empathizing with your customers to feel their pain, and designers are effective only after doing so. No need to learn code


#22

Yes Obviously, A designer must be well known about the code because if he wants to change the place of his design so he will required the help of the coder, so that’s why if he will be well known with the coding so he does not need of any other to change anything in code.
Essay Writers Online


#23

A planner must be notable about the code in light of the fact that on the off chance that he needs to change the place of his outline so he will required the assistance of the coder, so’s the reason on the off chance that he will be outstanding with the coding so he doesn’t need of some other to transform anything in code Write My Essay UK for College students.