With the proliferation of online articles and ebooks, old-fashioned paper books seem not to have a place in today’s world. Many experts, however, still find useful things in paperbacks and hardcovers. From technology to people and team management, these books still help developers out today. Here are waht the experts recommend.


Technology Books

“Code Complete: A Practical Handbook of Software Construction”
By Steve McConnell
For development teams, this book is the Bible. The first edition was published more than 15 years ago, and it was the first book that addressed the topic of writing software more concisely. It talks about the importance of source control, for example. Today, we take things like this for granted, but in the early 1990s, they were the exception not the rule. “Code Complete” was on my shelf for 10 years, and when new people joined my staff, I would buy them a copy and ask them to read it.
— Stephen Forte, chief strategy officer of tool maker Telerik

“Code Complete” is immortal. It introduced the concept that software development isn’t about just the code, raising such questions as: Did you build the right application? Did you build it in the right way? Did you test the application better than the customer will test it? There will always be a place for these kinds of books about software development. They persist and continue to be important.
— Richard Campbell, cofounder of software consultancy Strangeloop Networks

“Design Patterns: Elements of Reusable Object-Oriented Software”
By Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides
Known as the “Gang of Four,” the authors of this book convey the idea that software patterns are more than just solutions to common problems. They are about mastering consistent ways of doing things in your applications. This book will help you learn to think along those lines.
— David Yack, CTO of software consultancy Colorado Technology Consultants

“Design Patterns” provides the developer with the common vocabulary that all the senior developers are using: Singleton, Façade, factory and more. It also shows when to apply the pattern, when not to apply it, and how to apply the pattern.
— Scott Seely, founder of software consultancy Friseton

“Expert C# 2008 Business Objects”
By Rockford Lhotka
This book is aimed at C# users, but the concepts it talks about are universal. Lhotka addresses timeless truths that all software developers must contend with: separation of concerns, multi-tiered architecture, and proper application design—to name just a few.
— Andrew Brust, CEO of Blue Badge Insights, a strategy consultancy for Microsoft partners

“HTML5 Games: Creating Fun with HTML5, CSS3 and WebGL”
By Jacob Seidelin
This book offers a great way to learn HTML5, and not just for game developers. Approaching HTML5 from the perspective of creating games provides a solid learning foundation that can later be applied to line-of-business applications.
— Michele Leroux Bustamante, chief architect at architecture and training consultancy IDesign

“JavaScript: The Good Parts”
By Douglas Crockford
There’s a lot in JavaScript that causes developers pain. But this book, as the title suggests, shows you the good parts and offers best practices for using the language. It’s an essential book for Web developers.
— Scott Seely

“Programming Pearls”
By Jon Bentley
“Programming Pearls” presents a set of common issues a developer will run into. The book explains what the issues are, the tradeoffs involved in various solutions, and how to arrive at a better solution. Developers who master the contents of this book will probably do a better job of solving all sorts of algorithmic challenges. They will also be less likely to blame performance deficiencies on their tools, and more likely to blame them on the construction of the code itself.
— Scott Seely
#!

Management and Career Development Books

“Becoming a Technical Leader: An Organic Problem-Solving Approach”
By Gerald M. Weinberg
This book was first published in 1986 and it’s still relevant today. Weinberg was the first person to write about the human side of software engineering, and I think of him as the Yoda of software development. His advice on leading software projects boils down to this: stay out of your own way, and know yourself.
— Ellen Gottesdiener, founder of agile consultancy EBG Consulting

“Confessions of a Public Speaker”
By Scott Berkun
This book taught me a wiser approach to public speaking: how to make yourself calm, how to speak effectively, and how to solicit more genuine feedback from the audience. I do a lot of public speaking, and I have embraced Berkun’s ideas on getting people to move up and sit closer in a large room, and on talking with your audience before your official talk begins.
— Andrew Brust

“Peopleware: Productive Projects and Teams”
By Tom DeMarco and Timothy Lister
“Peopleware” is a short book and a great read. Focused on the best ways to manage teams of developers, it introduced me to the idea of kicking the experts off the team and rotating these rock star developers to other projects. In the short run, productivity drops off a bit, and but in the long haul this approach makes people more productive. As a manager, I was directly influenced by this book. In a previous job, I was responsible for four two-person teams, and every six months I made them swap teams and work on a different project.
— Stephen Forte

“The Nomadic Developer: Surviving and Thriving in the World of Technology Consulting”
By Aaron Erickson
As the title suggests, “The Nomadic Developer” is all about being a software consultant. It helped me understand that if you are going to work this way, you need to think about work differently. You have both the luxury and burden of working in different technologies as you go from project to project. You need the right programming skills and the right social skills, and you also need to learn new business rules for each project. Being a successful software consultant is much like being a successful athlete: You have to be in shape for it.
— Andrew Brust

“The Pragmatic Programmer: From Journeyman to Master”
By Andrew Hunt and David Thomas
This book engages in a lot of good discussion about what kinds of things make you a better programmer over time. We recommend it to the younger people we hire, and they really like it. One issue it addresses especially well? How developers can remain relevant to their organizations, even when they choose to continue programming instead of moving up the management ranks.
— Bill Wagner, founder of software consultancy SRT Solutions
#!

Software Methodology Books

“Implementing Lean Software Development: From Concept to Cash”
By Mary Poppendieck and Tom Poppendieck
This book taught me a different way of thinking, and helped me understand where the agile approach to software development comes from. I had read a lot of agile stuff on the Web, but the ideas presented there were not well defended. The authors of this book show you the research behind their approach to software development.
— Bill Wagner

“Leading Lean Software Development: Results Are Not the Point “
By Mary Poppendieck and Tom Poppendieck
“Leading Lean Software Development” addresses one of the key issues that software development teams following the Scrum methodology tend to struggle with: how to focus on the larger organization, not just the team itself.
— Ellen Gottesdiener

“Practices of an Agile Developer: Working in the Real World”
By Venkat Subramaniam and Andy Hunt
“Practices of an Agile Developer” has an indefinite shelf life, and it’s essentially a discussion for experienced programmers. The authors talk about what agile developers actually do. It addresses situations that come up all the time in the real world, such as what to do when a customer changes his mind. It also conveys the idea that agile development isn’t about doing one thing. You aren’t truly agile unless you are doing it all.
— Richard Campbell

“The Art of Agile Development”
By James Shore and Shane Warden
This hands-on book deals with project management issues and offers a wealth of practical advice, particularly around test-driven development.
— Ellen Gottesdiener

“The Mythical Man-Month: Essays on Software Engineering”
By Frederick P. Brooks
The first edition of “The Mythical Man-Month” was published in 1975, but the essays in it remain relevant today. The author challenges the conventional wisdom that adding more people to a software project will make the project go faster. Brooks shows why this premise is false, and in doing so he inspired the modern agile movement.
— Stephen Forte
#!

Design Books

“The Design of Design: Essays from a Computer Scientist”
By Frederick P. Brooks
The ideas that Brooks talks about in this book transcend software design, but they are central to designing successful user interfaces. He raises and explores answers to some key questions: What are the qualities of good design? How do you nurture good design? What does it mean to change an organization from doing things badly to doing them in great way?
— Juval Lowy, president of architecture and training consultancy IDesign

“Sketching User Experiences: Getting the Design Right and the Right Design”
By Bill Buxton
As developers, we have the tools to build beautiful user interfaces right now. But to take advantage of them, we need to change our thinking. Instead of focusing on the functionality of the software, we need to zero in on how the application will actually be used. This is a big leap for developers, who tend to be more comfortable looking under hood. Buxton’s book will help you make that leap.
— Tim Huckaby, CEO of software consultancy InterKnowlogy.

“Universal Principles of Design: 125 Ways to Enhance Usability, Influence Perception, Increase Appeal, Make Better Design Decisions, and Teach Through Design”
By William Lidwell, Kritina Holden, and Jill Butler

This book covers 125 basic principles of design, not all of which apply to technology. One principle that sticks with me is “progressive disclosure”—the idea that you show users of the software only what they need to know at any given time. Developers tend to lay it all out there for them at once. But progressive disclosure is about showing the important stuff first, then offering the user a way to peel back. Another concept the book addresses is “Hick’s Law,” which describes the time it takes for a person to make a decision, based on the possible choices offered. This idea has big implications for user interface design: Every time you add an option to a pull down menu, the less valuable the other options on the menu become. Most developers believe it’s enough simply to offer the options, and they don’t consider the implications of offering too many.
— Billy Hollis, founder of software consultancy Next Version Systems