69 books like Beautiful Code

By Andy Oram, Greg Wilson,

Here are 69 books that Beautiful Code fans have personally recommended if you like Beautiful Code. Shepherd is a community of 10,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 Structure and Interpretation of Computer Programs

Christian Clausen Author Of Five Lines of Code

From my list on reads with your hands on the keyboard.

Why am I passionate about this?

My life has been about programming for as long as I can remember. Learning to code was a way to connect with my dad and express my creativity at a young age. Since I grew up with code, it became the way I understood the world; often I could look at a process or program and immediately see its source code in my mind. I developed a very strong sense of aesthetics searching for “perfect code,” which for me was code that was not only error-free but resistant to errors. My studies, research, and career is about moving myself and all programmers closer to that goal: Software that never fails.

Christian's book list on reads with your hands on the keyboard

Christian Clausen Why did Christian love this book?

After providing a thorough introduction to its language of choice (Scheme) it quickly demonstrates how make interesting non-trivial programs such as your own square root function or a symbolic differentiation tool, and that's just chapter 1.

All-in-all solid introduction to functional programming, or just programming in general.

By Harold Abelson, Gerald Jay Sussman, Julie Sussman

Why should I read it?

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

What is this book about?

As others have gone into, this is a great programming book for many reasons, and is a must-read for anyone who is interested in software design. Rather than waste time reaffirming the excellent positive reviews of this book, I wanted to cover something that I have not seen in the reviews: namely that there are multiple publishers for this book (as it is an "open source" book). At the time of writing, there is this McGraw-Hill publication, and, for 40% less, an MIT press edition. While I have not seen the McGraw-Hill version in person to see what quality benefits…


Book cover of Types and Programming Languages

Christian Clausen Author Of Five Lines of Code

From my list on reads with your hands on the keyboard.

Why am I passionate about this?

My life has been about programming for as long as I can remember. Learning to code was a way to connect with my dad and express my creativity at a young age. Since I grew up with code, it became the way I understood the world; often I could look at a process or program and immediately see its source code in my mind. I developed a very strong sense of aesthetics searching for “perfect code,” which for me was code that was not only error-free but resistant to errors. My studies, research, and career is about moving myself and all programmers closer to that goal: Software that never fails.

Christian's book list on reads with your hands on the keyboard

Christian Clausen Why did Christian love this book?

Having worked with an untyped functional language the next logical step is to add types on top, and how to get a better understanding than by implementing the type system yourself.

This book takes you through all the interesting kinds and variations of type systems, and you get to implement them yourself using one of my absolute favorite languages (OCaml).

By Benjamin C. Pierce,

Why should I read it?

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

What is this book about?

A comprehensive introduction to type systems and programming languages.

A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute. The study of type systems—and of programming languages from a type-theoretic perspective—has important applications in software engineering, language design, high-performance compilers, and security.

This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages. The approach is pragmatic and operational; each new concept is motivated by programming examples and the more theoretical sections…


Book cover of Distributed Algorithms An Intuitive Approach

Christian Clausen Author Of Five Lines of Code

From my list on reads with your hands on the keyboard.

Why am I passionate about this?

My life has been about programming for as long as I can remember. Learning to code was a way to connect with my dad and express my creativity at a young age. Since I grew up with code, it became the way I understood the world; often I could look at a process or program and immediately see its source code in my mind. I developed a very strong sense of aesthetics searching for “perfect code,” which for me was code that was not only error-free but resistant to errors. My studies, research, and career is about moving myself and all programmers closer to that goal: Software that never fails.

Christian's book list on reads with your hands on the keyboard

Christian Clausen Why did Christian love this book?

The building blocks of software are algorithms, so here our journey continues after you have established a deep understanding of programming languages.

Modern software is predominantly distributed, and since this book doesn't assume much it is the perfect introduction to algorithm analysis, concurrency, and distributed systems. And the best part is that you can just jump in and build these algorithms yourself.

By Fokkink,

Why should I read it?

1 author picked Distributed Algorithms An Intuitive Approach as one of their favorite books, and they share why you should read it.

What is this book about?

The new edition of a guide to distributed algorithms that emphasizes examples and exercises rather than the intricacies of mathematical models.

This book offers students and researchers a guide to distributed algorithms that emphasizes examples and exercises rather than the intricacies of mathematical models. It avoids mathematical argumentation, often a stumbling block for students, teaching algorithmic thought rather than proofs and logic. This approach allows the student to learn a large number of algorithms within a relatively short span of time. Algorithms are explained through brief, informal descriptions, illuminating examples, and practical exercises. The examples and exercises allow readers to…


Book cover of Java Puzzlers: Traps, Pitfalls, and Corner Cases

Christian Clausen Author Of Five Lines of Code

From my list on reads with your hands on the keyboard.

Why am I passionate about this?

My life has been about programming for as long as I can remember. Learning to code was a way to connect with my dad and express my creativity at a young age. Since I grew up with code, it became the way I understood the world; often I could look at a process or program and immediately see its source code in my mind. I developed a very strong sense of aesthetics searching for “perfect code,” which for me was code that was not only error-free but resistant to errors. My studies, research, and career is about moving myself and all programmers closer to that goal: Software that never fails.

Christian's book list on reads with your hands on the keyboard

Christian Clausen Why did Christian love this book?

This tour of programming is a humorous reminder that we should always question our assumptions.

This book presents example after example of very simple Java programs all of which behave differently than you expect. It's both humbling and so provocative that you have to go into an editor and see if their claims are true.

By Joshua Bloch, Neal Gafter,

Why should I read it?

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

What is this book about?

"Every programming language has its quirks. This lively book reveals oddities of the Java programming language through entertaining and thought-provoking programming puzzles."

--Guy Steele, Sun Fellow and coauthor of The Java (TM) Language Specification

"I laughed, I cried, I threw up (my hands in admiration)."

--Tim Peierls, president, Prior Artisans LLC, and member of the JSR 166 Expert Group

How well do you really know Java? Are you a code sleuth? Have you ever spent days chasing a bug caused by a trap or pitfall in Java or its libraries? Do you like brainteasers? Then this is the book for…


Book cover of Python for Everybody: Exploring Data in Python 3

Daniel Zingaro Author Of Learn to Code by Solving Problems: A Python Programming Primer

From my list on for a rock solid python programming foundation.

Why am I passionate about this?

Some programmers learn through online articles, videos, and blog posts. Not me. I need a throughline—a consistent, expert distillation of the material to take me from where I am to where I want to be. I am not good at patching together information from disparate sources. I need a great book. I have a PhD in computer science education, and I want to know what helps people learn. More importantly, I want to know how we can use such discoveries to write more effective books. The books I appreciate most are those that demonstrate not only mastery of the subject matter but also mastery of teaching.

Daniel's book list on for a rock solid python programming foundation

Daniel Zingaro Why did Daniel love this book?

Learning to program is hard. We need teachers who remember this, who are patient, who support the learning process, who not only know how to teach but also know how to learn from their teaching. Severance is all of these things. I like the breezy but precise writing, sections on debugging, glossaries and exercises in each chapter, and discussion of common learner errors. Bonus feature: regular expressions.

By Charles R. Severance,

Why should I read it?

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

What is this book about?

Python for Everybody is designed to introduce students to programming and software development through the lens of exploring data. You can think of the Python programming language as your tool to solve data problems that are beyond the capability of a spreadsheet.

Python is an easy to use and easy to learn programming language that is freely available on Macintosh, Windows, or Linux computers. So once you learn Python you can use it for the rest of your career without needing to purchase any software.

This book uses the Python 3 language. The earlier Python 2 version of this book…


Book cover of sed & awk

Ian Miell Author Of Learn Bash the Hard Way: Master Bash Using The Only Method That Works

From my list on becoming a Linux command line ninja.

Why am I passionate about this?

Like most geeks, I've always loved efficiency and productivity. Coming from a Windows-dominated world, the command line I was faced with in my CompSci degree was Initially mystifying, but over time I have come to see it as the most powerful human-computer interface out there. After spending years wresting with the command line at work, I decided to write a book on bash, and have blogged extensively on this and related topics. I also run live courses on bash and the command line for O'Reilly. There's nothing I enjoy more than opening people's eyes to the power of the shell!   

Ian's book list on becoming a Linux command line ninja

Ian Miell Why did Ian love this book?

After using sed and awk for years in ad hoc one-liners I'd either Googled, or been given I decided to study them properly.

Reading this book was not time wasted, as I saw how powerful these two tools could be, and have used them ever since. From the serious to the whimsical, each section concisely teaches you something significant.

I haven't read it in years, and I'm going to read it again straight after writing this!

By Dale Dougherty,

Why should I read it?

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

What is this book about?

sed & awk describes two text processing programs that are mainstays of the UNIX programmer's toolbox. sed is a "stream editor" for editing streams of text that might be too large to edit as a single file, or that might be generated on the fly as part of a larger data processing step. The most common operation done with sed is substitution, replacing one block of text with another. awk is a complete programming language. Unlike many conventional languages, awk is "data driven" -- you specify what kind of data you are interested in and the operations to be performed…


Book cover of Unix Power Tools

Ian Miell Author Of Learn Bash the Hard Way: Master Bash Using The Only Method That Works

From my list on becoming a Linux command line ninja.

Why am I passionate about this?

Like most geeks, I've always loved efficiency and productivity. Coming from a Windows-dominated world, the command line I was faced with in my CompSci degree was Initially mystifying, but over time I have come to see it as the most powerful human-computer interface out there. After spending years wresting with the command line at work, I decided to write a book on bash, and have blogged extensively on this and related topics. I also run live courses on bash and the command line for O'Reilly. There's nothing I enjoy more than opening people's eyes to the power of the shell!   

Ian's book list on becoming a Linux command line ninja

Ian Miell Why did Ian love this book?

I've saved the best to last.

Once I'd covered the command line basics, then I bought this book and kept it by my bed for a couple of years, imbibing its contents over and over.

It contains so many examples of how the command line can be used in real-world situations, as well as more practical advice and timeless tips. It feels like you've got four experts at your shoulder helping you get better.

It's so good I'm going to start re-reading it as soon as I've finished writing this.

By Shelly Powers, Jerry Peek, Tim O'Reilly , Mike Loukides

Why should I read it?

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

What is this book about?

With the growing popularity of Linux and the advent of Darwin, Unix has metamorphosed into something new and exciting. No longer perceived as a difficult operating system, more and more users are discovering the advantages of Unix for the first time. But whether you are a newcomer or a Unix power user, you'll find yourself thumbing through the goldmine of information in the new edition of Unix Power Tools to add to your store of knowledge. Want to try something new? Check this book first, and you're sure to find a tip or trick that will prevent you from learning…


Book cover of Unix for the Beginning Mage

Jeremy Kepner Author Of Mathematics of Big Data: Spreadsheets, Databases, Matrices, and Graphs

From my list on the foundations of computing technology.

Why am I passionate about this?

Dr. Jeremy Kepner is head and founder of the MIT Lincoln Laboratory Supercomputing Center (LLSC), and also a Founder of the MIT-Air Force AI Accelerator. Lincoln Laboratory is a 4000-person National Laboratory whose mission is to create defensive technologies to protect our Nation and the freedoms enshrined in the Constitution of the United States. Dr. Kepner is one of five Lincoln Laboratory Fellows, a position that "recognizes the Laboratory's strongest technical talent for outstanding contributions to Laboratory programs over many years." Dr. Kepner is recognized as one of nine MIT Fellows of the Society of Industrial Applied Mathematics (SIAM), for "contributions to interactive parallel computing, matrix-based graph algorithms, green supercomputing, and big data." 

Jeremy's book list on the foundations of computing technology

Jeremy Kepner Why did Jeremy love this book?

Unix/Linux has emerged as the most common operating system in the world. Found on almost every server, smartphone, and network-enabled device, Unix plays a critical role in all aspects of computing. Unix for the Beginning Mage is a fun introduction to Unix for the novice who may be intimidated by other texts.

By Joe Topjian,

Why should I read it?

1 author picked Unix for the Beginning Mage as one of their favorite books, and they share why you should read it.


Book cover of grep Pocket Reference

Ian Miell Author Of Learn Bash the Hard Way: Master Bash Using The Only Method That Works

From my list on becoming a Linux command line ninja.

Why am I passionate about this?

Like most geeks, I've always loved efficiency and productivity. Coming from a Windows-dominated world, the command line I was faced with in my CompSci degree was Initially mystifying, but over time I have come to see it as the most powerful human-computer interface out there. After spending years wresting with the command line at work, I decided to write a book on bash, and have blogged extensively on this and related topics. I also run live courses on bash and the command line for O'Reilly. There's nothing I enjoy more than opening people's eyes to the power of the shell!   

Ian's book list on becoming a Linux command line ninja

Ian Miell Why did Ian love this book?

grep is probably the most-used command line tool.

For a few years, I had a copy of this book on my desk, and would flick through it in spare moments, gradually absorbing all the minutiae of grep's options in the hope they would be useful to me one day.

You can get some idea of the book's utility from the fact that I had to regularly buy a new copy because someone would 'borrow' it and not give it back.

By John Bambenek, Agnieszka Klus,

Why should I read it?

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

What is this book about?

"Grep Pocket Reference" is the first guide devoted to grep, the powerful utility program that helps you locate content in any file on a Unix or Linux system. Several applications use grep, from mail filtering and system log management to malware analysis and application development, and there are many other ways to use the utility. This pocket reference is ideal for system administrators, security professionals, developers, and others who want to learn more about grep and take new approaches with it.With "Grep Pocket Reference", you will: learn methods for filtering large files for specific content; acquire information not included in…


Book cover of Practical Vim

Ian Miell Author Of Learn Bash the Hard Way: Master Bash Using The Only Method That Works

From my list on becoming a Linux command line ninja.

Why am I passionate about this?

Like most geeks, I've always loved efficiency and productivity. Coming from a Windows-dominated world, the command line I was faced with in my CompSci degree was Initially mystifying, but over time I have come to see it as the most powerful human-computer interface out there. After spending years wresting with the command line at work, I decided to write a book on bash, and have blogged extensively on this and related topics. I also run live courses on bash and the command line for O'Reilly. There's nothing I enjoy more than opening people's eyes to the power of the shell!   

Ian's book list on becoming a Linux command line ninja

Ian Miell Why did Ian love this book?

In 2001, when I was young and everything was possible I asked my CTO what Interactive Development Environment (IDE) I should use.

'vim' was the response, so I went away and learned it. To this day, I use vim by default for almost all my programming needs. The learning curve is very steep, but the rewards are great, not least because it's hard to find a platform that cannot run it.

This book reinforces the learning you can do elsewhere through walkthroughs and tips and lets you know what's possible, so that when you really need to do things like search and replace, or run a macro, you can look it up again and get it under your fingers.

By Drew Neil,

Why should I read it?

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

What is this book about?

Vim is a fast and efficient text editor that will make you a faster and more efficient developer. It's available on almost every OS, and if you master the techniques in this book, you'll never need another text editor. In more than 120 Vim tips, you'll quickly learn the editor's core functionality and tackle your trickiest editing and writing tasks. This beloved bestseller has been revised and updated to Vim 7.4 and includes two brand-new tips and five fully revised tips.A highly configurable, cross-platform text editor, Vim is a serious tool for programmers, web developers, and sysadmins who want to…


5 book lists we think you will like!

Interested in computer science, python, and algorithms?

10,000+ authors have recommended their favorite books and what they love about them. Browse their picks for the best books about computer science, python, and algorithms.

Computer Science Explore 31 books about computer science
Python Explore 28 books about python
Algorithms Explore 36 books about algorithms