Best Programming Books: 31 Picks Recommended by CEOs

Structure and Interpretation of Computer Programs by Harold Abelson and Gerald Jay Sussman leads the list, the MIT textbook that teaches recursion, abstraction and how interpreters are built using Scheme. Build a Large Language Model (From Scratch) by Sebastian Raschka has readers code a language model in Python without ready-made libraries, and Refactoring by Martin Fowler shows how to improve the design of existing code in small, safe steps.

The list is for founders, developers and technical leads who want to write better software or understand the people who do. The core books cover the craft itself: language guides for Scala, Haskell, Ruby, JavaScript, Smalltalk and Common Lisp, Unix tools, PHP and MySQL web development, and practice books by Steve McConnell, Martin Fowler, Jon Bentley and Kent Beck, plus Peter Seibel’s interviews with famous programmers.

The related tier holds books where programming is part of a larger subject: hiring and managing developers, Scrum and agile process, software security and cryptography, Frederick P. Brooks Jr. on software projects, Paul Graham’s essays, and histories of id Software, Windows NT and the digital revolution.

We ranked these 31 books by how many of the 1,088 founders, CEOs and leaders on The CEO Library recommend them: first the 15 books mainly about programming, then 16 related books under Also worth reading.

Structure and Interpretation of Computer Programs - cover

1. Structure and Interpretation of Computer Programs

by Harold Abelson, Gerald Jay Sussman

Recommended by 2 leaders: Patrick Collison and Santiago Basulto

Harold Abelson and Gerald Jay Sussman use Scheme to teach recursion, abstraction, modularity and how interpreters and compilers are built, the material of MIT’s introductory course. Patrick Collison lists it, and Santiago Basulto names it as the place to start on fundamentals.

See all 2 recommendations and sources

Build a Large Language Model (From Scratch) - cover

2. Build a Large Language Model (From Scratch)

by Sebastian Raschka

Recommended by 1 leader: Lex Fridman

Sebastian Raschka has readers write a large language model in Python without existing LLM libraries, then turn it into a text classifier and an instruction-following chatbot. Lex Fridman recommends it to beginners and experts alike.

See all 1 recommendation and sources

Refactoring: Improving the Design of Existing Code (2nd Edition) - cover

3. Refactoring: Improving the Design of Existing Code (2nd Edition)

by Martin Fowler

Recommended by 1 leader: David Heinemeier Hansson

Martin Fowler explains how to spot code that needs reworking through bad smells and gives a catalog of refactorings, now with JavaScript examples. David Heinemeier Hansson says he has returned to it again and again, one of just two programming books he rereads.

See all 1 recommendation and sources

Smalltalk Best Practice Patterns - cover

4. Smalltalk Best Practice Patterns

by Kent Beck

Recommended by 1 leader: David Heinemeier Hansson

Kent Beck turns the habits seasoned Smalltalk developers pick up by trial and error into named patterns covering methods, messages, state, collections and classes, plus code formatting. David Heinemeier Hansson calls it his favorite book about programming and still relevant decades later.

See all 1 recommendation and sources

5. Paradigms of Artificial Intelligence Programming

by Peter Norvig

Recommended by 1 leader: Patrick Collison

Peter Norvig teaches advanced Common Lisp by reconstructing real artificial intelligence programs, showing how to build and debug large, robust software with attention to performance and efficiency. Patrick Collison recommends it on his bookshelf.

See all 1 recommendation and sources

The Unix Programming Environment - cover

6. The Unix Programming Environment

by Brian W. Kernighan, Rob Pike

Recommended by 1 leader: Tim O'Reilly

Brian W. Kernighan and Rob Pike explain the Unix idea of small programs that combine, then cover the shell, grep, sed, AWK, make and writing C programs. Tim O’Reilly prizes its account of the tools philosophy and the clarity of its prose.

See all 1 recommendation and sources

Code Complete: A Practical Handbook of Software Construction - cover

7. Code Complete: A Practical Handbook of Software Construction

by Steve McConnell

Recommended by 1 leader: Santiago Basulto

Steve McConnell treats coding, debugging, detailed design and unit testing as the heart of development, with advice that runs from naming variables to deciding when a routine is worth writing. Santiago Basulto pairs it with SICP as a starting point on fundamentals.

See all 1 recommendation and sources

Code Craft: The Practice of Writing Excellent Code - cover

8. Code Craft: The Practice of Writing Excellent Code

by Pete Goodliffe

Recommended by 1 leader: Lewis Smith

Pete Goodliffe’s guide, as its subtitle says, is about the practice of writing excellent code. Lewis Smith, the developer behind BodyTracker, calls it the quickest way for a junior developer to grow into a senior one.

See all 1 recommendation and sources

Coders at Work: Reflections on the Craft of Programming - cover

9. Coders at Work: Reflections on the Craft of Programming

by Peter Seibel

Recommended by 1 leader: Santiago Basulto

Peter Seibel asks fifteen programmers, among them Ken Thompson, Donald Knuth and Brendan Eich, how they learned to code, how they debug, which languages they like and how they spot talent. Santiago Basulto calls it full of inspiring stories.

See all 1 recommendation and sources

JavaScript: The Good Parts - cover

10. JavaScript: The Good Parts

by Douglas Crockford

Recommended by 1 leader: Auston Bunsen

Douglas Crockford, who specified JSON, cuts JavaScript down to its dependable core, praising functions, dynamic objects and object literals while warning against global variables. Auston Bunsen, a self-taught programmer, counts it among books that gave him practical skills.

See all 1 recommendation and sources

Learn Ruby the Hard Way: A Simple and Idiomatic Introduction to the Imaginative World Of Computational Thinking with Code - cover

11. Learn Ruby the Hard Way: A Simple and Idiomatic Introduction to the Imaginative World Of Computational Thinking with Code

by Zed A. Shaw

Recommended by 1 leader: Auston Bunsen

Zed A. Shaw teaches Ruby through 52 exercises in which readers type every program by hand, fix their own errors and learn debugging, testing and object-oriented design along the way. Auston Bunsen lists it among the practical books that helped him.

See all 1 recommendation and sources

Learn You a Haskell for Great Good! - cover

12. Learn You a Haskell for Great Good!

by Miran Lipovača

Recommended by 1 leader: Santiago Basulto

Miran Lipovača uses his own drawings and playful examples to lead readers from Haskell syntax, recursion and type classes up to monads, lazy evaluation and zippers. Santiago Basulto enjoys it for the concepts behind a language he does not use daily.

See all 1 recommendation and sources

PHP and MySQL Web Development - cover

13. PHP and MySQL Web Development

by Luke Welling, Laura Thomson

Recommended by 1 leader: Scott Johnson

Luke Welling and Laura Thomson teach PHP and MySQL together, then build working projects such as a shopping cart, web mail and user authentication. Scott Johnson credits it with teaching him database-backed web development when a software engineering job landed on him.

See all 1 recommendation and sources

Programming in Scala - cover

14. Programming in Scala

by Martin Odersky, Lex Spoon, Bill Venners

Recommended by 1 leader: Santiago Basulto

Martin Odersky, who designed Scala, teaches the language step by step with two coauthors, moving from its basic elements to functional programming on the Java Virtual Machine. Santiago Basulto values it for the ideas behind the language, even without daily Scala work.

See all 1 recommendation and sources

Programming Pearls - cover

15. Programming Pearls

by Jon Bentley

Recommended by 1 leader: James Stanley

Jon Bentley builds each essay around a small, nagging problem that working programmers hit, then walks through clever solutions and the design principles behind them. James Stanley liked how it trims machine resources and found many sudden moments of insight in it.

See all 1 recommendation and sources

Also worth reading

Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture - cover

16. Masters of Doom: How Two Guys Created an Empire and Transformed Pop Culture

by David Kushner

Recommended by 4 leaders, including Elon Musk, Mikhail Dubov and Chris Oliver

Mainly a company history, David Kushner’s account of id Software follows John Carmack, the programmer whose engines powered Doom and Quake, and John Romero. Chris Oliver calls it inspiring for any software developer who started out wanting to make games.

See all 4 recommendations and sources

Getting Real - cover

17. Getting Real

by Jason Fried, David Heinemeier Hansson, Matthew Linderman

Recommended by 4 leaders, including Joan Boixados, Vincenzo Ruggiero and Anoop Anthony

The founders of 37signals set out how their company builds web software simply, the process behind Basecamp and Ruby on Rails, though it is not a technical manual. Joan Boixados, a developer and bootstrapper himself, recommends it.

See all 4 recommendations and sources

Smart and Gets Things Done: Joel Spolsky's Concise Guide to Finding the Best Technical Talent - cover

18. Smart and Gets Things Done: Joel Spolsky’s Concise Guide to Finding the Best Technical Talent

by Avram Joel Spolsky

Recommended by 4 leaders, including Adam Tornhill, Ivan Bjelajac and Mark Foster

Mainly about hiring, Joel Spolsky’s short guide argues that one strong programmer can outproduce many ordinary ones and sets out his methods for screening resumes and interviewing developers. Adam Tornhill praises its honest, plainspoken advice and its humor.

See all 4 recommendations and sources

The Innovators – How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution - cover

19. The Innovators – How a Group of Hackers, Geniuses, and Geeks Created the Digital Revolution

by Walter Isaacson

Recommended by 4 leaders, including Santiago Basulto, Chris Oliver and Brian Burkhart

Walter Isaacson’s history of the digital revolution begins with Ada Lovelace, an early pioneer of programming, and runs through Turing, Gates and Berners-Lee. Santiago Basulto says it showed him how hackers and revolutionaries shaped the tech world.

See all 4 recommendations and sources

Hackers & Painters: Big Ideas from the Computer Age - cover

20. Hackers & Painters: Big Ideas from the Computer Age

by Paul Graham

Recommended by 5 leaders, including Evan Williams, Chris Anderson and Yukihiro Matsumoto

Paul Graham’s essays range over startups, wealth and why nerds are unpopular, but several deal directly with programming, including pieces on beauty in software design, open source and the future of programming languages.

See all 5 recommendations and sources

Mastering Bitcoin: Programming the Open Blockchain - cover

21. Mastering Bitcoin: Programming the Open Blockchain

by Andreas M. Antonopoulos

Recommended by 2 leaders: Auston Bunsen and Hong Qi Yu

Andreas M. Antonopoulos explains bitcoin for developers through code snippets on keys, addresses, wallets and transactions, alongside a broader introduction. Auston Bunsen found its explanation of wallet addresses directly useful for his company’s work on wallet generation.

See all 2 recommendations and sources

Coders: The Making of a New Tribe and the Remaking of the World - cover

22. Coders: The Making of a New Tribe and the Remaking of the World

by Clive Thompson

Recommended by 3 leaders: Tim Ferriss, Kevin Kelly and Saron Yitbarek

Clive Thompson profiles programmers as a tribe, from celebrated elites to beginners, and describes a vocation built on logic, puzzle solving and a high tolerance for frustration. Kevin Kelly says it explains the culture of code to people who work with programmers.

See all 3 recommendations and sources

The Mythical Man-Month: Essays on Software Engineering - cover

23. The Mythical Man-Month: Essays on Software Engineering

by Frederick P. Brooks Jr.

Recommended by 1 leader: Jeff Bezos

Mainly about managing software projects, Frederick P. Brooks Jr.’s essays from IBM’s OS/360 effort explain why adding programmers to a late project delays it further and argue for prototyping and conceptual integrity. Jeff Bezos has recommended it.

See all 1 recommendation and sources

Mindstorms - cover

24. Mindstorms

by Seymour Papert

Recommended by 1 leader: Patrick Collison

Seymour Papert argues that children can master computers through the LOGO language and Turtle graphics, and that learning to program and debug can reshape how they learn every subject. Patrick Collison lists it on his bookshelf.

See all 1 recommendation and sources

Agile Application Security: Enabling Security in a Continuous Delivery Pipeline - cover

25. Agile Application Security: Enabling Security in a Continuous Delivery Pipeline

by Laura Bell, Michael Brunton-Spall, Rich Smith, Jim Bird

Recommended by 1 leader: Louis Nyffenegger

Four security and agile practitioners show how to build security into each stage of an agile development lifecycle, down to the code itself, with security testing built into each release. Louis Nyffenegger recommends it.

See all 1 recommendation and sources

Applied Cryptography: Protocols, Algorithms and Source Code in C - cover

26. Applied Cryptography: Protocols, Algorithms and Source Code in C

by Bruce Schneier

Recommended by 1 leader: Dominic Steil

Mainly a cryptography reference, Bruce Schneier’s book walks programmers through protocols and algorithms such as RSA and DES, then supplies C source code and practical advice on random numbers and key security. Dominic Steil recommends it.

See all 1 recommendation and sources

Managing Humans: Biting and Humorous Tales of a Software Engineering Manager - cover

27. Managing Humans: Biting and Humorous Tales of a Software Engineering Manager

by Michael Lopp

Recommended by 1 leader: Dave Child

Mainly about management, Michael Lopp’s stories from Apple, Netscape and Borland cover hiring, one-on-ones and difficult projects among software engineers. Dave Child finds it full of useful advice for developers making the move into management.

See all 1 recommendation and sources

OAuth 2 in Action - cover

28. OAuth 2 in Action

by Justin Richer, Antonio Sanso

Recommended by 1 leader: Louis Nyffenegger

Justin Richer and Antonio Sanso explain the OAuth 2 protocol by having readers build a simple client, authorization server and protected resource, covering tokens, OpenID Connect and common vulnerabilities, for readers with basic programming skill. Louis Nyffenegger recommends it.

See all 1 recommendation and sources

Scrum and XP from the Trenches - cover

29. Scrum and XP from the Trenches

by Henrik Kniberg

Recommended by 1 leader: Mircea Scarlatescu

Henrik Kniberg describes how a Swedish company of about 40 people combined Scrum with XP habits like pair programming, test-driven development and continuous builds, with tips on backlogs, sprints and testing. Mircea Scarlatescu recommends it.

See all 1 recommendation and sources

Showstopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft - cover

30. Showstopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft

by G. Pascal Zachary

Recommended by 1 leader: Scott Johnson

G. Pascal Zachary follows David Cutler’s team of software engineers as they push hundreds of thousands of lines of code and many bugs toward a new operating system. Scott Johnson recommends it as a case study in building a product.

See all 1 recommendation and sources

Succeeding with Agile: Software Development Using Scrum - cover

31. Succeeding with Agile: Software Development Using Scrum

by Mike Cohn

Recommended by 1 leader: Nicolae Andronic

Mike Cohn’s guide is mainly about running Scrum in software teams, from structuring and scaling teams to metrics and distributed work. Nicolae Andronic, a former developer, values it for bringing order to the work of building a product.

See all 1 recommendation and sources