Gift Guide

User Interface Design for Programmers [NOOK Book]


Most programmers' fear of user interface (UI) programming comes from their fear of doing UI design. They think that UI design is like graphic design—the mysterious process by which creative, latte-drinking, all-black-wearing people produce cool-looking, artistic pieces. Most programmers see themselves as analytic, logical thinkers instead—strong at reasoning, weak on artistic judgment, and incapable of doing ...

See more details below
User Interface Design for Programmers

Available on NOOK devices and apps  
  • NOOK Devices
  • Samsung Galaxy Tab 4 NOOK 7.0
  • Samsung Galaxy Tab 4 NOOK 10.1
  • NOOK HD Tablet
  • NOOK HD+ Tablet
  • NOOK eReaders
  • NOOK Color
  • NOOK Tablet
  • Tablet/Phone
  • NOOK for Windows 8 Tablet
  • NOOK for iOS
  • NOOK for Android
  • NOOK Kids for iPad
  • PC/Mac
  • NOOK for Windows 8
  • NOOK for PC
  • NOOK for Mac
  • NOOK for Web

Want a NOOK? Explore Now

NOOK Book (eBook)
$13.49 price
(Save 43%)$23.99 List Price


Most programmers' fear of user interface (UI) programming comes from their fear of doing UI design. They think that UI design is like graphic design—the mysterious process by which creative, latte-drinking, all-black-wearing people produce cool-looking, artistic pieces. Most programmers see themselves as analytic, logical thinkers instead—strong at reasoning, weak on artistic judgment, and incapable of doing UI design.

In this brilliantly readable book, author Joel Spolsky proposes simple, logical rules that can be applied without any artistic talent to improve any user interface, from traditional GUI applications to websites to consumer electronics. Spolsky's primary axiom, the importance of bringing the program model in line with the user model, is both rational and simple.

In a fun and entertaining way, Spolky makes user interface design easy for programmers to grasp. After reading User Interface Design for Programmers, you'll know how to design interfaces with the user in mind. You'll learn the important principles that underlie all good UI design, and you'll learn how to perform usability testing that works.

Read More Show Less

Editorial Reviews

From Barnes & Noble
b>The Barnes & Noble Review
Why do so many programmers hate building user interfaces? OK, some think users are morons -- you know, "lusers." But there's a bigger reason: real insecurity about their ability to do this (allegedly) "artistic" work. Truth is, you can build really good UIs by combining a few basic rules and principles with some good-old-fashioned common sense. Joel Spolsky has gathered all these into one terrific book: User Interface Design For Programmers.

Rule No. 1, Spolsky says, is this: "A user interface is well designed when the program behaves exactly how the user thought it would." So how do you figure out what users expect, realizing that (as a programmer) you aren't one of them? Ask a few (it doesn't have to be many). And think more clearly about what you're doing.

For example, should users really have to decide how big the Help database index ought to be, when she merely wants to know how to turn an image upside down? No choice is often better than interrupting the user's workflow with a decision that's irrelevant to their goals.

Spolsky shows how to use metaphors (including when to use them, and how to avoid bad ones.) You'll see why tabbed dialogs work (except when they start jumping around "like restless children on Class Photo Day"); and why other metaphors, such as My Briefcase, were screaming failures.

Spolsky advocates designing as if your users can't read, can't use a mouse well, and "have such bad memories they would forget their own name if it weren't embossed on their American Express." (As Spolsky emphasizes, they're rarely that dumb, but are often preoccupied with more important matters.) He also offers practical guidance on using heuristics (why it's OK for Word to replace "teh" with "the," but never to tell you "It looks like you're writing a letter"?)

Spolsky offers quick introductions to the process of effective user interface design, and the realities of user interface testing (what you can legitimately discover via up-front testing, what you can't, and why you'd better make sure the developers are watching through the one-way glass). The book concludes by applying its principles to web design, with its added challenges -- the limitations of HTML, and time delay associated with round-trips to a server, which tend to make web interfaces feel clunky at best. You'll learn why less web user interface is usually better (it means users will rely on hyperlinks and their browser controls, which they might actually understand by now.)

User Interface Design For Programmers is a pleasure to read. It doesn't just demystify user interface design, it humanizes the subject. Heck, even makes it fun.(Bill Camarda)

--Bill Camarda is a consultant, writer, and web/multimedia content developer with nearly 20 years' experience in helping technology companies deploy and market advanced products and services. He served for nearly ten years as vice president of a New Jersey-based marketing company, where he supervised a wide range of graphics and web design projects. His 15 books include Special Edition Using Word 2000.

Read More Show Less

Product Details

  • ISBN-13: 9781430208570
  • Publisher: Apress
  • Publication date: 6/25/2001
  • Sold by: Barnes & Noble
  • Format: eBook
  • Edition number: 1
  • Pages: 144
  • File size: 4 MB

Meet the Author

Joel Spolsky is a globally recognized expert on the software development process. His web site Joel on Software ( is popular with software developers around the world and has been translated into over 30 languages. As the founder of Fog Creek Software in New York City, he created FogBugz, a popular project management system for software teams. Joel has worked at Microsoft, where he designed Visual Basic for Applications as a member of the Excel team, and at Juno Online Services, developing an Internet client used by millions. He has written two books: User Interface Design for Programmers (Apress, 2001) and Joel on Software (Apress, 2004). Joel holds a bachelor's of science degree in computer science from Yale University. Before college, he served in the Israeli Defense Forces as a paratrooper, and he was one of the founders of Kibbutz Hanaton.
Read More Show Less

Read an Excerpt

-From the Introduction:
Most of the hard-core programmers I know hate user interface programming. This surprises me, because I find UI programming to be quintessentially easy, straightforward, and fun. It's easy because you usually don't need algorithms more sophisticated than how to center one rectangle in another. It's straightforward because when you make a mistake, you immediately see it and can correct it. It's fun, because the results of your work are immediately visible. You feel like you are sculpting the program directly. I think most programmers' fear of UI programming comes from their fear of doing UI design. They think that UI design is like graphics design: the mysterious process by which creative, latte-drinking, all-dressed-in-black people with interesting piercings produce cool looking artistic stuff. Programmers see themselves as analytic, logical thinkers: strong at reasoning, weak on artistic judgment. So they think they can't do UI design. Actually, I've found UI design to be quite easy and quite rational. It's not a mysterious matter that requires a degree from an art school and a penchant for neon-purple hair. There is a rational way to think about user interfaces with some simple, logical rules that you can apply anywhere to improve the interfaces of the programs you work on. This book is not "Zen and the Art of UI Design." It's not art, it's not Buddhism, it's just a set of rules. A way of thinking rationally and methodically. This book is designed for programmers. I assume you don't need instructions for how to make a menu bar; rather, you need to think about what to put in your menu bar (or whether to have one at all). You'll learn the one primary axiom that guides all good UI design, and some of the corollaries. We'll look at some examples from real life, modern GUI programs. When you're done, you'll know about 85% of what it takes to be a significantly better user interface designer. Spolsky tells it like it is in such pithy comments as: I haven't talked about software for a while. When you're designing for extremes with software, the three most important "extremes" to remember are: 1. Design for people who can't read. 2. Design for people who can't use a mouse. 3. Design for people who have such bad memories they would forget their own name if it weren't embossed on their American Express.
Read More Show Less

Table of Contents

Ch. 1 Controlling Your Environment Makes You Happy 1
Ch. 2 Figuring Out What They Expected 7
Ch. 3 Choices 15
Ch. 4 Affordances and Metaphors 23
Ch. 5 Broken Metaphors 33
Ch. 6 Consistency and Other Hobgoblins 43
Ch. 7 Putting the User in Charge 49
Ch. 8 Design for Extremes 57
Ch. 9 People Can't Read 61
Ch. 10 People Can't Control the Mouse 67
Ch. 11 People Can't Remember 75
Ch. 12 The Process of Designing a Product 81
Ch. 13 Those Pesky Usability Tests 89
Ch. 14 Relativity: Understanding UI Time Warps 103
Ch. 15 "But ... How Do It Know?" 109
Ch. 16 Tricks of the Trade 115
Ch. 17 Designing for the Web 121
Ch. 18 Programming for Humans 133
Shockingly Selective Bibliography 135
Index 137
Read More Show Less

Customer Reviews

Average Rating 3.5
( 3 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously
Sort by: Showing all of 3 Customer Reviews
  • Anonymous

    Posted January 6, 2005

    A must read for a real programmer

    When you press the brakes of a dont get a little dialog box that pops up and says ' Stop Now? (Yes/No)'...or do you? Aren't we really happy that everything is not really based on windows (as yet). When i picked up this book ( it as an Xmas present), I expected it to be more from a graphical perspective. But it was not to be. The small size of the book and its author certainly persuaded me to go ahead and read the book...and was worth my time. To summarize: - Not always really sensible to write a windows based program which completely contradicts the way Microsoft places controls on the form. - While designing web-programs, try minimizing frequent trips to the server...(some apps do it even now ... damn). Use applets dude. - Know thy user......damn......Joel presents so many examples of how stuff should not be made. - While designing UI's for users, creativity should take the back-seat and 'common-sense and intuition' takes the drivers seat. - Users are for duh people. - And for the myths vs facts (my favs) - Flash sucks and kills the web-page ... Joel says do I - Frames are stupid and are misleading ... I agree ...and so does Joel. - And I disagree with one thing....Color coding does not really help. I am tempted to say that color coding is a matter of user-preference....(considering that you are not too color-bling)...and it certainly helps to have color coding for stuff you use on a daily basis. Maybe...its for the overly-organized folks...but still....if someone is trying to use a computer for something other than games,movies or programming, he/she is using it for organizing stuff...period. excellent read.... My rating for the book.....Four on Five.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted September 29, 2003

    Falls short of what it could have been.

    User Interface Design is a topic which I have always been interested in. I believe it was PCWorld Magazine that used to have a column dedicated to improving the design of a submitted interface, and there were many things I learned from that column. This book seems to work from the basis of that column, but doesn¿t go as far as I would have liked it to. There are many anecdotes included in the book, and they were very illustrative as to the problems people encounter when working with a badly designed interface. I especially liked the concept of the mile-high menu bar that Mac users have, and how that compares to the small footprint that a Windows user must target to open a menu. Still, I was left wanting more. The book serves as a great introduction, but if you¿re already done some UI Design, you might already be familiar with most of what is explained in the book. The anecdotes are what really make the book appealing, but I wouldn¿t recommend purchasing the book just for those. It¿s a good book, it just falls short of what it could have been.

    Was this review helpful? Yes  No   Report this review
  • Anonymous

    Posted October 15, 2010

    No text was provided for this review.

Sort by: Showing all of 3 Customer Reviews

If you find inappropriate content, please report it to Barnes & Noble
Why is this product inappropriate?
Comments (optional)