Uh-oh, it looks like your Internet Explorer is out of date.

For a better shopping experience, please upgrade now.

User Interface Design for Programmers

User Interface Design for Programmers

3.6 3
by Joel Spolsky

See All Formats & Editions

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


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.

Editorial Reviews

From the Publisher
From the reviews:

"He picks apart commercial products from big companies, showing their UI mistakes. I love that."
Dr. Dobb's Journal

"The author of a popular independent website gives you a book about what programmers need to know about user interface design. Spolsky concentrates especially on the common mistakes that too many programs exhibit. Most programmers dislike user interface programming, but this book makes it easy, straightforward, and fun. It is written with an audience of programmers in mind, but does not assume any prior programming knowledge nor any specific programming language." (Amazon.co.uk, April, 2001)

"This book offers many useful pointers on designing user interfaces which even experienced programmers should need. The 18 chapters cover topics ranging from effective use of colour to metaphors and usability testing. Underlined throughout is the most fundamental principle that ‘a user interface is well designed when the program behaves how the user thought it would’. The style is informal, humorous and anecdotal. There are numerous examples of design at its worst, each with an explanation of why the design is poor." (Richard Avery, The Computer Bulletin, March, 2002)

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.

Product Details

Publication date:
Sold by:
Barnes & Noble
File size:
4 MB

Related Subjects

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.

Meet the Author

Joel Spolsky is a globally recognized expert on the software development process. His web site Joel on Software (JoelonSoftware.com) 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.

Customer Reviews

Average Review:

Post to your social network


Most Helpful Customer Reviews

See all customer reviews

User Interface Design for Programmers 3.7 out of 5 based on 0 ratings. 3 reviews.
Anonymous More than 1 year ago
Guest More than 1 year ago
When you press the brakes of a car...you 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 (well...got 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 seriously...it 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 duh....really..so...design for duh people. - And for the myths vs facts (my favs) - Flash sucks and kills the web-page ... Joel says YES....so 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. Overall...an excellent read.... My rating for the book.....Four on Five.
Guest More than 1 year ago
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.