100 Best Software Engineering Books of All Time
We've researched and ranked the best software engineering books in the world, based on recommendations from world experts, sales data, and millions of reader ratings. Learn more
Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship . Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code on the fly into a book that will instill within you the values of a software craftsman and... more
Hadley WickhamThis book is about the craft of software development, and thinking about how to produce good code. (Source)
Jeff Bezos[From "The Everything Store", written by Brad Stone] “An influential computer scientist makes the counterintuitive argument that small groups of engineers are more effective than larger ones at handling complex software projects. The book lays out the theory behind Amazon’s two pizza teams,” Stone writes. (Source)
Santiago BasultoIf my career path is hackers turned business people, I’d say: Start with the basics and fundamentals: SICP: Structure and Interpretation of Computer Programs Code Complete 2 (Source)
Ana BellCode Complete is for people working in industry, writing software for companies. It has little checklists at key points in the book; if you are in industry, you can make sure that your code is readable and debugged by going through these checklists and making sure you’re touching upon all aspects. (Source)
Eric Ries defines a startup as an organization dedicated to creating something new under conditions of extreme uncertainty. This is just as true for one person in a garage or a group of seasoned professionals in a Fortune 500 boardroom. What they have in common is a mission to penetrate that fog of uncertainty to discover a successful path to a sustainable business. more
Sheryl SandbergProvides a great inside look at how the tech industry approaches building products and businesses. (Source)
Ben HorowitzGreat. (Source)
Dustin MoskovitzAt Asana, we've been lucky to benefit from [the author]'s advice firsthand; this book will enable him to help many more entrepreneurs answer the tough questions about their business. (Source)
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... more
Max LevchinEasier to read [than "The Art of Computer Programming"] end-to-end quickly. (Source)
Hadley WickhamThe most valuable thing this book gives you is confidence and knowledge to go and create your own programming language. (Source)
John Maeda@jesseddy The best book in classical and “hands-on example” terms is Structure and Interpretation of Computer Programs — but it requires maybe a year to get thru and for me, 10 years more to marinate over. *A* book is the one I am finishing now to come out Nov 2019. https://t.co/OODjQXgf1I (Source)
--M. Fowler (1999) For more than twenty years, experienced programmers worldwide have relied on Martin Fowler's Refactoring 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. ... more
David Heinemeier HanssonThis is next on my list of technical books to read! Refactoring is one of two programming books that I’ve read multiple times (the other is Smalltalk Best Practice Patterns), and I’m due for another reading. What perfect time then to dive into Martin Fowler’s long anticipated 2nd edition, now using JavaScript rather than Java for the code examples. Like the stoic books, I read Refactoring and... (Source)
As with his other books, Martin's Clean Architecture doesn't merely present multiple choices and options, and say "use your best judgment": it tells you what choices to make, and why those choices are critical to your success. Martin offers direct, no-nonsense answers to key architecture and design questions like:
What are the best high level... more
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of... more
Don't have time to read the top Software Engineering books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
Cracking the Coding Interview, 6th Edition is here to help you through this process, teaching you what you need to know and enabling you to perform at your very best. I've coached and interviewed hundreds of software engineers. The result is this book.
Learn how to uncover the hints and hidden details in a question,... more
Proven approaches such as service-oriented and event-driven architectures are joined by newer techniques such as microservices, reactive architectures, DevOps, and stream processing. Many of these patterns are successful by themselves, but as this practical ebook demonstrates, they provide a more holistic and compelling approach when applied together.
Author Ben Stopford explains how service-based... more
At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun.
You want to learn about the patterns that matter--why to... more
In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars, techniques... more
The company's new IT initiative, code named Phoenix Project, is critical to the future of Parts Unlimited, but the project is massively over budget and very late. The CEO wants Bill to report directly to him and fix the mess in ninety days or else Bill's entire department will be outsourced.
With the help of a prospective board member and his mysterious philosophy of The Three Ways, Bill starts to see that IT work has more in common with... more
Jeffrey SnoverGreat thread. I know of a number of devops people that haven't read this book. Ya'll should fix that. https://t.co/Yri4JJ0jBZ (Source)
Louis NyffeneggerI don't think I have a specific book that I can call my favourite. Some books have had a big impact on my view of how to build a product/company ("Rework"), some were very enjoyable to read ("The Phoenix Project"), some helped me improve the way I think ("The Pleasure Of Finding Things Out") and some the way I live ("Essentialism") or work ("Deep Work"). (Source)
In this 3rd edition, Steve returns with fresh perspective to reexamine the principles that made Don’t Make Me Think a classic-–with updated examples and a new chapter on mobile usability. And it’s still short, profusely illustrated…and best of all–fun to read.
If you’ve read it before, you’ll rediscover what made Don’t Make Me Think so essential to Web... more
Chris GowardHere are some of the books that have been very impactful for me, or taught me a new way of thinking: [...] Don't Make Me Think. (Source)
Nicolae AndronicI’m a technical guy. I studied the IT field and did software development for a long time until I discovered the business world. So the path for me is to slowly adapt from the clear, technical world, to the fuzzy, way more complex, business world. All the books that I recommend help this transition. “Don’t Make Me Think” - Steve Krug: for seeing software with the eyes of the user. (Source)
Nick GanjuAbout usability and making software and user interfaces that are friendly to people. (Source)
Don't have time to read the top Software Engineering books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
Getting software released to users is often a painful, risky, and time-consuming process. This groundbreaking new book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers, and operations, delivery teams can get changes released in a matter of hours-- sometimes even minutes-no matter what the size of a project or the... more
Microservice technologies are moving quickly. Author Sam Newman provides you with a firm grounding in the concepts while diving into current solutions... more
--Francesco Cirillo, Chief Executive Officer, XPLabs S.R.L. "The first edition of this book told us what XP was--it changed the way many of us think about software development. This second edition takes it farther and gives us a lot more of the 'why'... more
James StanleyI very much enjoyed reading "Programming Pearls" by John Bentley. Most of the software we write is trying to solve fairly large and ill-defined problems in a way that minimises development cost, but Programming Pearls presents a lot of small, well-defined problems, and talks through their solutions in ways that minimise machine resource usage. There are lots of good "a-ha" moments when reading... (Source)
If you're a developer and don't want to be on call for 3AM for the rest of your life, this book will help.
In Release It!, Michael T. Nygard shows you how to design and architect your... more
Kirk BorneFantastic accomplishment! Congratulations @nicolefv on your outstanding #DevOps book ... I love that: “The Science of Lean” ... that works also for #DataOps and Lean Analytics. https://t.co/i9gPhKL0dt https://t.co/DNJpuJtER0 (Source)
Don't have time to read the top Software Engineering books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
From the Preface:
We have tried to retain the brevity of the first edition. C is not a big language, and it is not well served by a big book. We have improved the exposition of critical features, such as pointers, that are central to C programming. We have refined the... more
Hundreds of people have suggested names of programmers to interview on the... more
Santiago BasultoFounders at Work and Coders at Work are really good ones too. They’re filled with interesting and inspiring stories. (Source)
Vicki BoykisIt’s about how those people got into programming and how they think about it. It’s a very conversational book that really helps you to learn the culture of this industry you’re coming into, and some of its terminology. (Source)
Considered the JavaScript expert by many people in the development community, author Douglas Crockford identifies the abundance of good ideas that make JavaScript... more
Auston BunsenI’m actually a self-taught programmer, so these books have really helped me with practical skills that I could put to use & yield results. The return on investment for these kinds of books is off the charts for me! (Source)
More than ever, the effective management of technology is critical for business competitiveness. For decades, technology leaders have struggled to balance agility, reliability, and security. The consequences of failure have never been greater whether it's the healthcare.gov debacle, cardholder data breaches, or missing the boat with Big Data in the cloud.
And yet, high performers using DevOps principles, such as Google, Amazon, Facebook, Etsy, and Netflix, are routinely... more
Hadley WickhamThis book is an illustration of the power of names in the Google era. (Source)
This book introduces the theory and practice of pattern-directed refactorings: sequences of low-level refactorings that allow designers to safely move designs... more
In this collection of essays and articles, key members of Google's Site Reliability Team explain how and why their commitment to the entire lifecycle has enabled the company to successfully build, deploy, monitor, and maintain some of the largest software systems in the world. You'll learn the principles and practices that enable... more
A book by Git experts to turn you into a Git expert. Introduces the world of distributed version control Shows how to build a Git development workflow. less
Don't have time to read the top Software Engineering books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
Marius Ciuchete Pauneval(ez_write_tag([[250,250],'theceolibrary_com-large-mobile-banner-2','ezslot_5',164,'0','1'])); Question: Was there a moment, specifically, when something you read in a book helped you? Answer: Yes there was. In fact, I can remember two separate sentences from two different books: The first one comes from “The Design of Everyday Things” by Don Norman. It says: “great design will help... (Source)
Grey BakerI mainly read to decompress and change my state of mind, so it’s hard to point to an insight I read that helped me. Reading fiction has pulled me out of a bad mood more times than I can count, though, and always reenergises me to attack problems that had stumped me again. That said, I read and loved Norman Norman’s “The Design of Everyday Things”, and it’s helped me think through design problems... (Source)
Kaci LambeThese three books are about how people actually use design in their lives. They helped me understand this very basic idea: There are no dumb users, only bad designers. Take the time to create based on how your design will be interacted with. Test it. Iterate. That's how you become a good designer. (Source)
Timur BadretdinovAs for programming, I’d recommend The Passionate Programmer. (Source)
"Soft Skills: The software developer's life manual" is a unique guide, offering techniques and practices for a more satisfying life as a professional software developer. In it, developer and life coach John Sonmez addresses a wide range of important "soft" topics, from career and productivity to personal finance and investing, and even fitness and relationships, all from a developer-centric viewpoint.
Forewords by Robert C. Martin (Uncle Bob) and Scott Hanselman.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from... more
In this book by Andy Hunt, you'll learn how our brains are wired, and how to take advantage of your brain's architecture. You'll learn new tricks and tips to learn more, faster, and retain more of what you learn.
You need a pragmatic approach to thinking and learning. You need to... more
--Martin Buchholz
JDK Concurrency Czar, Sun Microsystems
"For the past 30 years, computer performance has been driven by Moore's Law; from now on, it will be driven by Amdahl's Law. Writing... more
In this book, author Camille Fournier takes you through the stages of technical management, from mentoring interns to working with the senior staff. You ll get actionable advice for approaching various obstacles in your path, whether you re a... more
Don't have time to read the top Software Engineering books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
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... more
--Doug DeCarlo, author of eXtreme Project... more
We are living in the computer age, in a world increasingly designed and engineered by computer programmers and software designers, by people who call themselves hackers. Who are these people, what motivates them, and why should you care?
Consider these facts: Everything around us is turning into computers. Your typewriter is... more
Evan WilliamsI want everybody I know to read "How to Make Wealth" and "Mind the Gap" (chapters 6 and 7), which brilliantly articulate the most commonly, and frustratingly, misunderstood core economic principles of everyday life. (Source)
Yukihiro MatsumotoSince programmers create programs out of nothing, imagination is our only limitation. Thus, in the world of programming, the hero is the one who has great vision. Paul Graham is one of our contemporary heroes. He has the ability to embrace the vision, and to express it plainly. His works are my favorites, especially the ones describing language design. He explains secrets of programming,... (Source)
Chris AndersonA delightful ping-pong around the brain of a really smart guy. The chapter that answers the key question of our age-- why are nerds unpopular?-- is worth the price of admission alone. (Source)
Since early in the 90s, working C++ programmers have relied on Scott Meyers s Effective C++ to dramatically improve their skills. But the state-of-the-art has moved forward dramatically since Meyers last updated this book in 1997. (For instance, there s now STL. Design patterns. Even new functionality being added through TR1 and Boost.) So Meyers has done a top-to-bottom rewrite, identifying the 55 most valuable techniques you need now to be exceptionally effective with C++.
Over half of this edition s content is new....
All our lives are constrained by limited space and time, limits that give rise to a particular set of problems. What should we do, or leave undone, in a day or a lifetime? How much messiness should we accept? What balance of new activities and familiar favorites is the most fulfilling? These may seem like uniquely human quandaries, but they are not: computers, too, face the same... more
Doug McMillonHere are some of my favorite reads from 2017. Lots of friends and colleagues send me book suggestions and it's impossible to squeeze them all in. I continue to be super curious about how digital and tech are enabling people to transform our lives but I try to read a good mix of books that apply to a variety of areas and stretch my thinking more broadly. (Source)
Sriram Krishnan@rabois @nealkhosla Yes! Love that book (Source)
Chris OliverThis is a great book talking about how you can use computer science to help you make decisions in life. How do you know when to make a decision on the perfect house? Car? etc? It helps you apply algorithms to making those decisions optimally without getting lost. (Source)
Don't have time to read the top Software Engineering books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
The best way to build software that meets users' needs is to begin with "user stories": simple, clear, brief descriptions of functionality that will be valuable to real users. In User Stories Applied, Mike Cohn provides you with a front-to-back blueprint for writing these user stories and weaving them into your development lifecycle.
You'll learn what makes a great... more
Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside... more
The Art of Unit Testing, Second Edition guides you step by step from writing your first simple tests to developing robust test sets that are maintainable, readable, and trustworthy. You'll master the foundational ideas and quickly move to high-value subjects like mocks, stubs, and isolation, including frameworks such as Moq, FakeItEasy, and Typemock Isolator. You'll explore test patterns and organization, working with legacy code, and even "untestable" code. Along the way, you'll learn about integration testing and techniques and tools for testing databases... more
Roger D. PengThis book is written by a powerhouse of authors in the machine learning community, true authorities in the field. But beyond that, they’re also great writers. (Source)
This is the second edition of the best selling Python book in the world. Python Crash Course, 2nd Edition is a straightforward introduction to the core of Python programming. Author Eric Matthes dispenses with the sort of tedious, unnecessary information that can get in the way of learning how to program, choosing instead to provide a foundation in general... more
This book focuses on basic principles and practical techniques you can apply every time you write code. Using easy-to-digest code examples from... more
Hadley WickhamThis book gives you a series of techniques to make ‘code smell’ go away. (Source)
Don't have time to read the top Software Engineering books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
Without formal, verifiable software requirementsand an effective system for managing themthe programs that developers think they’ve agreed to build often will not be the same products their customers are expecting. In SOFTWARE REQUIREMENTS, Second Edition, requirements engineering authority Karl Wiegers amplifies the best practices presented in his original award-winning text?now a mainstay for anyone participating in the software development process.
In this book, you’ll discover effective techniques for managing the requirements engineering process all the way through the...
Stephen BakerA marvelously detailed book, and I found it very inspiring. An interesting way of looking at how computing has utterly changed in the last 30 years. (Source)
Scott JohnsonTracy Kidder's The Soul of a New Machine. This was the first book that really took a deep dive into the process of creating a high tech product from scratch. Tracy really humanized the engineering process and made me realize that was the type of industry where I wanted to be. (Source)
You and your team will learn that user stories aren't a way to write better specifications, but a way to organize and have better conversations. This book will help you understand what kinds of conversations you should be having, when to... more
Learn You a Haskell for Great Good! is a fun, illustrated guide to learning Haskell, a functional programming language that's growing in popularity. Learn You a Haskell for Great Good! introduces programmers familiar with imperative languages (such as C++, Java, or Python) to the unique aspects of functional programming. Packed with jokes, pop culture references, and the author's own hilarious artwork, Learn You a Haskell for Great Good! eases the learning curve of this complex language, and is a perfect starting point for any programmer looking to expand his or her...
moreSantiago BasultoI love the following books, even though I don’t code in these languages in a daily basis. It’s still interesting to learn the concepts behind them Programming in Scala (Odersky) Learn You a Haskell for Great Good (Source)
Don't have time to read the top Software Engineering books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
This book presents a series of case studies illustrating the fundamentals of Agile development and Agile design, and moves quickly from UML models to real C# code. The introductory... more
The fact is your brain craves novelty. It's constantly searching, scanning, waiting for something unusual to happen. After all, that's the way it was built to help you stay alive. It takes all the routine, ordinary, dull stuff and filters it to the background so it won't interfere with... more
Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell. With... more
Author Ilya Grigorik, a web performance engineer at Google, demonstrates performance optimization best practices for TCP, UDP, and TLS protocols, and explains unique wireless and mobile network optimization requirements.... more
The Cathedral & the Bazaar is a must for anyone who cares about the future... more
Early in his software developer career, John Sonmez discovered that technical knowledge alone isn't enough to break through to the next income level - developers need "soft skills" like the ability to learn new technologies just in time, communicate clearly with management and consulting clients, negotiate a fair hourly rate, and unite teammates and coworkers in working toward a common goal.
As John invested in these skills his career took off, and he...
moreDon't have time to read the top Software Engineering books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
Santiago BasultoI love the following books, even though I don’t code in these languages in a daily basis. It’s still interesting to learn the concepts behind them Programming in Scala (Odersky) Learn You a Haskell for Great Good (Source)
With contributions from some of the most experienced and respected practitioners in the industry--including Michael Feathers, Pete Goodliffe, Diomidis Spinellis, Cay Horstmann, Verity Stob, and many more--this book contains practical knowledge and... more
Topics include:
The pros and cons of braced initialization,... more
1. The Pie that Jack Made
2. Funny Foods
3. Round the Clown
4. Follow that Cat!
5. Counting Bugs
6. Lunch Crunch
7. Bubble Shapes
8. All About Dinosaurs
9. Make a Pizza
10. This Little Piggy
11. Tail Tale
12. Eight... more
Developers and students will learn object-oriented analysis and design (OOA/D) through three iterations of two cohesive, start-to-finish case studies.... more
Games have much in common with other software, but also a number of unique... more
Eloquent JavaScript dives into the JavaScript language to show programmers how to write elegant, effective JavaScript code. Like any good programming book, Eloquent JavaScript begins with fundamentals--variables, control structures, functions, and data structures--then moves on to complex topics like object-oriented programming and regular expressions. This third edition introduces new features covering the 2017 version of... more
more
Project retrospectives help teams examine what went right and what went wrong on a project. But traditionally, retrospectives (also known as "post-mortems") are only helpful at the end of the project--too late to help. You need agile retrospectives that are iterative and... more
Don't have time to read the top Software Engineering books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.