Books

Looking for good books about software, development, management and career? Check my recommendations below.

Since I'm frequently asked about good books I've read during my carreer I decided to compile a list of books I recommend every software engineer (beginner or not) to read. I will be constantly updating this book, please be sure to check this page often!

Development

Clean Code: A Handbook of Agile Software Craftsmanship

In Clean Code, you will learn that even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way. Clean Code is divided into three parts. Each case study is an exercise in cleaning up code—of transforming a code base that has some problems into one that is sound and efficient.

Code Complete

Code Complete takes a strategic approach to software construction and produce superior products with this fully updated edition of Steve McConnell's critically praised and award-winning guide to software development best practices. An award-winning guide to software development best practices.

Algorithms

Algorithms is the leading textbook on algorithms today and is widely used in colleges and universities worldwide. This book surveys the most important computer algorithms currently in use and provides a full treatment of data structures and algorithms for sorting, searching, graph processing, and string processing--including fifty algorithms every programmer should know.

Working Effectively with Legacy Code

Working Effectively with Legacy Code is a bestseller that provides programmers with the ability to cost effectively handle common legacy code problems without having to go through the hugely expensive task of rewriting all existing code. It describes a series of practical strategies that developers can employ to bring their existing software applications under control. If you want to learn more how tests can be used to make sure they are not unintentionally changing the application, you should read this book.

Operating System Concepts

Operating System Concepts, provides a solid theoretical foundation for understanding operating systems. The ninth edition has been thoroughly updated to include contemporary examples of how operating systems function. The text includes content to bridge the gap between concepts and actual implementations. The book also includes problems, exercises, review questions, and programming exercises help to further reinforce important concepts.

The Pragmatic Programmer

The Pragmatic Programmer is one of those rare tech books you’ll read, re-read, and read again over the years. Whether you’re new to the field or an experienced practitioner, you’ll come away with fresh insights each and every time.  This book was released in 1999 to help their developers writing better software and rediscover the joy of coding. These lessons have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology, and the Pragmatic philosophy has spawned hundreds of books, screencasts, and audio books, as well as thousands of careers and success stories.

Design and Architecture

Release It!: Design and Deploy Production-Ready Software

Release It! is a book for software developers that don't want to get alerts every night for the rest of your life, help is here. With a combination of case studies about huge losses - lost revenue, lost reputation, lost time, lost opportunity - and practical, down-to-earth advice that was all gained through painful experience, this book helps you avoid the pitfalls that cost companies millions of dollars in downtime and reputation. Eighty percent of project life-cycle cost is in production, yet few books address this topic.

Patterns of Enterprise Application Architecture

Patterns of Enterprise Application Architecture is a book that will teach you that common failures in enterprise applications often occur because their developers do not understand the architectural lessons that experienced object developers have learned. 

The practice of enterprise application development has benefited from the emergence of many new enabling technologies. Multi-tiered object-oriented platforms, such as Java and .NET, have become commonplace. These new tools and technologies are capable of building powerful applications, but they are not easily implemented.

Refactoring: Improving the Design of Existing Code

Refactoring, is a book written by Martin Fowler that for more than twenty years, experienced programmers worldwide have relied on to improve the design of existing code and to enhance software maintainability, as well as to make existing code easier to understand. This eagerly awaited new edition has been fully updated to reflect crucial changes in the programming landscape. Refactoring, Second Edition, features an updated catalog of refactorings and includes JavaScript code examples, as well as new functional examples that demonstrate refactoring without classes.

The Design of Everyday Things

In the bestseller Design of Everyday Things you will learn that design doesn't have to complicated, which is why this guide to human-centered design shows that usability is just as important as aesthetics. Even the smartest among us can feel inept as we fail to figure out which light switch or oven burner to turn on, or whether to push, pull, or slide a door. The Design of Everyday Things shows that 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.

Security

Stealing The Network: How to Own the Box

Stealing the Network: How to Own the Box is NOT intended to be a "install, configure, update, troubleshoot, and defend book." It is also NOT another one of the countless Hacker books out there. So, what IS it? It is an edgy, provocative, attack-oriented series of chapters written in a first hand, conversational style. World-renowned network security personalities present a series of 25 to 30 page chapters written from the point of an attacker who is gaining access to a particular system. This book portrays the "street fighting" tactics used to attack networks and systems.

Secrets and Lies: Digital Security in a Networked World

Secrets and Lies by Bruce Schneier is a book stands the test of time as a runaway best-seller provides a practical, straight-forward guide to achieving security throughout computer networks. No theory, no math, no fiction of what should be working but isn't, just the facts. Known as the master of cryptography, Schneier uses his extensive field experience with his own clients to dispel the myths that often mislead IT managers as they try to build secure systems.

Career

Skill Up:  A Software Developer's Guide to Life and Career

Skill Up:  A Software Developer's Guide to Life and Career is an all-purpose toolkit for your programming career. It has been built by Jordan Hudgens over a lifetime of coding and teaching coding. It helps you identify the key questions and stumbling blocks that programmers encounter, and gives you the answers to them! It is a comprehensive guide containing more than 50 insights that you can use to improve your work, and to give advice in your career.

Outliers: The Story of Success

In the bestseller Outliers, Malcolm Gladwell takes us on an intellectual journey through the world of "outliers" - the best and the brightest, the most famous and the most successful. He asks the question: what makes high achievers different? His answer is that we pay too much attention to what successful people are like and too little attention to where they are from: that is, their culture, their family, their generation, and the idiosyncratic experiences of their upbringing. Along the way he explains the secrets of software billionaires, what it takes to be a great soccer player, why Asians are good at math, and what made the Beatles the greatest rock band.

Creativity, Inc

Creativity, Inc. is a manual for anyone who strives for originality and the first-ever all-access trip into the nerve center of Pixar Animation - into the meetings, postmortems, and “Braintrust” sessions where some of the most successful films in history are made. It is, at heart, a book about creativity - but it is also, as Pixar cofounder and president Ed Catmull writes, “an expression of the ideas that I believe make the best in us possible”.

Coders at Work: Reflections on the Craft of Programming

Coders at Work is a book to teach you who's who in the programming world - a fascinating look at how some of the best in the world do their work. Patterned after the best selling Founders at Work, the book represents two years of interviews with some of the top programmers of our times.

Founders at Work: Stories of Startups' Early Days

Founders at Work is a book for would-be entrepreneurs, innovation managers or just anyone fascinated by the special chemistry and drive that created some of the best technology companies in the world, this book offers both wisdom and engaging insights straight from the source. Chris Anderson, editor-in-chief of Wired Magazine, and author of The Long Tail "All the best things that I did at Apple came from (a) not having money and (b) not having done it before, ever".

Management

The Mythical Man-Month

The Mythical Man-Month is a classic collection of essays describing issues that arise while managing software projects. Few books on software project management have been as influential and timeless as this book. With a blend of software engineering facts and thought-provoking opinions, this book offers insight for anyone managing complex projects. Now, 20 years after the initial publication of his book, the author has revisited his original ideas and added new thoughts and advice, both for readers already familiar with his work and for readers discovering it for the first time.

Peopleware: Productive Projects and Teams

Peopleware is one of those few books in computing that had a profound influence on software management. The unique insight of this longtime best seller is that the major issues of software development are human, not technical. They’re not easy issues; but solve them, and you’ll maximize your chances of success.

About the Author

Bruno Hildenbrand