We recently got a bunch of UI/design books for the office, per my request. One of the ones that made it on the list was Joel Spolsky's User Interface Design for Programmers. I usually enjoy Joel's writing and insights, and the Amazon community gave it 4 out of 5 stars in 41 votes, so it seemed like a good choice for our bookshelf.
Overall, I was not impressed with the content. The book gave an overview of user interface design, presenting general principles such as "People Can't Read", but failing to provide much insightful research or practical application. Most of the data was anecdotal. Although I generally am fond of Joel's blog posts, stackoverflow answers, and other short writings, I grew tired of reading chapter after chapter of his style and humor. Also, since the book was published in 2001, most of the examples were obviously dated (as is the cover design).
The main two concepts that I got out of the book were:
- The idea of user model vs program model: the closer your program can behave as the user thinks it behaves, the more usable it will be.
- (Traditional) usability tests are bogus. You can do your own on the cheap.
You are better off just reading the blog posts on which this book is based. Here's chapter one. There is supposed to be additional content in the book, but it's not worth it.