My favorite books that teach and inspire the best programmers

Why am I passionate about this?

I started programming in high school and wrote software in many domains for 30 years, from the early ARPA-net to massive credit card software. I wrote a FORTRAN compiler with one assistant in a year. I got hassled to do proper project management. Nightmare. It was all about inflated expectations instead of moving fast and winning. Then in 25 years of venture capital investing, I learned from many young companies how the little startups built quickly and well things that giants like Google literally could not get done. This book and my others spell out what I learned from the little guys who beat the giants.


I wrote...

Wartime Software

By David B. Black,

Book cover of Wartime Software

What is my book about?

If your goal is to learn the standard techniques of software, don't waste your time with my books. If you don’t have the time or money to beat the industry giants with 100X your resources, this book has my observations about how many small groups over decades have used methods that aren’t taught to compete and win. 

Peacetime software is all about requirements, estimates, and meeting the expectations that have been set. If you say it will take 100 programmers two years to do it and you sort of get it done in 23 months, you’re a hero. But if you’re in the Olympics, all that matters is running faster than everyone else. The MBA’s and experienced managers will say you’re breaking the rules. Wrong. You’re just following better ones.

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

The books I picked & why

Book cover of C Programming Language

David B. Black Why did I love this book?

This is the defining book on the C language, written by the authors of the language and published in 1978.

By the early 1980’s it became the standard for writing systems software, helped by the fact that the UNIX operating system was written in it. UNIX grew to become the world’s dominant operating system, running over 90% of the world’s web servers. 

By the time I encountered the language I already had programmed extensively in assembler, COBOL, FORTRAN, and other languages. I had written a commercial FORTRAN compiler. The language changed my world, and this book was unique then and now for being written by the creators of the language that changed the world of programming forever.

Nothing about all the languages since C makes things better – yes, including C++. All they do is add complexity and put unnecessary constraints on language, along with continuing the focus on language when your goal as a programmer should be to write as little code as possible, putting everything you can into easily editable metadata.

By Brian Kernighan, Dennis Ritchie,

Why should I read it?

3 authors picked C Programming Language as one of their favorite books, and they share why you should read it.

What is this book about?

This edition describes C as defined by the ANSI standard. This book is meant to help the reader learn how to program in C. The book assumes some familiarity with basic programming concepts like variables, assignment statements, loops, and functions. A novice programmer should be able to read along and pick up the language.


Book cover of The Art of Computer Programming, Volume 4, Fascicle 1, The: Bitwise Tricks & Techniques; Binary Decision Diagrams

David B. Black Why did I love this book?

This is the definitive book series on algorithms and the core of computer programming.

Unlike most such books, Knuth is a real programmer, deep into the details of the craft, to the point of creating his own assembler language and typesetting generation system. It’s partly the substance of the algorithms and their analysis, but even more is the way he models a way of thinking about and solving complexity that makes this a must-read series.

By Donald Knuth,

Why should I read it?

1 author picked The Art of Computer Programming, Volume 4, Fascicle 1, The as one of their favorite books, and they share why you should read it.

What is this book about?

Finally, after a wait of more than thirty-five years, the first part of Volume 4 is at last ready for publication. Check out the boxed set that brings together Volumes 1 - 4A in one elegant case, and offers the purchaser a $50 discount off the price of buying the four volumes individually.



The Art of Computer Programming, Volumes 1-4A Boxed Set, 3/e

ISBN: 0321751043









Art of Computer Programming, Volume 4, Fascicle 1, The: Bitwise Tricks & Techniques; Binary Decision Diagrams: Bitwise Tricks & Techniques; Binary Decision Diagrams



This multivolume work on the analysis of algorithms has long been recognized…


Book cover of Principles of Compiler Design

David B. Black Why did I love this book?

Attending Harvard College gave me the opportunity to collaborate with great programmers in creating the early ARPA-net. But the best course I took was on compiler theory and construction, using an early draft of the material in this book.

Of course I learned how to build a compiler, which I did as my first job after graduating. But more important, I learned that a well-built compiler is a small amount of language-independent code with two major parts.

First the input part that realizes the content of the lexical and grammatical metadata, like today’s LEX and YACC, to turn the program being compiled into a semantic model.

Second the code generator that reads the semantic model and, based on generative model metadata, turns the semantics of the program being compiled to whatever form you want, whether executable code, assembler language, byte code or whatever.

This approach, while indispensable for compilers and interpreters, is also the model for taking a meta-data-driven approach to building software applications of any kind.

By Alfred V. Aho, Jeffrey D. Ullman,

Why should I read it?

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

What is this book about?

Computer science


Book cover of Gödel's Proof

David B. Black Why did I love this book?

Nagel’s book is the most understandable explanation I’ve found about one of the most cosmically seminal math proofs: Godel’s incompleteness theorem.

It takes the idea of recursion and self-reference to the ultimate conclusion about truth, understanding, and boundaries of existence. This may sound hootie-tootie, but think of the sequence of abstraction in math: arithmetic, algebra, calculus, etc.

Once you add in recursion (self-reference), you’ve got the most important concepts underlying true understanding and productivity in software – something never discussed in computer science, and certainly not in practical programming.

Think about the so-called Von Neumann computer architecture, which underlies all modern computers – instructions are data, stored in the same place as ordinary data, and some instructions write data that are instructions. This is recursion taken to the next level. 

By Ernest Nagel,

Why should I read it?

2 authors picked Gödel's Proof as one of their favorite books, and they share why you should read it.

What is this book about?

An accessible explanation of Kurt Goedel's groundbreaking work in mathematical logic
In 1931 Kurt Goedel published his fundamental paper, "On Formally Undecidable Propositions of Principia Mathematica and Related Systems." This revolutionary paper challenged certain basic assumptions underlying much research in mathematics and logic. Goedel received public recognition of his work in 1951 when he was awarded the first Albert Einstein Award for achievement in the natural sciences-perhaps the highest award of its kind in the United States. The award committee described his work in mathematical logic as "one of the greatest contributions to the sciences in recent times."
However, few…


Book cover of Gödel, Escher, Bach: An Eternal Golden Braid

David B. Black Why did I love this book?

This book explains fundamental concepts of recursion, symmetry, intelligence, focusing on math, art, and music.

It’s full of wonderful tales, amazing facts, little-talked-about relationships among math, art, and music (and by reference computing), not to mention puns and amusing language. If you want to become a better person, this is a good book to read. If you want to understand and succeed in life, ditto.

If you let this book lift your mind to its space and height, you will find yourself vastly more capable of creating and understanding software. It’s a wonderful companion to the Ernest Nagel book I’ve recommended.

By Douglas R. Hofstadter,

Why should I read it?

13 authors picked Gödel, Escher, Bach as one of their favorite books, and they share why you should read it.

What is this book about?

Douglas Hofstadter's book is concerned directly with the nature of maps" or links between formal systems. However, according to Hofstadter, the formal system that underlies all mental activity transcends the system that supports it. If life can grow out of the formal chemical substrate of the cell, if consciousness can emerge out of a formal system of firing neurons, then so too will computers attain human intelligence. Goedel, Escher, Bach is a wonderful exploration of fascinating ideas at the heart of cognitive science: meaning, reduction, recursion, and much more.


You might also like...

Book cover of Adventures in the Radio Trade: A Memoir

Joe Mahoney Author Of Adventures in the Radio Trade: A Memoir

New book alert!

Why am I passionate about this?

Author Broadcaster Family man Dog person Aspiring martial artist

Joe's 3 favorite reads in 2023

What is my book about?

Adventures in the Radio Trade documents a life in radio, largely at Canada's public broadcaster. It's for people who love CBC Radio, those interested in the history of Canadian Broadcasting, and those who want to hear about close encounters with numerous luminaries such as Margaret Atwood, J. Michael Straczynski, Stuart McLean, Joni Mitchell, Peter Gzowski, and more. And it's for people who want to know how to make radio.

Crafted with gentle humour and thoughtfulness, this is more than just a glimpse into the internal workings of CBC Radio. It's also a prose ode to the people and shows that make CBC Radio great.

By Joe Mahoney,

Why should I read it?

1 author picked Adventures in the Radio Trade as one of their favorite books, and they share why you should read it.

What is this book about?

"In dozens of amiable, frequently humorous vignettes... Mahoney fondly recalls his career as a Canadian Broadcasting Corporation radio technician in this memoir... amusing and highly informative."
— Kirkus Reviews

"What a wonderful book! If you love CBC Radio, you'll love Adventures in the Radio Trade. Joe Mahoney's honest, wise, and funny stories from his three decades in broadcasting make for absolutely delightful reading!
— Robert J. Sawyer, author of The Oppenheimer Alternative''

"No other book makes me love the CBC more."
— Gary Dunford, Page Six
***
Adventures in the Radio Trade documents a life in radio, largely at Canada's…


5 book lists we think you will like!

Interested in artificial intelligence, computer programming, and presidential biography?

10,000+ authors have recommended their favorite books and what they love about them. Browse their picks for the best books about artificial intelligence, computer programming, and presidential biography.

Artificial Intelligence Explore 284 books about artificial intelligence
Computer Programming Explore 39 books about computer programming
Presidential Biography Explore 18 books about presidential biography