My favorites:
- User Interface Design for Programmers by Joel Spolsky. A good first book for programmers. Phrases that will stick in your mind and affect your design, like "People can't control the mouse."
- About Face: The Essentials of Interaction Design by Alan Cooper et al. Desktop-centric. Excellent.
- Don't Make Me Think by Steve Krug. Web-centric. Short, easy read, good ideas, some remarks on usability testing.
- Designing Interfaces: Patterns for Effective Interaction Design by Jennifer Tidwell
- The Elements of Friendly Software Design by Paul Heckel (out of print, pre-GUI, still some good principles, like "Avoid frustrating the user")
- Designing Visual Interfaces: Communication Oriented Techniques by Kevin Mullet and Darell Sano. Out-of-print, and out-of-date graphics, but still excellent. Good chapter on icons.
- The Essential Guide to User Interface Design: An Introduction to GUI Design Principles and Techniques by Wilbert Galitz. Focuses on usage of low-level controls. Good chapter on communicating with the user.
At some point in your career, you may enjoy this wonderful book that draws parallels across multiple fields of design. (For example, the "confirmation" technique occurs both in software design and nuclear launch control.)
- Universal Principles of Design by William Lidwell