I've been writing computer code since the 1970s and have seen a wide variety of user interfaces - thermal paper rather than a screen, single-color displays, full color displays, mice, pens, keyboards, and other options. User interfaces are always changing and updating and being tweaked. With that in mind, I find it admirable that a book tries to document exactly what the current state of interfaces is - and not too surprising that the book can become obsolete the moment it comes off the presses.
So a portion of the book is common sense that can apply to creating interfaces in any decade. Your interface needs to be easy for a brand new user to use. It should provide "training wheels" for those new to the system, and then ease them into full use. A well done design should account for both elderly users and disabled users.
Various concepts are covered, like:
gulf of execution - mismatch between user's intentions and allowable actions
gulf of evaluation - mismatch systems representation and user's expectations
On one hand you could say these are good foundations for any designer to understand. You want to create icons that users understand without a thick manual. You want users to be able to quickly get the hang of your system and enjoy using it. But on the other hand, the book almost seems to assume that the user has never seen a keyboard or mouse before starting in to the topic. Surely readers know what a menu is, and how to navigate it. I'm all for books covering the basics and then going on to more complex topics, but the book wallows a little too much in those basics.
Also, the language tends to sway between incredibly simple and incredibly dense. Where the book teaches you to identify and speak to your audience, the book itself isn't able to do that well. Sometimes it assumes the reader is a visitor from the 1800s who has never heard of a computer, never mind tried to use one. Then a few pages later the page is describing a situation with incredibly technical language that is unclear even to experienced programmers.
Still, if we assume the purpose of this book is to give an overview about what things a designer should consider when creating a design, the book does that well. It has a variety of graphics drawn from current websites, that will help the content be understandable to web-savvy users. If you complain that some of the tips are extremely obvious, you can give that same complaint about just about any book you read. They have to include obvious tips as well as the advanced ones, so they cover all the bases.
So how to rate this? As an esoteric "overview of how computers should work" I give it 4/5 stars. It has generally accurate information, with helpful graphics, and while the language is sometimes oversimplified and sometimes obtuse, it generally is quite readable.
However, know going into it that the book is meant for this type of an overview. This is NOT a book I would ever give to any web designer or interface designer as a helpful tool to use and keep on the shelf. You can't flip the book open to a section to get tips on designing areas of your application. You can't scan through charts telling you what to do and what to avoid. While many other books are laid out well for this sort of purpose, Designing the User Interface is not.
When I read my many other books on computers and design, I amassed copious notes that I would use in my programming life. When I finished this one, I had accumulated barely a page of notes at the end.