100 Best Software Engineering Books of All Time

We've ranked the best software engineering books using expert recommendations, sales data, and millions of reader ratings. At Shortform, we know books. Our book guides are the best in the world. Learn why.

Clean Code: A Handbook of Agile Software Craftsmanship book cover1

Clean Code: A Handbook of Agile Software Craftsmanship

Robert C. Martin

5.0
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.
Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship . Martin has teamed up with
The Pragmatic Programmer: From Journeyman to Master book cover2

The Pragmatic Programmer: From Journeyman to Master

Andrew Hunt and David Thomas

4.9
-- Ward Cunningham Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques fo
The Mythical Man-Month: Essays on Software Engineering book cover3

The Mythical Man-Month: Essays on Software Engineering

Frederick P. Brooks Jr.

4.8
Few books on software project management have been as influential and timeless as The Mythical Man-Month. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. These essays draw from his experience as project manager for the IBM System/360 computer family and then for OS/360, its massive software system. Now, 20
Code Complete book cover4

Code Complete

Steve McConnell

4.8
Widely considered one of the best practical guides to programming, Steve McConnell's original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices--and hundreds of new code samples--illustrating the art and science of software construction. Capturing the body of knowledge availab
The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses book cover5

The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses

Eric Ries

4.7
Most startups fail. But many of those failures are preventable. The Lean Startup is a new approach being adopted across the globe, changing the way companies are built and new products are launched.

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 profes
Design Patterns: Elements of Reusable Object-Oriented Software book cover6

Design Patterns: Elements of Reusable Object-Oriented Software

Erich; Helm John Gamma

4.6
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
Structure and Interpretation of Computer Programs book cover7

Structure and Interpretation of Computer Programs

Harold Abelson and Gerald Jay Sussman

4.6
Structure and Interpretation of Computer Programs has had a dramatic impact on computer science curricula over the past decade. This long-awaited revision contains changes throughout the text. There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes that reflect their experienc
Refactoring: Improving the Design of Existing Code book cover8

Refactoring: Improving the Design of Existing Code

Martin Fowler

4.6
Fully Revised and Updated-Includes New Refactorings and Code Examples"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
--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
Clean Architecture book cover9

Clean Architecture

Robert C. Martin

4.5
Building upon the success of best-sellers The Clean Coder and Clean Code, legendary software craftsman Robert C. "Uncle Bob" Martin shows how to bring greater professionalism and discipline to application architecture and design.
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 ma
Code: The Hidden Language of Computer Hardware and Software book cover10

Code: The Hidden Language of Computer Hardware and Software

Charles Petzold

4.5
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.

Using everyday objects and fam
The Clean Coder: A Code of Conduct for Professional Programmers book cover11

The Clean Coder: A Code of Conduct for Professional Programmers

Robert Martin

4.5
Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals. In The Clean Coder: A Code of Conduct for Professional Programmers, legendary software expert Robert C. Martin introduces the disciplines, techniques, tools, and practices of true
Domain-Driven Design: Tackling Complexity in the Heart of Software book cover12

Domain-Driven Design: Tackling Complexity in the Heart of Software

Eric Evans

4.5
"Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. "His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to reflect your improving understanding of it. Eric th
Cracking the Coding Interview: 189 Programming Questions and Solutions book cover13

Cracking the Coding Interview: 189 Programming Questions and Solutions

Gayle Laakmann McDowell

4.5
I am not a recruiter. I am a software engineer. And as such, I know what it's like to be asked to whip up brilliant algorithms on the spot and then write flawless code on a whiteboard. I've been through this as a candidate and as an interviewer.

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
Designing Data-Intensive Applications book cover14

Designing Data-Intensive Applications

Martin Kleppmann

4.5
Many forces affect software today: larger datasets, geographical disparities, complex company structures, and the growing need to be fast and nimble in the face of change.

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 thems
Head First Design Patterns book cover15

Head First Design Patterns

Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson

4.5
You're not alone.

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
Working Effectively with Legacy Code book cover16

Working Effectively with Legacy Code

Michael Feathers

4.5
Get more out of your legacy systems, more performance, functionality, reliability, and manageability.Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts.

In this book, Michael Feathers offers start-t
Peopleware: Productive Projects and Teams book cover17

Peopleware: Productive Projects and Teams

Tom DeMarco and Tim Lister

4.5
The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win book cover18

The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win

Gene Kim

4.5
Bill is an IT manager at Parts Unlimited. It's Tuesday morning and on his drive into the office, Bill gets a call from the CEO.

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
Patterns of Enterprise Application Architecture book cover19

Patterns of Enterprise Application Architecture

Martin Fowler

4.4
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. Common failures in enterprise applications often occur because their develop
Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability book cover20

Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability

Steve Krug

4.4
Since Don’t Make Me Think was first published in 2000, over 400,000 Web designers and developers have relied on Steve Krug’s guide to help them understand the principles of intuitive navigation and information design.

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 usabil
Effective Java book cover21

Effective Java

Joshua Bloch

4.4
Since this Jolt-award winning classic was last updated in 2008 (shortly after Java 6 was released), Java has changed dramatically. The principal enhancement in Java 8 was the addition of functional programming constructs to Java's object-oriented roots. Java 7, 8, and 9 also introduced language features, such as the try-with-resources statement, the diamond operator for generic types, default and
Introduction To Algorithms book cover22

Introduction To Algorithms

Thomas H. Cormen, Charles E. Leiserson, et al.

4.4
Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation book cover23

Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation

Jez Humble and David Farley

4.4
Winner of the 2011 Jolt Excellence Award!

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 betwe
Test Driven Development: By Example book cover24

Test Driven Development: By Example

Kent Beck

4.4
Follows two TDD projects from start to finish, illustrating techniques programmers can use to increase the quality of their work. The examples are followed by references to the featured TDD patterns and refactorings. This book emphasises on agile methods and fast development strategies.
Building Microservices: Designing Fine-Grained Systems book cover25

Building Microservices: Designing Fine-Grained Systems

Sam Newman

4.4
Distributed systems have become more fine-grained in the past 10 years, shifting from code-heavy monolithic applications to smaller, self-contained microservices. But developing these systems brings its own set of headaches. With lots of examples and practical advice, this book takes a holistic view of the topics that system architects and administrators must consider when building, managing, and
Extreme Programming Explained: Embrace Change (The XP Series) book cover26

Extreme Programming Explained: Embrace Change (The XP Series)

Kent Beck

4.3
"In this second edition of Extreme Programming Explained, Kent Beck organizes and presents five years' worth of experiences, growth, and change revolving around XP. If you are seriously interested in understanding how you and your team can start down the path of improvement with XP, you must read this book."



--Francesco Cirillo, Chief Executive Officer, XPLabs S.R.L. "The first edition of this bo
Programming Pearls book cover27

Programming Pearls

Jon Bentley

4.3
The first edition of Programming Pearls was one of the most influential books I read early in my career, and many of the insights I first encountered in that book stayed with me long after I read it. Jon has done a wonderful job of updating the material. I am very impressed at how fresh the new examples seem. - Steve McConnell When programmers list their favorite books, Jon Bentley's collection of
Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers) book cover28

Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)

Michael T. Nygard

4.3
Whether it's in Java, .NET, or Ruby on Rails, getting your application ready to ship is only half the battle. Did you design your system to survivef a sudden rush of visitors from Digg or Slashdot? Or an influx of real world customers from 100 different countries? Are you ready for a world filled with flakey networks, tangled databases, and impatient users?

If you're a developer and don't want to b
Accelerate: Building and Scaling High-Performing Technology Organizations book cover29

Accelerate: Building and Scaling High-Performing Technology Organizations

Nicole Forsgren PhD

4.3
Does technology actually matter? And how can we apply technology to drive business value? For years, we've been told that the performance of software delivery teams doesn't matter--that it can't provide a competitive advantage to our companies. Through four years of groundbreaking research, Dr. Nicole Forsgren, Jez Humble, and Gene Kim set out to find a way to measure software delivery performance
Agile Software Development, Principles, Patterns, and Practices book cover30

Agile Software Development, Principles, Patterns, and Practices

Robert C. Martin

4.3
Written by a software developer for software developers, this book is a unique collection of the latest software development methods. The author includes OOD, UML, Design Patterns, Agile and XP methods with a detailed description of a complete software design for reusable programs in C++ and Java. Using a practical, problem-solving approach, it shows how to develop an object-oriented application--
The C Programming Language book cover31

The C Programming Language

Brian W. Kernighan, Dennis M. Ritchie

4.3
This book is meant to help the reader learn how to program in C. It is the definitive reference guide, now in a second edition. Although the first edition was written in 1978, it continues to be a worldwide best-seller. This second edition brings the classic original up to date to include the ANSI standard.

From the Preface:
We have tried to retain the brevity of the first edition. C is not a bi
Coders at Work: Reflections on the Craft of Programming book cover32

Coders at Work: Reflections on the Craft of Programming

Peter Seibel

4.3
Peter Seibel interviews 16 of the most interesting computer programmers alive today in Coders at Work, offering a brand-new companion volume to Apress’s highly acclaimed best-seller Founders at Work by Jessica Livingston. As the words "at work" suggest, Peter Seibel focuses on how his interviewees tackle the day–to–day work of programming, while revealing much more, like how they became great prog
Growing Object-Oriented Software, Guided by Tests book cover33

Growing Object-Oriented Software, Guided by Tests

Steve Freeman, Nat Pryce

4.3
Foreword by Kent Beck "The authors of this book have led a revolution in the craft of programming by controlling the environment in which software grows." --Ward Cunningham "At last, a book suffused with code that exposes the deep symbiosis between TDD and OOD. This one's a keeper." --Robert C. Martin "If you want to be an expert in the state of the art in TDD, you need to understand the ideas i
JavaScript: The Good Parts book cover34

JavaScript: The Good Parts

Douglas Crockford

4.3
Most programming languages contain good and bad parts, but JavaScript has more than its share of the bad, having been developed and released in a hurry before it could be refined. This authoritative book scrapes away these bad features to reveal a subset of JavaScript that's more reliable, readable, and maintainable than the language as a whole--a subset you can use to create truly extensible and
The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations book cover35

The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations

Gene Kim, Patrick Debois, John Willis, Jez Humble, John Allspaw

4.3
Increase profitability, elevate work culture, and exceed productivity goals through DevOps practices.

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
Refactoring to Patterns book cover37

Refactoring to Patterns

Joshua Kerievsky

4.2
In 1994, "Design Patterns" changed the landscape of object-oriented development by introducing classic solutions to recurring design problems. In 1999, "Refactoring" revolutionized design by introducing an effective process for improving code. With the highly anticipated " Refactoring to Patterns ," Joshua Kerievsky has changed our approach to design by forever uniting patterns with the evolutiona
Site Reliability Engineering: How Google Runs Production Systems book cover38

Site Reliability Engineering: How Google Runs Production Systems

Niall Richard Murphy, Betsy Beyer, et al.

4.2
The overwhelming majority of a software system's lifespan is spent in use, not in design or implementation. So, why does conventional wisdom insist that software engineers focus primarily on the design and development of large-scale computing systems?

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
Joel on Software book cover39

Joel on Software

Joel Spolsky

4.2
Someone once said that the task of a writer is to "make the familiar new and the new familiar". For years, Joel Spolsky has done exactly this at www.joelonsoftware.com. Now, for the first time, you can own a collection of the most important essays from his site in one book, with exclusive commentary and new insights from joel.
Pro Git book cover40

Pro Git

Scott Chacon

4.2
Git is the version control system developed by Linus Torvalds for Linux kernel development. It took the open source world by storm since its inception in 2005, and is used by small development shops and giants like Google, Red Hat, and IBM, and of course many open source projects.

A book by Git experts to turn you into a Git expert. Introduces the world of distributed version control Shows how to b
The Design of Everyday Things book cover41

The Design of Everyday Things

Don Norman

4.2
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 fault, argues this ingenious—even liberating—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 r
Rapid Development: Taming Wild Software Schedules book cover42

Rapid Development: Taming Wild Software Schedules

Steve McConnell

4.2
A fundamental software engineering project management guide based on the practical requirements of "Taming Wild Software Schedules". Emphasizes possible, realistic and "best practice" approaches for managers, technical leads and self-managed teams. The author emphasizes efficient development concepts with an examination of rapid development strategies and a study of classic mistakes, within the co
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions book cover43

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Gregor Hohpe, Bobby Woolf

4.2
Enterprise Integration Patterns provides an invaluable catalog of sixty-five patterns, with real-world solutions that demonstrate the formidable of messaging and help you to design effective messaging solutions for your enterprise. The authors also include examples covering a variety of different integration technologies, such as JMS, MSMQ, TIBCO ActiveEnterprise, Microsoft BizTalk, SOAP, and XSL.
The Passionate Programmer: Creating a Remarkable Career in Software Development book cover44

The Passionate Programmer: Creating a Remarkable Career in Software Development

Chad Fowler

4.2
Success in today's IT environment requires you to view your career as a business endeavor. In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skill
Soft Skills: The Software Developer's Life Manual book cover45

Soft Skills: The Software Developer's Life Manual

John Sonmez

4.2
Summary

"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
The Art of Computer Programming, Volume 1: Fundamental Algorithms book cover46

The Art of Computer Programming, Volume 1: Fundamental Algorithms

Donald E. Knuth

4.2
The first revision of this third volume is the most comprehensivesurvey of classical computer techniques for sorting and searching. It extends thetreatment of data structures in Volume 1 to consider both large and smalldatabases and internal and external memories. The book contains a selection ofcarefully checked computer methods, with a quantitative analysis of theirefficiency. Outstanding featur
Pragmatic Thinking and Learning: Refactor Your Wetware book cover47

Pragmatic Thinking and Learning: Refactor Your Wetware

Andy Hunt

4.2
Software development happens in your head. Not in an editor, IDE, or design tool. You're well educated on how to work with software and hardware, but what about wetware--our own brains? Learning new skills and new technology is critical to your career, and it's all in your head.

In this book by Andy Hunt, you'll learn how our brains are wired, and how to take advantage of your brain's architecture
Java Concurrency in Practice book cover48

Java Concurrency in Practice

Brian Goetz

4.2
"I was fortunate indeed to have worked with a fantastic team on the design and implementation of the concurrency features added to the Java platform in Java 5.0 and Java 6. Now this same team provides the best explanation yet of these new features, and of concurrency in general. Concurrency is no longer a subject for advanced users only. Every Java developer should read this book."
--Martin Buchhol
The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change book cover49

The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change

Camille Fournier

4.2
Managing people is difficult wherever you work, but the tech industry as a whole is pretty bad at it. Tech companies in general lack the experience, tools, texts, and frameworks to do it well. And the handful of books that share tips and tricks of engineering management don t explain how to supervise employees in the face of growth and change.

In this book, author Camille Fournier takes you through
Software Estimation: Demystifying the Black Art book cover50

Software Estimation: Demystifying the Black Art

Steve McConnell

4.2
Often referred to as the "black art" because of its complexity and uncertainty, software estimation is not as difficult or puzzling as people think. In fact, generating accurate estimates is straightforward--once you understand the art of creating them. In his highly anticipated book, acclaimed author Steve McConnell unravels the mystery to successful software estimation--distilling academic infor
Implementing Domain-Driven Design book cover51

Implementing Domain-Driven Design

Vaughn Vernon

4.2
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.
A Philosophy of Software Design book cover52

A Philosophy of Software Design

John Ousterhout

4.1
Agile Estimating and Planning book cover53

Agile Estimating and Planning

Mike Cohn

4.1
Praise for Agile Estimating and Planning "Traditional, deterministic approaches to planning and estimating simply don't cut it on the slippery slopes of today's dynamic, change-driven projects. Mike Cohn's breakthrough book gives us not only the philosophy, but also the guidelines and a proven set of tools that we need to succeed in planning, estimating, and scheduling projects with a high uncerta
Practical Object Oriented Design in Ruby book cover54

Practical Object Oriented Design in Ruby

Sandi Metz

4.1
The Complete Guide to Writing More Maintainable, Manageable, Pleasing, and Powerful Ruby Applications Ruby's widely admired ease of use has a downside: Too many Ruby and Rails applications have been created without concern for their long-term maintenance or evolution. The Web is awash in Ruby code that is now virtually impossible to change or extend. This text helps you solve that problem by using
Hackers & Painters: Big Ideas from the Computer Age book cover55

Hackers & Painters: Big Ideas from the Computer Age

Paul Graham

4.1
“The computer world is like an intellectual Wild West, in which you can shoot anyone you wish with your ideas, if you’re willing to risk the consequences.” —from Hackers & Painters: Big Ideas from the Computer Age, by Paul Graham

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. W
Software Engineering (International Computer Science Series) book cover56

Software Engineering (International Computer Science Series)

Ian Sommerville

4.1
A a broad perspective on software systems engineering, concentrating on widely used techniques for developing large-scale software systems. Restructured into six parts, this new edition covers a wide spectrum of software processes from initial requirements solicitation through design and development.
The Practice of Programming (Addison-Wesley Professional Computing Series) book cover57

The Practice of Programming (Addison-Wesley Professional Computing Series)

Brian W. Kernighan, Rob Pike

4.1
With the same insight and authority that made their book The Unix programming Environment a classic, Brian Kernighan and Rob Pike have written The Practice of Programming to help make individual programmers more effective and productive.
Effective C++: 55 Specific Ways to Improve Your Programs and Designs book cover58

Effective C++: 55 Specific Ways to Improve Your Programs and Designs

Scott Meyers

4.1
The Barnes & Noble Review
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 r
The Software Craftsman: Professionalism, Pragmatism, Pride book cover59

The Software Craftsman: Professionalism, Pragmatism, Pride

Sandro Mancuso Mancuso

4.1
Be a Better Developer and Deliver Better Code Despite advanced tools and methodologies, software projects continue to fail. Why? Too many organizations still view software development as just another production line. Too many developers feel that way, too--and they behave accordingly. In The Software Craftsman: Professionalism, Pragmatism, Pride, Sandro Mancuso offers a better and more fulfillin
Algorithms to Live By: The Computer Science of Human Decisions book cover60

Algorithms to Live By: The Computer Science of Human Decisions

Brian Christian and Griffiths

4.1
A fascinating exploration of how insights from computer algorithms can be applied to our everyday lives, helping to solve common decision-making problems and illuminate the workings of the human mind

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
Facts and Fallacies of Software Engineering book cover61

Facts and Fallacies of Software Engineering

Robert L. Glass Glass

4.1
The practice of building software is a "new kid on the block" technology. Though it may not seem this way for those who have been in the field for most of their careers, in the overall scheme of professions, software builders are relative "newbies." In the short history of the software field, a lot of facts have been identified, and a lot of fallacies promulgated. Those facts and fallacies are wha
The Little Schemer book cover63

The Little Schemer

Daniel P. Friedman, Matthias Felleisen, et al.

4.1
The notion that “thinking about computing is one of the most exciting things the human mind can do” sets both The Little Schemer (formerly known as The Little LISPer) and its new companion volume, The Seasoned Schemer, apart from other books on LISP. The authors' enthusiasm for their subject is compelling as they present abstract concepts in a humorous and easy-to-grasp fashion. Together, these bo
User Stories Applied: For Agile Software Development book cover64

User Stories Applied: For Agile Software Development

Mike Cohn

4.1
Thoroughly reviewed and eagerly anticipated by the agile community, User Stories Applied offers a requirements process that saves time, eliminates rework, and leads directly to better software.

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 C
Fluent Python: Clear, Concise, and Effective Programming book cover65

Fluent Python: Clear, Concise, and Effective Programming

Luciano Ramalho

4.1
Python's simplicity lets you become productive quickly, but this often means you aren't using everything it has to offer. With this hands-on guide, you'll learn how to write effective, idiomatic Python code by leveraging its best and possibly most neglected features. Author Luciano Ramalho takes you through Python's core language features and libraries, and shows you how to make your code shorter,
The Art of Unit Testing: with examples in C# book cover66

The Art of Unit Testing: with examples in C#

Roy Osherove

4.1
Summary

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 an
An Introduction to Statistical Learning: With Applications in R book cover67

An Introduction to Statistical Learning: With Applications in R

Gareth James, Daniela Witten, Trevor Hastie, Robert Tibshirani

4.1
An Introduction to Statistical Learning provides an accessible overview of the field of statistical learning, an essential toolset for making sense of the vast and complex data sets that have emerged in fields ranging from biology to finance to marketing to astrophysics in the past twenty years. This book presents some of the most important modeling and prediction techniques, along with relevant a
Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming book cover68

Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming

Eric Matthes

4.1
Second edition of the best selling Python book in the world. A fast-paced, no-nonsense guide to programming in Python. This book teaches beginners the basics of programming in Python with a focus on real projects.

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
The Effective Engineer: How to Leverage Your Efforts In Software Engineering to Make a Disproportionate and Meaningful Impact book cover69

The Effective Engineer: How to Leverage Your Efforts In Software Engineering to Make a Disproportionate and Meaningful Impact

Edmond Lau

4.1
The most effective engineers — the ones who have risen to become distinguished engineers and leaders at their companies — can produce 10 times the impact of other engineers, but they're not working 10 times the hours.

They've internalized a mindset that took me years of trial and error to figure out. I'm going to share that mindset with you — along with hundreds of actionable techniques and proven
UML Distilled: A Brief Guide to the Standard Object Modeling Language book cover70

UML Distilled: A Brief Guide to the Standard Object Modeling Language

Martin Fowler

4.1
More than 300,000 developers have benefited from past editions of UML Distilled . This third edition is the best resource for quick, no-nonsense insights into understanding and using UML 2.0 and prior versions of the UML. Some readers will want to quickly get up to speed with the UML 2.0 and learn the essentials of the UML. Others will use this book as a handy, quick reference to the most common
The Art of Readable Code book cover71

The Art of Readable Code

Dustin Boswell, Trevor Foucher

4.1
As programmers, we’ve all seen source code that’s so ugly and buggy it makes our brain ache. Over the past five years, authors Dustin Boswell and Trevor Foucher have analyzed hundreds of examples of "bad code" (much of it their own) to determine why they’re bad and how they could be improved. Their conclusion? You need to write code that minimizes the time it would take someone else to understand
Software Requirements: Practical Techniques for Gathering and Managing Requirements Throughout the Product Development Cycle book cover72

Software Requirements: Practical Techniques for Gathering and Managing Requirements Throughout the Product Development Cycle

Karl Wiegers

4.1

Without formal, verifiable software requirements—and an effective system for managing them—the 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

The Soul of a New Machine book cover73

The Soul of a New Machine

Tracy Kidder

4.1
The computer revolution brought with it new methods of getting work done—just look at today's news for reports of hard-driven, highly-motivated young software and online commerce developers who sacrifice evenings and weekends to meet impossible deadlines. Tracy Kidder got a preview of this world in the late 1970s when he observed the engineers of Data General design and build a new 32-bit minicomp
The Unicorn Project: A Novel About Developers, Digital Disruption, and Thriving in the Age of Data book cover74

The Unicorn Project: A Novel About Developers, Digital Disruption, and Thriving in the Age of Data

Gene Kim

4.1
This highly anticipated follow-up to the bestselling title The Phoenix Project takes another look at Parts Unlimited, this time from the perspective of software development. In The Phoenix Project, Bill, an IT manager at Parts Unlimited, is tasked with a project critical to the future of the business, code named Phoenix Project. But the project is massively over budget and behind schedule. The CEO
The Inmates are Running the Asylum: Why High-tech Products Drive Us Crazy and How to Restore the Sanity book cover75

The Inmates are Running the Asylum: Why High-tech Products Drive Us Crazy and How to Restore the Sanity

Alan Cooper

4.1
Kanban: Successful Evolutionary Change for Your Technology Business book cover76

Kanban: Successful Evolutionary Change for Your Technology Business

David J. Anderson

4.1
The C++ Programming Language book cover77

The C++ Programming Language

Bjarne Stroustrup

4.0
The new C++11 standard allows programmers to express ideas more clearly, simply, and directly, and to write faster, more efficient code. Bjarne Stroustrup, the designer and original implementer of C++, has reorganized, extended, and completely rewritten his definitive reference and tutorial for programmers who want to use C++ most effectively. "The C++ Programming Language, Fourth Edition, " deliv
Implementing Lean Software Development: From Concept to Cash book cover78

Implementing Lean Software Development: From Concept to Cash

Mary Poppendieck

4.0
User Story Mapping: Discover the Whole Story, Build the Right Product book cover79

User Story Mapping: Discover the Whole Story, Build the Right Product

Jeff Patton and Peter Economy

4.0
How do you build a product that delights users? You must first know who your users are and how they plan to use what you're building. With this practical book, you'll explore the often-misunderstood practice of user story mapping, and learn how it can help keep your team stay focused on users and their experience throughout the development process.

You and your team will learn that user stories are
Learn You a Haskell for Great Good! book cover80

Learn You a Haskell for Great Good!

Miran Lipovača

4.0

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 art

Thinking in Java book cover81

Thinking in Java

Bruce Eckel

4.0
Compilers: Principles, Techniques, and Tools book cover82

Compilers: Principles, Techniques, and Tools

Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman

4.0
This introduction to compilers is the direct descendant of the well-known book by Aho and Ullman, Principles of Compiler Design. The authors present updated coverage of compilers based on research and techniques that have been developed in the field over the past few years. The book provides a thorough introduction to compiler design and covers topics such as context-free grammars, fine state mach
Agile Principles, Patterns, and Practices in C# book cover83

Agile Principles, Patterns, and Practices in C#

Robert C. Martin and Micah Martin

4.0
With the award-winning book Agile Software Development: Principles, Patterns, and Practices, Robert C. Martin helped bring Agile principles to tens of thousands of Java and C++ programmers. Now .NET programmers have a definitive guide to agile methods with this completely updated volume from Robert C. Martin and Micah Martin, Agile Principles, Patterns, and Practices in C#.

This book presents a
Head First Java book cover84

Head First Java

Kathy Sierra and Bert Bates

4.0
Learning a complex new language is no easy task especially when it s an object-oriented computer programming language like Java. You might think the problem is your brain. It seems to have a mind of its own, a mind that doesn't always want to take in the dry, technical stuff you're forced to study.

The fact is your brain craves novelty. It's constantly searching, scanning, waiting for something un
Seven Languages in Seven Weeks book cover85

Seven Languages in Seven Weeks

Bruce Tate

4.0
You should learn a programming language every year, as recommended by The Pragmatic Programmer. But if one per year is good, how about Seven Languages in Seven Weeks? In this book you'll get a hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. Whether or not your favorite language is on that list, you'll broaden your perspective of programming by examining these languages side
Essential Scrum: A Practical Guide to the Most Popular Agile Process book cover86

Essential Scrum: A Practical Guide to the Most Popular Agile Process

Kenneth Rubin

4.0
A Practical Guide to the Most Popular Agile Process The Single-Source, Comprehensive Guide to Scrum for All Team Members, Managers, and Executives If you want to use Scrum to develop innovative products and services that delight your customers, Essential Scrum is the complete, single-source reference you've been searching for. Leading Scrum coach and trainer Kenny Rubin illuminates the va
High Performance Browser Networking book cover87

High Performance Browser Networking

Ilya Grigorik

4.0
How prepared are you to build fast and efficient web applications? This eloquent book provides what every web developer should know about the network, from fundamental limitations that affect performance to major innovations for building even more powerful browser applications—including HTTP 2.0 and XHR improvements, Server-Sent Events (SSE), WebSocket, and WebRTC.

Author Ilya Grigorik, a web perfo
The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary book cover88

The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary

Eric S. Raymond

4.0
Open source provides the competitive advantage in the Internet Age. According to the August Forrester Report, 56 percent of IT managers interviewed at Global 2,500 companies are already using some type of open source software in their infrastructure and another 6 percent will install it in the next two years. This revolutionary model for collaborative software development is being embraced and stu
The Complete Software Developer's Career Guide: How to Learn Your Next Programming Language, Ace Your Programming Interview, and Land The Coding Job Of Your Dreams book cover89

The Complete Software Developer's Career Guide: How to Learn Your Next Programming Language, Ace Your Programming Interview, and Land The Coding Job Of Your Dreams

John Sonmez

4.0
Technical Knowledge Alone Isn't Enough - Increase Your Software Development Income by Leveling Up Your Soft Skills

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 consult

The Art of UNIX Programming book cover90

The Art of UNIX Programming

Eric S. Raymond

4.0
This text reveals the software design secrets of the original Unix designers, showing how they produce software that is fast, portable, reuseable, modular and long-lived. Luminaries including Brian Kernighan, David Korn and Henry Spencer contribute to the book.
Advanced Programming in the UNIX Environment book cover91

Advanced Programming in the UNIX Environment

W. Richard Stevens

4.0
If you are an experienced C programmer with a working knowledge of UNIX, you cannot afford to be without this up-to-date tutorial on the system call interface and the most important functions found in the ANSI C library. Rich Stevens describes more than 200 system calls and functions; since he believes the best way to learn code is to read code, a brief example accompanies each description.Buildin
Programming in Scala: Updated for Scala 2.12 book cover92

Programming in Scala: Updated for Scala 2.12

Martin Odersky, Lex Spoon, Bill Venners

4.0
Programming in Scala
97 Things Every Programmer Should Know: Collective Wisdom from the Experts book cover93

97 Things Every Programmer Should Know: Collective Wisdom from the Experts

Kevlin Henney

4.0
Tap into the wisdom of experts to learn what every programmer should know, no matter what language you use. With the 97 short and extremely useful tips for programmers in this book, you'll expand your skills by adopting new approaches to old problems, learning appropriate best practices, and honing your craft through sound advice.

With contributions from some of the most experienced and respected p
Hacker's Delight book cover94

Hacker's Delight

Henry S. Warren Jr.

4.0
Aiming to tell the dark secrets of computer arithmetic, this title is suitable for library developers, compiler writers, and lovers of elegant hacks.
Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14 book cover95

Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14

Scott Meyers

4.0
Coming to grips with C++11 and C++14 is more than a matter of familiarizing yourself with the features they introduce (e.g., auto type declarations, move semantics, lambda expressions, and concurrency support). The challenge is learning to use those features effectively--so that your software is correct, efficient, maintainable, and portable. That's where this practical book comes in. It describes
First Little Readers: Guided Reading Level C (Parent Pack): 25 Irresistible Books That Are Just the Right Level for Beginning Readers book cover96

First Little Readers: Guided Reading Level C (Parent Pack): 25 Irresistible Books That Are Just the Right Level for Beginning Readers

Liza Charlesworth

4.0
Jumpstart reading success with this big collection motivating storybooks correlated with Guided Reading Level C. Most pages of these full-color storybooks feature just two or three lines of simple, repetitive text to help children learn to read with ease and confidence. Includes a tip-filled parent guide. A great value!
1. The Pie that Jack Made
2. Funny Foods
3. Round the Clown
4. Follow that Cat!
5.
Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development book cover97

Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development

Craig Larman

4.0
Applying UML and Patterns is the world’s #1 business and college introduction to “thinking in objects” - and using that insight in real-world object-oriented analysis and design. Building on two widely acclaimed previous editions, Craig Larman has updated this book to fully reflect the new UML 2 standard, to help you master the art of object design, and to promote high-impact, iterative, and skill
Game Programming Patterns book cover98

Game Programming Patterns

Robert Nystrom

4.0
Game Programming Patterns brings the benefits of reusable design patterns to the world of game programming. Commercial game development expert Robert Nystrom presents an array of general solutions to problems encountered in game development. For example, you'll learn how double-buffering enables a player to perceive smooth and realistic motion, and how the service locator pattern can help you prov
Eloquent Javascript: A Modern Introduction to Programming book cover99

Eloquent Javascript: A Modern Introduction to Programming

Marijn Haverbeke

4.0
Completely revised and updated, this best-selling introduction to programming in JavaScript focuses on writing real applications.

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 m
The Elements of Computing Systems: Building a Modern Computer from First Principles book cover100

The Elements of Computing Systems: Building a Modern Computer from First Principles

Noam Nisan and Shimon Schocken

4.0
In the early days of computer science, the interactions of hardware, software, compilers, and operating system were simple enough to allow students to see an overall picture of how computers worked. With the increasing complexity of computer technology and the resulting specialization of knowledge, such clarity is often lost. Unlike other texts that cover only one aspect of the field, The Elements