While I think much UI and interaction design is best left to the experts, I also believe that developers benefit from learning as much about these trades as possible. Not only will improving your sense of design cause you to tend towards making the right decisions in your own work, but it will provide for a more educated conversation with any design professionals who you work with.
To that end, here are some of my favorite books on design:
The Non-Designers Design Book
by Robin Williams.
I read this book several years ago and it got my brain moving in the design direction. As somebody who started as a complete novice, and is gradually learning the language of design, I whole-heartedly endorse this book as a great launchpad for your doing the same.
This book only covers the most basic of design fundamentals, but those basics are enough to dramatically transform your design awareness and competence. You’ll discover basic “tricks” for alignment, balance, and contrast which will take you from “no clue” to “having a hunch” pretty quickly.
This book is so affordable and so useful to complete novices, you should buy it even if you’re not convinced that a design education is right for you.
Universal Principles of Design
by William Lidwell, Kritina Holden, and Jill Butler.
This one is great for bedtime inspiration. Get your design gears turning as you dream with this highly visual, accessible, high level discussion of various timeless principles that influence what makes good design.
An especially nice feature of this book is how terse and to the point the writing is, accompanied by creatively direct examples of the principles at hand. It’s also refreshing the way these concepts are illustrated in universal terms that often take a step away from computers and software. So you’ll learn about the design principles behind icons, for instance, without necessarily obsessing over the ways they are used on a computer.
by Jenifer Tidwell.
Much more nitty-gritty and detailed than UPD, this one is also particularly geared towards the task of organizing information and managing user interactions on the web and in desktop applications. The book is organized in a “design pattern” format that gives a comforting name to many common visual design idioms. For instance, the familiar NSTabView in Cocoa is represented by the entry titled Card Stack. If you’re looking for inspiration and confirmation about how you are designing your application or web page interfaces, this is a great book to have on hand.
- About Face: The Essentials of Interaction Design
by Alan Cooper, Robert Reimann, and David Cronin.
When you’re ready to “go deep” on interaction design and the philosophical arguments for doing things one way or the other, turn to Alan Cooper’s classic book on the subject. While some of my other recommendations are aimed at stimulating your visual intelligence, Cooper’s book rationalizes design in terms of how humans are wired for perception and developing mental models of complex representations.
I find Cooper’s disregard for the status quo especially refreshing. He’s liable to recommend things be done differently even if it flies in the face of years of convention. As just one example, he argues that the ubiquitous “File” menu be disbanded, because it imposes technicalities of the computer on users who shouldn’t be required to care about such details.
The Design of Everyday Things
by Donald A. Norman.
Are you the type of person who is disgustedly disdainful when the shower faucet in a hotel bathroom doesn’t work the way you think it should? If not, you run the risk of being transformed into that type of person after reading this book, critiquing the design of the most common objects in our everday lives.
If you’re like me, you probably take for granted the design of many things in life without much thought. But Donald Norman’s analysis woke me up to the ways in which things should be simpler and more conducive to human interaction. Now I find myself a little more furious at the everyday items I encounter, but with each agony I experience, I also take away my own personal lesson on how similar mistakes could apply to software interfaces.
Don’t Make Me Think
by Steve Krug.
I used to think of this book as more suitable to web designers than desktop developers, but lately it’s been on my mind a lot more in the context of the iPhone, where some of its basic ideas are very suitable.
The gist of the book is that people are easily overwhelmed by complexity, and the more choices you provide in any given interface, the less likely a user is to choose any one of them. In other words, if you want users to have an easy time using your web page or application, make it exceedingly easy for them to figure out where to click next. Don’t make them think.