I invested most my time and resources in programming, and now I think it's time I should invest some time in learning about user interface design, user experience, and usability.

What are some good resources about usability and designing user interfaces? I'm mainly looking for more theoretical topics, such as color theory and color physiology and how they affect users, along with information about best practices.

  • 4
    Application design and architecture is very different than user interface/experience design. You mention good program design and good interface design. Which are you interested in?
    – Thomas Owens
    Commented Aug 17, 2011 at 19:24
  • User Interface And Usability
    – Brandon_R
    Commented Aug 17, 2011 at 19:32
  • Please be careful with the wording of your questions. The initial version of this one was very much a "list of X" type question (see the FAQ for more details)
    – ChrisF
    Commented Aug 17, 2011 at 19:37

5 Answers 5


Start by bookmarking https://ux.stackexchange.com/ If you are concerned about UI design then start by creating some custom controls. Think of something that you think is not possible on one platform (like an awesome looking control on WinForms) and try to design it yourself. I've learned a lot this way. More you experience more you learn. I also recommend reading any or all of the following books:

Rocket Surgery Made Easy => From the author who wrote Don't Make Me Think

Designing Interfaces => This book is a big one and covers the design patters for UI. There is a chapter on psychological aspect too.

Visualize This => I just started reading it and it is awesome. It is mostly about using statistics to visualize your data but is a great book on cool looking visualization.

  • Definitly bookmarked ux.s.com. Seems like a good resource.
    – Brandon_R
    Commented Aug 17, 2011 at 19:39

I would suggest picking up a copy of Don't Make Me Think. It's an excellent beginners guide to usability that goes over some important fundamentals.


I'm a big fan of being your own usability lab. What I mean by this is we typically make developers walk in end-user's shoes and use the things they build if at all possible -- as in make them take orders using the screens they built. Funny how tab order gets fixed when the guy who can change it has to fight it. And funny how he doesn't make the same mistake again.


UI design is one of those things that seems to alude many of us software developers (especially those of us that are the data-driven type). But, in my experience, UI design gets better...a lot better...with not just time, but a lot of practice.

A while back when I started to get into the visual aspect of software development, my WinForms applications looked hurrendous. Something straight out of the '90s. I got better at it, and before I knew it I picked up a few desktop/thick client design skills.

Then I made the shift into web development. The first few web applications I wrote were just an eyesore. Then all of a sudden, I got really good with HTML/CSS/JavaScript and a hint of graphic design and everything started to look better.

UI design is one of those things that just isn't boolean. There is such a gray area that nobody can really tell you how to do it and what is the way to go about it. You need to do it. You need to make some terrible looking applications. Then, and only then, will you know how to progress and what to change/modify/add/delete from your UI toolbox.


Also ready the book "The Design of Everyday Things" by Donald A. Norman. It's not about software and it was written quite a few years ago, but the concepts are very sound and useful. Plus, it's fun to read.

Not the answer you're looking for? Browse other questions tagged or ask your own question.