~ Dmitry Shvetsov
Navigate back to the homepage

Essential Books That Every Programmer Should Read—Lists by Andy Hunt, Eric Freeman, and Cory Althoff

Dmitry Shvetsov
June 10th, 2020 · 5 min read

Photo by Brooke Cagle on Unsplash

“Good books are worth re-reading. Great books are worth re-buying.”

― Naval Ravikant, investor, co-founder, chairman and former CEO of AngelList

I’ve been asking experienced programmers, technical authors, computer science professors, and lecturers to recommend essential books for programmers. This is part 2 of the series, with book recommendations from Andy Hunt, Eric Freeman, and Cory Althof.

For book recommendations from Kent Beck, Uncle Bob Martin, David Heinemeier Hanson, Jeff Atwood, and Bozhidar Batsov, read the first part of the series.


I reached out to Andy Hunt to share his list of essential books for programmers. He recommended books more angled toward programming leadership:

Andy Hunt is a programmer, consultant, and author of ten books, including one of the most recommended books for programmers, The Pragmatic Programmer. He was one of the 17 original authors of the Agile Manifesto and founders of the Agile Alliance. He is also the publisher and co-founder of the Pragmatic Bookshelf series for software developers.


Eric Freeman shared his view on essential books for programmers in this tweet:

  • The Little Schemer by Daniel P. Friedman, Matthias Felleisen, Duane Bibby, Gerald J. Sussman. “The Little Schemer introduces computing as an extension of arithmetic and algebra; things that everyone studies in grade school and high school. It introduces programs as recursive functions and briefly discusses the limits of what computers can do. The authors use the programming language Scheme, and interesting foods to illustrate these abstract ideas.”
  • The Structure & Interpretation of Computer Programs by Harold Abelson, Gerald Jay Sussman. [This book] has had a dramatic impact on computer science curricula over the past decade”. This book is based on the course that the authors have taught at the Massachusetts Institute of Technology (MIT).
  • How to Design Programs by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi. “Unlike other introductory books, it focuses on the program design process, presenting program design guidelines that show the reader how to analyze a problem statement, how to formulate concise goals, how to make up examples, how to develop an outline of the solution, how to finish the program, and how to test it.”
  • The C Programming Language by Brian W. Kernighan, Dennis M. Ritchie. “The authors present the complete guide to ANSI standard C language programming. Written by the developers of C.”

Eric Freeman is a computer science Phd, author of the Head First book series, former CTO of Disney Online,  educator, and entrepreneur.


Cory Althoff shared in this tweet an extensive list of the best books for programmers. You can read the original list in this article from his blog.

Best Programming Books to Learn Coding with Python:

  • The Self-Taught Programmer by Cory Althoff. [This book] is a roadmap, a guide to take you from writing your first Python program to passing your first technical interview.”
  • Python Crash Course by Eric Matthes. “The Python Crash Course is the world’s best-selling guide to the Python programming language. This fast-paced, thorough introduction to programming with Python will have you writing programs, solving problems, and making things that work in no time.”
  • Learning Python by Mark Lutz. “Get a comprehensive, in-depth introduction to the core Python language with this hands-on book. Based on author Mark Lutz’s popular training course, this updated fifth edition will help you quickly write efficient, high-quality code with Python.
  • Learn Python the Hard Way (and Python 3 edition) by Zed A. Shaw. “You’ll learn Python by working through 52 brilliantly crafted exercises. … You’ll learn how software works; what good programs look like; how to read, write, and think about code; and how to find and fix your mistakes using tricks professional programmers use.”
  • Python Cookbook by David Beazley, Brian K. Jones. “If you need help writing programs in Python 3, or want to update older Python 2 code, this book is just the ticket. Packed with practical recipes written and tested with Python 3.3, this unique cookbook is for experienced Python programmers who want to focus on modern tools and idioms.”

The Best Programming Books To Advance Your Skills:

  • Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin. [The authors] distill their best agile practice of cleaning code ‘on the fly’ into a book that will instill within you the values of a software craftsman and make you a better programmer.”
  • Programming Pearls by Jon Bentley. “With origins beyond solid engineering, in the realm of insight and creativity, Bentley’s pearls offer unique and clever solutions to those nagging problems. Illustrated by programs designed as much for fun as for instruction, the book is filled with lucid and witty descriptions of practical programming techniques and fundamental design principles.”
  • Cracking the Coding Interview by Gayle Laakmann McDowell. “Learn how to uncover the hints and hidden details in a question, discover how to break down a problem into manageable chunks, develop techniques to unstick yourself when stuck, learn (or re-learn) core computer science concepts, and practice on 189 interview questions and solutions.”
  • Code Complete: A Practical Handbook of Software Construction by Steve McConnell. “Discover the timeless techniques and strategies that help you: Design for minimum complexity and maximum creativity; Reap the benefits of collaborative development; Apply defensive programming techniques to reduce and flush out errors; Exploit opportunities to refactor—or evolve—code, and do it safely; Use construction practices that are right-weight for your project; Debug problems quickly and effectively; Resolve critical construction issues early and correctly; Build quality into the beginning, middle, and end of your project.”
  • The Pragmatic Programmer: your journey to mastery, 20th Anniversary Edition (see description in the Andy Hunt recommendations)

The Best Programming Books for Your Career:

Cory Althoff is the author of The Self-Taught Programmer, a book that has sold over 100,000 copies and is available in eight languages. He is also the founder of Coding List.


I also want to recommend a great book I read recently called Essentialism by Greg McKeown. It’s about how to achieve more meaningful results by doing less and concentrating on the truly vital parts of our lives.

Call to Action

Respond to the tweet below. Which programmer would you ask for advice on which books you should read?


Follow me on Twitter. I tweet daily on how to write clean code, grow soft skills, and be a successful developer.


If you like this write-up, share it with friends and colleagues so more programmers can benefit from these recommendations. Another way to spread the word is to retweet the tweet below.


All book links above lead to an Amazon store closest to your country. As an Amazon Associate, I earn from qualifying purchases.

More articles from Dmitry Shvetsov

22 Things You Should Give Up If You Want To Be A Successful Developer

When you become good at something, you can hit a wall in your development. No matter how hard you try, you feel like you can't break through…

June 8th, 2020 · 11 min read

How to Get an Awesome Software Developer Job If Everyone Continues to Reject You

It is extremely hard to seek a job for months and get rejection after rejection in all kinds of forms. It is also hard to maintain self…

May 26th, 2020 · 12 min read
© 2017–2020 Dmitry Shvetsov
Link to $https://twitter.com/iamdidev