We analysed more than 40 000 000 questions and answers on stackoverflow.com to bring you the top of most mentioned books (5720 in total)

How we did it:

  • We got database dump of all user-contributed content on the Stack Exchange network (can be downloaded here)
  • Extracted questions and answers made on stackoverflow
  • Found all amazon.com links and counted it
  • Created tag-based search for your convenience
  • Brought it to you

For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks

Recomended tags

Top user-interface books mentioned on stackoverflow.com

Working Effectively with Legacy Code

Michael C. Feathers

The average book on Agile software development describes a fairyland of greenfield projects, with wall-to-wall tests that run after every few edits, and clean & simple source code.


The average software project, in our industry, was written under some aspect of code-and-fix, and without automated unit tests. And we can't just throw this code away; it represents a significant effort debugging and maintaining. It contains many latent requirements decisions. Just as Agile processes are incremental, Agile adoption must be incremental too. No more throwing away code just because it looked at us funny.


Mike begins his book with a very diplomatic definition of "Legacy". I'l skip ahead to the undiplomatic version: Legacy code is code without unit tests.


Before cleaning that code up, and before adding new features and removing bugs, such code must be de-legacified. It needs unit tests.


To add unit tests, you must change the code. To change the code, you need unit tests to show how safe your change was.


The core of the book is a cookbook of recipes to conduct various careful attacks. Each presents a particular problem, and a relatively safe way to migrate the code towards tests.


Code undergoing this migration will begin to experience the benefits of unit tests, and these benefits will incrementally make new tests easier to write. These efforts will make aspects of a legacy codebase easy to change.


It's an unfortunate commentary on the state of our programming industry how much we need this book.

More on Amazon.com

Design Patterns

Ralph Johnson, Erich Gamma, John Vlissides, Richard Helm

Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves. The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the software development process, and how you can leverage them to solve your own design problems most efficiently. Each pattern describes the circumstances in which it is applicable, when it can be applied in view of other design constraints, and the consequences and trade-offs of using the pattern within a larger design. All patterns are compiled from real systems and are based on real-world examples. Each pattern also includes code that demonstrates how it may be implemented in object-oriented programming languages like C++ or Smalltalk. 0201633612B07092001

More on Amazon.com

Clean Code

Robert C. Martin

An extremely pragmatic method for writing better code from the start, and ultimately producing more robust applications.

More on Amazon.com

Java concurrency in practice

Brian Goetz, Tim Peierls

Provides information on building concurrent applications using Java.

More on Amazon.com

Patterns of Enterprise Application Architecture

Martin Fowler

This volume is a handbook for enterprise system developers, guiding them through the intricacies and lessons learned in enterprise application development. It provides proven solutions to the everyday problems facing information systems developers.

More on Amazon.com

Refactoring

Martin Fowler, Kent Beck

Users can dramatically improve the design, performance, and manageability of object-oriented code without altering its interfaces or behavior. "Refactoring" shows users exactly how to spot the best opportunities for refactoring and exactly how to do it, step by step.

More on Amazon.com

Head First Design Patterns

Eric Freeman, Elisabeth Freeman, Kathy Sierra, Bert Bates

Provides design patterns to help with software development using the Java programming language.

More on Amazon.com

Cocoa Programming for Mac OS X

Aaron Hillegass

A revision of the highly acclaimed introduction to Cocoa programming, updated for Mac OS X Leopard.

More on Amazon.com

Don't Make Me Think!

Steve Krug

Web-usability expert Steve Krug updates his classic guide to designing intuitive navigation for the ideal user experience.

More on Amazon.com

Programming Windows

Charles Petzold

Comprehensive, complete coverage is given of Windows programming fundamentals. Fully revised for Windows 98, this edition covers the basics, special techniques, the kernel and the printer, data exchange and links, and real applications developed in the text.

More on Amazon.com

Windows Presentation Foundation Unleashed

Adam Nathan, Daniel Lehenbauer

A guide to Windows Presentation Foundation covers such topics as XAML, controls, 3D graphics, UI elements, and applications.

More on Amazon.com

C++ GUI Programming with Qt 4

Jasmin Blanchette, Mark Summerfield

Accompanied by a CD-ROM containing the open source editon of Qt 4.3, as well as examples and source code from the book, an updated guide to Qt 4 programming provides information on such topics as creating dialog boxes, file menus, user interfaces, graphical user interface programming, changes from Qt 4.2 and 4.3, custom widgets for applications, SVG file generation, and more. Original. (Intermediate)

More on Amazon.com

Don't Make Me Think!

Steve Krug

Discusses how to design usable Web sites by exploring how users really use the Web and offers suggestions for streamlining navigation, creating a home page, and writing for Web sites.

More on Amazon.com

Implementing Domain-Driven Design

Vaughn Vernon

“For software developers of all experience levels looking to improve their results, and design and implement domain-driven enterprise applications consistently with the best current state of professional practice, Implementing Domain-Driven Design will impart a treasure trove of knowledge hard won within the DDD and enterprise application architecture communities over the last couple decades.” –Randy Stafford, Architect At-Large, Oracle Coherence Product Development “This book is a must-read for anybody looking to put DDD into practice.” –Udi Dahan, Founder of NServiceBus Implementing Domain-Driven Design presents a top-down approach to understanding domain-driven design (DDD) in a way that fluently connects strategic patterns to fundamental tactical programming tools. Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations. Building on Eric Evans' seminal book, Domain-Driven Design, the author presents practical DDD techniques through examples from familiar domains. Each principle is backed up by realistic Java examples–all applicable to C# developers–and all content is tied together by a single case study: the delivery of a large-scale Scrum-based SaaS system for a multitenant environment. The author takes you far beyond “DDD-lite” approaches that embrace DDD solely as a technical toolset, and shows you how to fully leverage DDD's “strategic design patterns” using Bounded Context, Context Maps, and the Ubiquitous Language. Using these techniques and examples, you can reduce time to market and improve quality, as you build software that is more flexible, more scalable, and more tightly aligned to business goals. Coverage includes Getting started the right way with DDD, so you can rapidly gain value from it Using DDD within diverse architectures, including Hexagonal, SOA, REST, CQRS, Event-Driven, and Fabric/Grid-Based Appropriately designing and applying Entities–and learning when to use Value Objects instead Mastering DDD's powerful new Domain Events technique Designing Repositories for ORM, NoSQL, and other databases

More on Amazon.com

Computer Graphics

James D. Foley

A guide to the concepts and applications of computer graphics covers such topics as interaction techniques, dialogue design, and user interface software.

More on Amazon.com

The Design of Everyday Things

Donald A. Norman

Reveals a current trend in smart design that can enable companies to move to or remain on the leading edge of the competitive frontier, offering a primer on how and why various products succeed or fail to satisfy consumers. Originally published as The Psychology of Everyday Things. Reprint. 25,000 first printing.

More on Amazon.com

About face 3

Alan Cooper, Robert Reimann, Dave Cronin

While the ideas and principles in the original book remain as relevant as ever, the examples in "About Face 3" are updated to reflect the evolution of the Web. Interaction Design professionals are constantly seeking to ensure that software and software-enabled products are developed with the end-user's goals in mind, that is, to make them more powerful and enjoyable for people who use them. "About Face 3" ensures that these objectives are met with the utmost ease and efficiency. Alan Cooper (Palo Alto, CA) has spent a decade making high-tech products easier to use and less expensive to build - a practice known as "Interaction Design." Cooper is now the leader in this growing field.

More on Amazon.com

Advanced Programming in the UNIX Environment

W. Richard Stevens, Stephen A. Rago

The revision of the definitive guide to Unix system programming is now available in a more portable format.

More on Amazon.com

WPF 4 Unleashed

Adam Nathan

Looks at the features and functions of Windows Presentation Foundation, covering such topics as XAML, creating an application object, content controls, pages and navigation, commands, data binding, and data templates.

More on Amazon.com

The Psychology of Everyday Things

Donald A. Norman

Even the smartest among us can feel inept as we fail to figure our which light switch or oven burner to turn on, or whether to push, pull, or slide a door. The fault, argues this book, lies not in ourselves, but in product design that ignores the needs of users and the principles of cognitive psychology. The problems range from ambiguous and hidden controls to arbitrary relationships between controls and functions, coupled with a lack of feedback or other assistance and unreasonable demands on memorization. The book presents examples aplenty, among them, the VCR, computer, and office telephone, all models of how not to design for people. But good, usable design is possible. The rules are simple: make things visible, exploit natural relationships that couple function and control, and make intelligent use of constraints. The goal: guide the user effortlessly to the right action on the right control at the right time. But the designer must care. The author is a world-famous psychologist and pioneer in the application of cognitive science. His aim is to raise the consciousness of both consumers and designers to the delights of products that are easy to use and understand.

More on Amazon.com

3D Math Primer for Graphics and Game Development

Fletcher Dunn, Ian Parberry

This book covers fundamental 3D math concepts that are especially useful for computer game developers and programmers.

More on Amazon.com

Pattern-Oriented Software Architecture, A System of Patterns

Frank Buschmann

Pattern - Oriented Software Architecture A System of Patterns Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sommerlad, Michael Stal of Siemens AG, Germany Pattern-oriented software architecture is a new approach to software development. This book represents the progression and evolution of the pattern approach into a system of patterns capable of describing and documenting large-scale applications. A pattern system provides, on one level, a pool of proven solutions to many recurring design problems. On another it shows how to combine individual patterns into heterogeneous structures and as such it can be used to facilitate a constructive development of software systems. Uniquely, the patterns that are presented in this book span several levels of abstraction, from high-level architectural patterns and medium-level design patterns to low-level idioms. The intention of, and motivation for, this book is to support both novices and experts in software development. Novices will gain from the experience inherent in pattern descriptions and experts will hopefully make use of, add to, extend and modify patterns to tailor them to their own needs. None of the pattern descriptions are cast in stone and, just as they are borne from experience, it is expected that further use will feed in and refine individual patterns and produce an evolving system of patterns. Visit our Web Page http://www.wiley.com/compbooks/

More on Amazon.com

User Interface Design for Programmers

Joel Spolsky

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.

More on Amazon.com

Object-oriented Design Heuristics

Arthur J. Riel

Wouldn't you like to have a seasoned OO design expert looking over your shoulder, critiquing your work, and giving advice on how to improve it? Here are 60 language-independent guidelines for evaluating the quality and integrity of object-oriented designs that will help you pinpoint where your design needs help and how to improve it. The guidelines range from such topics as classes and objects (with emphasis on their relationships) to physical object-oriented design. In particular, you will gain an understanding of the synergy between design heuristics, which can highlight a problem, and design patterns, which can provide the solution.

More on Amazon.com

The Humane Interface

Jef Raskin

The honeymoon with digital technology is over: millions of users are tired of having to learn huge, arcane programs to perform the simplest tasks and have had enough of system crashes. In "The Humane Interface", Jef Raskin--the legendary, controversial creator of the original Apple Macintosh project--shows that there is another path. The book presents breakthrough solutions for navigation, error management, and more, with detailed case studies from the author's own work.

More on Amazon.com

Designing Interfaces

Jenifer Tidwell

Provides information on designing easy-to-use interfaces.

More on Amazon.com

CSS Mastery

Simon Collison, Andy Budd, Cameron Moll

Building on what made the first edition a bestseller, CSS Mastery: Advanced Web Standards Solutions, Second Edition unites the disparate information on CSS-based design spread throughout the internet into one definitive, modern guide. Revised to cover CSS3, the book can be read from front to back, with each chapter building on the previous one. However, it can also be used as a reference book, dipping into each chapter or technique to help solve specific problems. In short, this is the one book on CSS that you need to have. This second edition contains: New examples and updated browser support information New case studies from Simon Collison and Cameron Moll CSS3 examples, showing new CSS3 features, and CSS3 equivalents to tried and tested CSS2 techniques What you’ll learn The best practice concepts in CSS design. The most important (and tricky) parts of CSS Identify and fix the most common CSS problems How to deal with the most common bugs Completely up to date browser support information Covers CSS3 as well as CSS2 showing you the future of CSS Who this book is for This book will be aimed towards intermediate web designers/developers, although the examples should be simple enough for novice designers/developers with a basic understanding of CSS to grasp. Readers will probably have read beginner/intermediate instructional books such as Web Standards Solutions and will be looking for more practical and in-depth information. This book is likely to have a broad appeal, attracting intermediate developers wanting to improve their skills as well as advanced developers wanting a useful reference. The CSS 2/3 content of the book is delivered in a way that allows readers to learn CSS2 techniques that they can implement now in professional work, and then gem up on CSS3 techniques if they want to start looking towards the future. Table of Contents Setting the Foundations Getting Your Styles to Hit the Target Visual Formatting Model Overview Using Backgrounds for Effect Styling Links Styling Lists and Creating Nav Bars Styling Forms and Data Tables Layout Bugs and Bug Fixing Case Study: Roma Italia Case Study: Climb the Mountains

More on Amazon.com

Filthy Rich Clients

Chet Haase, Romain Guy

This book is about building better, more effective and cooler desktop application using Java tools. Graphical effects, especially animated ones, can be overdone creating an application that would overload the senses. The authors show how to enrich the graphics and animate effectively.

More on Amazon.com

Microsoft Certified Technology Specialist Self-paced Training Kit (exam 70-536)

Tony Northrup

Your 2-in-1 Self-Paced Training Kit. Fully updated and revised! Ace your preparation for the skills measured by MCTS Exam 70-536—and on the job. With this official Microsoft study guide, you'll work at your own pace through a series of lessons and reviews that fully cover each exam objective. Then reinforce and apply what you've learned through real-world case scenarios and practice exercises. Maximize your performance on the exam by learning to: Develop applications that use system types and collections Validate input, reformat text, and extract data with regular expressions Create services and multi-threaded applications Implement code-access security and role-based security Implement serialization to read and write complex objects Leverage legacy code using interoperability Monitor and troubleshoot applications Create applications for a global audience PRACTICE TESTS Assess your skills with practice tests on CD. You can work through hundreds of questions using multiple testing modes to meet your specific learning needs. You get detailed explanations for right and wrong answers?including a customized learning path that describes how and where to focus your studies. Your kit includes: 15% exam discount from Microsoft. (Limited time offer). Official self-paced study guide. Practice tests with multiple, customizable testing options and a learning plan based on your results. 300+ practice and review questions. Code samples in Microsoft Visual Basic and Visual C# on CD. Case scenarios, exercises, and best practices. 90-day evaluation of Microsoft Visual Studio Professional 2008. Fully searchable eBook of this guide. A Note Regarding the CD or DVD The practice test materials are available as a download along with your ebook version of the kit, and will be located in your account. Please direct any questions or concerns to booktech@oreilly.com.

More on Amazon.com

javac#c++c.netalgorithmphppythonjavascriptdesignasp.netlanguage-agnosticdesign-patternsandroidoopsqllinuxdatabasematharchitectureperformanceprogramming-languagesresourcesuser-interfacemysqlhtmlsql-serverwindowsiphonerubyiosmultithreadingdata-structuresresearchobjective-csecuritycomputer-scienceassemblyruby-on-railsjquerydatabase-designdocumentationasp.net-mvcunit-testingrcompiler-constructiontestingunixcsssoftware-engineeringwpfartificial-intelligenceweb-applicationsvb.netreferenceclassvisual-studioweb-servicesoptimizationarraysnetworkingproject-managementjava-eeumleclipseosxcoding-styleagilegraphicswinformsoperating-systemmemory-managementoracleembeddedspringwinapivisual-c++image-processingmodel-view-controllerajaxhardwareparsingfunctional-programmingregexamazonmemorytddtheoryinheritancefunction3dstatisticsperlopenglkernelopen-sourcexcodeapistringnlpxmlcocoawcfentity-frameworkdebuggingmachine-learninginterfacerefactoringactionscript-3concurrencymatlabrestdomain-driven-designdelphic#-4.0stlgraphpointersnode.jsscriptingopengl-estemplatessharepointidelispsilverlightdjangoprocessparallel-processingamazon-web-servicesuntaggedcommand-linex86scalasocketssql-server-2008visual-studio-2008frameworkshtml5audioobjectlistneural-networkproject-planningvb6visual-studio-2010flexswinglinux-kernelstandardslogicproductivitysearchencryptionc++11mobilec++-faqqtscrumgccscalabilityf#genericsmfcflashhaskelltsqlsortingsoftware-designversion-controllinqsql-server-2005treeweb-scrapingterminologyimagemethodologyasynchronousvbaxamlvariablesshellasp.net-mvc-3boostexcelooadopencvusbcryptographyc#-3.0eventsphysicstypesapachepluginsnetwork-programminghibernatetcpclojurematrixsyntaxmethodsssasrecursionsignal-processinggeometrycachingfortranpostgresql