Getting started in user experience can be difficult. Our profession has an identity crisis. You need look no further than swarm of acronyms that we hide behind: CHI, HCI, UI, UE, UX, IA, ID, IxD, IxSD… the list goes on.

Our identity crisis means learning our field is like trying to inhabit the mind of a multiple personality disorder sufferer. For an aspiring interaction designer, figuring it all out is daunting. For anyone, it's daunting.

This is my top-five list of what I've found to be most important to do and master if you want to get into design.

1. The Hardest Part Of Software Is Culture. Get A Book On Negotiation.

The hardest part about creating software isn't software. It's people. Creating a killer interface is meaningless unless you can convince the rest of your team, client, or company that it is worth the investment. Your job as a user experience person is to cultivate a culture where good design has a leading voice at the table. If you cannot communicate, you will fail. If you can not convince, you will fail. If you cannot listen, you will fail.

Much of what I look for in a designer is the ability to balance, persuade, and negotiate without compromising on design. To design is to inspire participation. Unless we can let our ideas become other people's ideas—get others to want to champion design as their own—we will not be successful.

Learn to make mockups, prototypes, and videos. Learn how to create at the right level of fidelity to convince others: sometimes a sketch will do, sometimes pixel-perfect mockups are what you'll need, and sometimes only an interactive demo will suffice. Learn to talk in use-cases to product managers and business-speak to business development people. Get a book on negotiation. It will be your best friend.

The hardest part of your job isn't being creative or brilliant; it's communicating and culture.

2. Know Cognitive Psychology.

You are designing for people; you need to be well versed in the abilities and frailties of the human mind. There are fundamental truths about of what we are capable that runs deeper than culture and language. How much can you store in short-term memory? What are the properties of your locus of attention? A priori, how long does it take to choose an item in an ordered list? How does habituation affect design?

If you can't answer these questions, you need to get yourself a copy of The Humane Interface, How We Decide, and The Resonant Interface.

When I'm hiring, I don't look for credentials, I look for knowledge. If you don't at least know what GOMs analysis is and the cognitive science behind why undo is better than a warning, I know that even if your designs are good, you don't understand why. That's dangerous. Your gut can often lead you in the right direction, but it can also make stupid and avoidable mistakes. Potentially worse, you won't be able to communicate and convince others of your ideas because you can only argue with feelings.

Interface design is as much a science as it is an art. Know the science, else you are walking blindly through a minefield of harmful design.

3. Learn to Program, Even If Poorly.

2,500 years ago, a Greek writer told us something about creating software: Thucydides wrote, "The society that separates its scholars from its warriors will have its thinking done by cowards and its fighting by fools." The optimal society is one that mixes scholar-warriors and warrior-scholars. The same is true for companies that schism their designers and engineers. The most important trait a team can have is empathy. Without it, the implementers will not care, and the designers will not be realistic. When companies complain of specs and code being "tossed over the fence," a lack of empathy is to blame.

The most powerful tool for creating empathy as a designer is prototyping. It meets the rest of the team half-way, is the second most persuasive artifact (the first being a narrated video of the prototype), and gives you a sense of what's hard and what's easy to implement. Having thought through the edge-cases and being able to speak an engineer's language gives you street cred. You don't need to be a great coder, but you should at least be able to get your idea across in in HTML and Javascript.

To design is to inspire participation. To do that, you need to be respected. For that, you need to be a designer-coder.

4. Create, Create, Create.

Great designers do design all of the time. They get mad in an elevator when the buttons are in a confusion order, or when the buttons on a ATM are incorrectly labeled. Then they take a picture and blog about it. If you don't love creating and designing, you shouldn't be in the field. You'll need thousands of hours of practice to rise to the top of your game. In the end, you are designing for people so you need to intimately know people, and people are messy.

If you don't have dozens of little projects you've created, learned from, and even discarded, you are doing it wrong.

5. Study Graphic Design.

I used to be a hard-nosed interaction designer, and eschewed visual design in favor of experience design. While it is true that getting interaction right requires a deeper understanding of human psychology, a read through Emotional Design shows that looks matter. Looks affect usability. Looks are just one aspect of designing for emotional beings—you need to think about the whole sensory experience of an object, from sound to touch—but looks are often the most immediatly apparent.

Study typography, study the Swiss grid system, learn how to make your designs pop even if it means being heavily inspired by others' style in the beginning.

You are in the business of selling ideas. Unfortunately, an ugly mockup of a brilliant idea is often overlooked for a beautiful mockup of a derivative idea. To compete, you need to learn how to be an adequate graphic designer.


This article is syndicated on UX Magazine by permission from its author. It was originally published on Aza's blog, and we liked it so much we wanted to ensure our readers got a chance to see it.


JavaScript is a scripting language. With scripting languages you write a script for another program to run, i.e. the web browser. PHP runs server side, and it is considered a scripting language too.

Hidayat M

Jasa SEO Murah

I think point 5 is extremely important. Visual design is a crucial part of the user experience. If you want to be a great UX designer you have to know how to do visual design on top of interaction design because they are all part of the user experience.

To clarify, you don't have to know how to illustrate or anything, but you do have to know how to create user interface graphics, such as buttons, menus, form elements and etc.

I think that there are some excellent points here, but I'm not sure I agree with mastering all of it. I think 1, 2 and 4 generally suffice. My thoughts on 3 and 5...

Point 3, coding: If you don't know what you're doing with HTML and javascript, you may be pulling your hair out if you're trying to iterate in the middle of a RITE study. If you need a high-fidelity prototype and can do #1, communicate, you can work with someone who can build it for you. If you need a less sophisticated prototype, I've seen some great ones done in pdf (yes, pdf) that have been more than adequate for A-B testing. I DO however think it's important to know about different technologies to be able to have a well informed conversation with your client, developers, etc.

Point 5, graphic design: This may be because I am both an interaction designer AND a visual designer (a somewhat rare bird) working in user experience, but there is A LOT more to visual design. A good UX visual designer will work WITH you and will ask the right questions... what is this control meant to do? where should the user focus? would a user be intimidated by the UI if it looks too slick? etc. etc. In the most successful designs, visual design is not an after thought or just painting/skinning the wireframes - the visuals can make or break good interaction design. Visual/Graphic Design is a different skill set with so much more to it than a knowledge of typography and grid systems.

I think, in a lot of ways, it's knowing enough to know what you don't know - then you know when to ask for help, who to ask, and how to ask it.

I don't think the issue here is being able to do all the things above but to be aware of them so that you know what you are working with and (As someone mentioned above) to be able to tell if someone is BSing you. In my opinion, the more you know about a subject, the more you realize that you are going to need to work with people that specialize in those subjects or at least is good at it to get something stellar made.

This is the first "so you want to be a designer" article I can totally support. I'm on my 10th year of designing applications, with the last 5 years as a consultant. I wish I had bought the "Getting to Yes" book years ago, thanks for that jewel.

One thing to note- you can always pair up with a talented visual designer if you aren't particularly skilled at graphic design. Our company's work is so much better now that I stay out of Illustrator.

HTML is a markup language, its not dynamic by itself, it is just a format to display content on the web.

JavaScript is a scripting language. With scripting languages you write a script for another program to run, i.e. the web browser. PHP runs server side, and it is considered a scripting language too.

Whether coding with scripting languages is programming or not is debatable. Nowadays, I think it is programming, but I won’t get into that.

Hey guys!

Looking at #3, can anyone recommend a great book that eschews the fundamentals of html/javascript, particularly targeted towards interested parties like UX designers, or failing that beginner programmers?

I am a junior UX designer that would love to know more and is looking for some sort of great introductory resource!

Thanks :)

I completely agree with Aza Raskin. Designers love to pin new terms and that confuses the clients, I still don’t understand the difference between Information Architecture and Interaction Design, it sounds like the same person performing two roles.

But this article gives an impression that a single designer should master all 5 topics and should not rely in a team, it would be the same thing as saying that Software Engineers should know how to program in all languages, be Database Architect and Enterprise Architect.

However, I do think that a Creative Lead or Design Team Manager should have solid knowledge (not perform) in all 5 topics.


"Interface design is as much a science as it is an art."

I am sorry but lets keep design separate from science or art. It is neither of them. There may be overlaps but no..its not science or art.

Then, which background would be most suitable for UI designer?
1) Marketing, management or MBA, what else?
2) (Cognitive) Psychology
3) Software engineer
4) a bully!
5) (Graphic) Designer

After a long time very fresh and *insightful* article.

This is a quick great piece about our undefined field. Yes people should study Cog Psy, and how to effectively tap into creating with a flow and how to visually communicate with design. But the focus should be always on the things you have the least strength in. It seems our field is full of people coming from such different backgrounds that establishing a baseline skill set has not been a core discussion which is why it leads to such disparity. For those who are coming into to the field fresh the focus should be on getting all the essentials outlined here. If you are coming from other fields like psych then the focus should be on design and coding.

As for what constitute programming, all Interaction practitioners should know how to build and work with the web, yet this is not the only medium, so cataloging HTML as programming is not really a complete statement for multiple reasons. Those seeking a manageable yet powerful language should look into python or java or processing ( which is java based).

@Peter: if HTML & javaScript isn't programming, what is it?

HTML is usually referred to as a scripting language. JavaScript is coding imho though.

Problem I see with so many designer-coders is that the tools/language blinds them to what 'should' be done. Since they only have limited knowledge, they are limited to whatever widgets are in the toolkit (jQuery, Expression Blend, Flash Catalyst, etc). You get copies of Office or the website flavor of the day--no innovation, which comes from challenging the expert UI coder. I say it is better to know enough about software engineering to tell when a developer is BS-ing you because they don't want to do it your way.

lol, love all the programming elitists getting huffy because "HTML is not programming". Meh. If I can make it do what I want it to do, it counts.

Bah, I only wish it were that easy. I am desperately trying to get myself into the UX field to no avail. I come from a background of studying Product Design at the best undergrad art university in the UK, then have worked for the web in Graphic Design and a bit of Marketing... have done some Sales and am comfortable with communicating my design concepts to groups, have studied English and writing (experience with online copy writing), have studied Anthropology and have a fascination with psychology. Myself, I think I'm an ideal candidate! Yet, still I can't seem to find a job that is junior/entry-level/graduate.

Please help. Advice? I want someone to see my fervor for creative problem solving and snatch me up.

I guess point3 doesnt apply to Apple since thats how they work, everything is in cones of silence, devs dont know what the hardware is going to be like, and hardware doesnt know what the code is going to require

I work with many leading digital agencies who have a need for great Designers, generally a killer portfolio, a great eye for design and a basic grasp of web technology are the core skills.

Obviously a good knowledge of programming languages can help but is normally more attractive to the smaller agencies.

Hope this helps.


if HTML & javaScript isn't programming, what is it?

@Ian: Java Script is a programming language and you can implement algorithems in it like you can in C, Java or Lisp. Copy-Paste Javascript does indeed not count. Same with any other language.

> "You don't need to be a great coder, but you should at least be able to get your idea across in in HTML and Javascript."

I agree, but this doesn't really count as 'programming'.