37 books like The Elements of Computing Systems

By Shimon Schocken, Noam Nisan,

Here are 37 books that The Elements of Computing Systems fans have personally recommended if you like The Elements of Computing Systems. Shepherd is a community of 11,000+ authors and super readers sharing their favorite books with the world.

Shepherd is reader supported. When you buy books, we may earn an affiliate commission.

Book cover of Twitter and Tear Gas: The Power and Fragility of Networked Protest

Nora Sandler Author Of Writing a C Compiler: Build a Real Programming Language from Scratch

From my list on systems and system failures for programmers.

Why am I passionate about this?

I love computers, and especially computer systems. I’m interested in how different pieces of hardware and software, like processors, operating systems, compilers, and linkers, work together to get things done. Early in my career, as a software security tester, I studied how different components interacted to find vulnerabilities. Now that I work on compilers, I focus on the systems that transform source code into a running program. I’m also interested in how computer systems are shaped by the people who build and use them—I believe that creating safer, more reliable software is a social problem as much as a technical one.

Nora's book list on systems and system failures for programmers

Nora Sandler Why did Nora love this book?

This book gave me a new framework for thinking about how political change happens and how technology shapes our society. It analyzes how social media platforms like Facebook have helped antiauthoritarian movements achieve dazzling success almost overnight—and how those platforms have weakened and endangered those same movements. I loved that this book was clear and readable without oversimplifying the topic. It showed—as Tufecki writes, quoting another scholar—that “technology is neither good nor bad; nor is it neutral.”

This isn’t exactly a book about computer systems, but I decided to include it because it gave me a deeper understanding of how technological and social systems influence each other—which I hope will change how I write software myself.

By Zeynep Tufekci,

Why should I read it?

3 authors picked Twitter and Tear Gas as one of their favorite books, and they share why you should read it.

What is this book about?

From New York Times opinion columnist Zeynep Tufekci, an firsthand account and incisive analysis of the role of social media in modern protest

"[Tufekci's] personal experience in the squares and streets, melded with her scholarly insights on technology and communication platforms, makes [this] such an unusual and illuminating work."-Carlos Lozada, Washington Post

"Twitter and Tear Gas is packed with evidence on how social media has changed social movements, based on rigorous research and placed in historical context."-Hannah Kuchler, Financial Times

To understand a thwarted Turkish coup, an anti-Wall Street encampment, and a packed Tahrir Square, we must first comprehend the…


Book cover of Hacking: The Art of Exploitation

Nora Sandler Author Of Writing a C Compiler: Build a Real Programming Language from Scratch

From my list on systems and system failures for programmers.

Why am I passionate about this?

I love computers, and especially computer systems. I’m interested in how different pieces of hardware and software, like processors, operating systems, compilers, and linkers, work together to get things done. Early in my career, as a software security tester, I studied how different components interacted to find vulnerabilities. Now that I work on compilers, I focus on the systems that transform source code into a running program. I’m also interested in how computer systems are shaped by the people who build and use them—I believe that creating safer, more reliable software is a social problem as much as a technical one.

Nora's book list on systems and system failures for programmers

Nora Sandler Why did Nora love this book?

One of the best ways to understand how software works is to study how it fails. When I was just starting my career in software security, I read this book to learn about binary exploits like buffer overflows. It’s been a long time since I’ve written a binary exploit, but digging into the nitty-gritty, low-level details of how software runs on a real system has helped with everything I’ve done as an engineer since.

A lot has changed since this book was published in 2008 (and running the accompanying Live CD has gotten trickier), but the fundamental concepts are as relevant as ever.

By Jon Erickson,

Why should I read it?

1 author picked Hacking as one of their favorite books, and they share why you should read it.

What is this book about?

Hacking is the art of creative problem solving, whether that means finding an unconventional solution to a difficult problem or exploiting holes in sloppy programming. Many people call themselves hackers, but few have the strong technical foundation needed to really push the envelope. Rather than merely showing how to run existing exploits, author Jon Erickson explains how arcane hacking techniques actually work. To share the art and science of hacking in a way that is accessible to everyone, Hacking: The Art of Exploitation, 2nd Edition introduces the fundamentals of C programming from a hacker's perspective. The included LiveCD provides a…


Book cover of Meltdown: Why Our Systems Fail and What We Can Do About It

Nora Sandler Author Of Writing a C Compiler: Build a Real Programming Language from Scratch

From my list on systems and system failures for programmers.

Why am I passionate about this?

I love computers, and especially computer systems. I’m interested in how different pieces of hardware and software, like processors, operating systems, compilers, and linkers, work together to get things done. Early in my career, as a software security tester, I studied how different components interacted to find vulnerabilities. Now that I work on compilers, I focus on the systems that transform source code into a running program. I’m also interested in how computer systems are shaped by the people who build and use them—I believe that creating safer, more reliable software is a social problem as much as a technical one.

Nora's book list on systems and system failures for programmers

Nora Sandler Why did Nora love this book?

This isn’t a technical book, but it gets to the heart of why so much software is fragile and insecure. This book examines spectacular failures of all sorts, from nuclear meltdowns to plane crashes to oil spills, but I loved it because its message resonated with my own experience writing and debugging code. It argues that complex, tightly coupled systems involving hidden interactions and close coordination between lots of different parts are more likely to fail catastrophically. It also talks about strategies to make those systems safer, like doing “premortems,” getting advice from outsiders, and building diverse teams.

My big takeaway? Technical solutions alone won’t make software (or other complex systems) safer. We need to change how we build and how our organizations work, too.

By Chris Clearfield, András Tilcsik,

Why should I read it?

1 author picked Meltdown as one of their favorite books, and they share why you should read it.

What is this book about?

A groundbreaking take on how complexity causes failure in all kinds of modern systems—from social media to air travel—this practical and entertaining book reveals how we can prevent meltdowns in business and life.

A crash on the Washington, D.C. metro system. An accidental overdose in a state-of-the-art hospital. An overcooked holiday meal. At first glance, these disasters seem to have little in common. But surprising new research shows that all these events—and the myriad failures that dominate headlines every day—share similar causes. By understanding what lies behind these failures, we can design better systems, make our teams more productive, and…


Book cover of Recoding America: Why Government Is Failing in the Digital Age and How We Can Do Better

Nora Sandler Author Of Writing a C Compiler: Build a Real Programming Language from Scratch

From my list on systems and system failures for programmers.

Why am I passionate about this?

I love computers, and especially computer systems. I’m interested in how different pieces of hardware and software, like processors, operating systems, compilers, and linkers, work together to get things done. Early in my career, as a software security tester, I studied how different components interacted to find vulnerabilities. Now that I work on compilers, I focus on the systems that transform source code into a running program. I’m also interested in how computer systems are shaped by the people who build and use them—I believe that creating safer, more reliable software is a social problem as much as a technical one.

Nora's book list on systems and system failures for programmers

Nora Sandler Why did Nora love this book?

Although I don’t work in government, this is a book I’ll come back to whenever I need a reminder to put user needs ahead of process or wisdom about how to work inside a large bureaucracy to make that happen. Where Meltdown focuses on spectacular blow-ups, this book explores run-of-the-mill failures—like long, complicated online forms and websites that only load in specific, outdated browsers. (Though bigger failures, like the launch of healthcare.gov, get airtime too.)

I appreciated this book’s thoughtful analysis of how government software gets built—it goes beyond the stereotype of the incompetent government employee and digs into the underlying reasons that even competent and dedicated public servants can struggle to deliver critical software. Many of those reasons apply to private companies, too. 

By Jennifer Pahlka,

Why should I read it?

1 author picked Recoding America as one of their favorite books, and they share why you should read it.

What is this book about?

Learn more about Jennifer Pahlka's work at recodingamerica.us.

"The book I wish every policymaker would read."
-Ezra Klein, The New York Times

A bold call to reexamine how our government operates-and sometimes fails to-from President Obama's former deputy chief technology officer and the founder of Code for America

Just when we most need our government to work-to decarbonize our infrastructure and economy, to help the vulnerable through a pandemic, to defend ourselves against global threats-it is faltering. Government at all levels has limped into the digital age, offering online services that can feel even more cumbersome than the paperwork that…


Book cover of The Pattern on the Stone: The Simple Ideas That Make Computers Work

Michael L. Littman Author Of Code to Joy: Why Everyone Should Learn a Little Programming

From my list on computing and why it’s important and interesting.

Why am I passionate about this?

Saying just the right words in just the right way can cause a box of electronics to behave however you want it to behave… that’s an idea that has captivated me ever since I first played around with a computer at Radio Shack back in 1979. I’m always on the lookout for compelling ways to convey the topic to people who are open-minded, but maybe turned off by things that are overly technical. I teach computer science and study artificial intelligence as a way of expanding what we can get computers to do on our behalf.

Michael's book list on computing and why it’s important and interesting

Michael L. Littman Why did Michael love this book?

The fields of Psychology, Economics, and Biology are well-known for offering interesting and informative introductory courses that provide a doorway into the area for budding scientists but also essential background knowledge appropriate for any educated person.

In Computer Science, we don't really do things that way. I wanted to offer a new kind of Computer Science introductory course that laid out the coolest ideas we have to offer along with compelling descriptions of why they matter.

I ended up using this book as the required reading in the class I built because it tells a personal, moving story while taking the reader from the nuts and bolts of bits and bytes all the way up to cutting-edge ideas surrounding artificial intelligence. It's a great read! Plus, it's short so I thought I could get my students to actually finish it.

By W. Daniel Hillis,

Why should I read it?

1 author picked The Pattern on the Stone as one of their favorite books, and they share why you should read it.

What is this book about?

Most people are baffled by how computers work and assume that they will never understand them. What they don't realize,and what Daniel Hillis's short book brilliantly demonstrates,is that computers'seemingly complex operations can be broken down into a few simple parts that perform the same simple procedures over and over again. Computer wizard Hillis offers an easy-to-follow explanation of how data is processed that makes the operations of a computer seem as straightforward as those of a bicycle.Avoiding technobabble or discussions of advanced hardware, the lucid explanations and colourful anecdotes in The Pattern on the Stone go straight to the heart…


Book cover of Computers Ltd.: What They Really Can't Do

Martin Erwig Author Of Once Upon an Algorithm: How Stories Explain Computing

From my list on computer science without coding.

Why am I passionate about this?

I’m a professor of computer science at Oregon State University. My research focus is on programming languages, but I also work on computer science education and outreach. I grew up in Germany and moved to the United States in 2000. Since computer science is a fairly new and not widely understood discipline, I am interested in explaining its core ideas to the general public. I believe that in order to attract a more diverse set of people to the field we should emphasize that coding is only a small part of computer science.

Martin's book list on computer science without coding

Martin Erwig Why did Martin love this book?

This book provides a brief introduction to the concept of algorithms before discussing the limitations of computation. Specifically, Harel explains undecidable problems (that is, problems for which no algorithm exists) and infeasible problems (that is, problems for which only algorithms are known that have an exponential runtime). I like this book (and its splendid title) because of its focus on the limitations of computation. Harel does a marvelous job in explaining two difficult topics about computation. The understanding of any scientific discipline requires the understanding of its limits, and the limits of computation are as significant as they are surprising.

By David Harel,

Why should I read it?

2 authors picked Computers Ltd. as one of their favorite books, and they share why you should read it.

What is this book about?

Computers are incredible. They are one of the most important inventions of the 20th century, dramatically and irrevocably changing the way we live. That is the good news. The bad news is that there are still major limitations to computers, serious problems that not even the most powerful computers can solve. The consequences of such limitations can be serious. Too often these limits get overlooked, in the quest for bigger, better, and more powerful computers. In Computers Ltd., David Harel, best-selling author of Algorithmics, explains and illustrates one of the most fundamental, yet under-exposed facets of computers - their inherent…


Book cover of A Discipline of Programming

Federico Kereki Author Of Mastering JavaScript Functional Programming: Write clean, robust, and maintainable web and server code using functional JavaScript and TypeScript

From my list on the theory and practice of computer programming.

Why am I passionate about this?

I have been working with computers for decades now – having started with programmable handheld calculators and working my way up and down through mainframes, mini- and micro-computers. I always thought there is an art to writing software, and that good software can be read and admired. Maintainability, readability, and testability are some core needs for software, and after going through many programming paradigms, I feel that functional programming (FP) is the way to go – and several modern web frameworks agree. JavaScript (and now, TypeScript) are essential to web development, and I wanted to show how FP could be successfully used with those languages, and thus my book.

Federico's book list on the theory and practice of computer programming

Federico Kereki Why did Federico love this book?

This thin but quite fulfilling book is a compact yet profound exploration of proven program correctness, probably one of the first texts to focus on that topic.

Dijkstra's emphasis on mathematical rigor and disciplined thinking reshapes how programmers approach problem-solving. The author imparts essential principles of program construction, advocating for clarity and precision in code, and leading to cultivating a disciplined mindset, and fostering a deep appreciation for the art and science of programming.

Despite its age, all its knowledge is fully valid, and I’d give the book to every programmer so they can reach a higher level of quality.

By Edsger W. Dijkstra,

Why should I read it?

1 author picked A Discipline of Programming as one of their favorite books, and they share why you should read it.

What is this book about?

Clean wraps, corners square, lay flat. No creases to the spine, or hinge. Small frayed spot at the top of the spine. No previous owner's name, no other marks in text. Well kept copy.


Book cover of Stand on Zanzibar

Robert Zwilling Author Of Asteroid Fever

From my list on science fiction books where the big break doesn't change anything.

Why am I passionate about this?

I have always been fascinated by science and everything mysterious. I love to read science fiction and mystery stories. I use art and literature to explore reality. Writing or painting allows me to link seemingly unrelated topics together to create my own explanations for why things are the way they appear to be. The biggest things in the universe are replicated on Earth right down to sub-atomic size. I call that life imitating stars. Life is an endless resource found everywhere in the universe, and it's not restricted to just light or heat to grow; it only needs energy.

Robert's book list on science fiction books where the big break doesn't change anything

Robert Zwilling Why did Robert love this book?

This book was written in the late 60s, when everything was breaking loose from traditional values, including writing styles. Brunner did a very good job of anticipating how technology and changing social norms would change the world in the not-so-distant future.

It's all there: sexual freedom, legal drugs, religion, computers, crazy mass killers called muckers, corporate empires, a 7 billion population, global events, and the personalized internet.

I like the way the story was written, a new wave pop art style intermixed with traditional passages blaring out a series of seemingly unrelated events that are strung together by a group of unrelated characters who carry the complex story through to a surprising ending.

By John Brunner,

Why should I read it?

3 authors picked Stand on Zanzibar as one of their favorite books, and they share why you should read it.

What is this book about?

Now in a Tor Essentials edition, the Hugo Award-winning, uncannily prophetic Stand on Zanizbar is a science fiction novel unlike any before in that remains an insightful look at America’s downfall that allows us to see what has been, what is, and what is to come.

“There are certain things John Brunner achieved, which no one has done before or since.” ― Bruce Sterling

Genetic engineering is routine, corporations have usurped democracy, technology governs human relationship, and mass-marketed psychosomatic drugs keep billions docile. The systems of the United States are universal in reach and out of control. Every citizen is…


Book cover of Digital Diaspora: A Race for Cyberspace

Raven Maragh-Lloyd Author Of Black Networked Resistance: Strategic Rearticulations in the Digital Age

From my list on internet activism (hint: the kids are actually alright).

Why am I passionate about this?

I write about race and technology, and specifically the histories of Black folks as they influence online activities, from memes and community-building to care networks and activist efforts. I use theory, research, and most importantly lived experiences to tell the story of Black digital practices. The books I choose here represent how diverse my thinking is when it comes to this topic: from fiction to non-fiction, these works are as fluid yet meaningful as I think identity is, on and offline.

Raven's book list on internet activism (hint: the kids are actually alright)

Raven Maragh-Lloyd Why did Raven love this book?

I fell in love with this book as a young graduate school student at the University of Iowa. Curled up in my tiny 500-square-foot apartment, I devoured the book, not realizing morning had turned into afternoon and then evening.

At a time in the early 2000s when "serious" scholarship largely included Black people using technology in condescending and pathologizing ways, I read Everett sharply responding with counter-evidence of Black publics' involvement at every turn of media developments.

The book, I remember, made me feel like writing a counter-history that places "us" at the center is not only possible but transformational.

By Anna Everett,

Why should I read it?

1 author picked Digital Diaspora as one of their favorite books, and they share why you should read it.


Book cover of Computer Systems: A Programmer's Perspective

Shimon Schocken Author Of The Elements of Computing Systems: Building a Modern Computer from First Principles

From my list on how computers work, and how they are built.

Why am I passionate about this?

As a computer science professor and educator, my teaching motto is Rigor and Vigor. I believe that the only way to learn something deeply, whether it's an abstract mathematical argument or a complex computer system – is building the thing from the ground up, from first principles. That's the rigor. The second requirement – vigor – comes from the need to make this learning experience captivating, rewarding, empowering. I spent much of my career developing books, courses, and games that help learn computer science and mathematics with gusto. I am pleased that this work has had an impact, and that it resonates with many students and self-learners around the world.

Shimon's book list on how computers work, and how they are built

Shimon Schocken Why did Shimon love this book?

This weighty tome delves deep into the low-level working of computer programs.

This book is a great resource for professional programmers who work close to the machine in such fields as embedded software, cybersecurity, and device drivers. Assuming a basic knowledge of the C language, Bryant and O’Hallaron, two CMU professors, teach how to read and understand compiled code, how to optimize it for better performance, and how to avoid common pitfalls.

This is a hard-core technical book, written by engineers for engineers, in a dense style that is nonetheless accessible and practical. I like the numerous applied problems, each accompanied by a worked-out solution.

By Randal E. Bryant, David R. O'Hallaron,

Why should I read it?

1 author picked Computer Systems as one of their favorite books, and they share why you should read it.

What is this book about?

&>standalone product; MasteringEngineering (R) does not come packaged with this content. If you would like to purchase both the physical text and MasteringEngineering search for 0134123832 / 9780134123837 Computer Systems: A Programmer's Perspective plus MasteringEngineering with Pearson eText - Access Card Package, 3/e

Package consists of:

013409266X/9780134092669 Computer Systems: A Programmer's Perspective, 3/e 0134071921/9780134071923 MasteringEngineering with Pearson eText -- Standalone Access Card -- for Computer Systems: A Programmer's Perspective, 3/e

MasteringEngineering should only be purchased when required by an instructor.

For courses in Computer Science and Programming

Computer systems: A Programmer's Perspective explains the underlying elements common among all computer…


5 book lists we think you will like!

Interested in computers, artificial intelligence, and software?

Computers 29 books
Software 61 books