“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:
- The Pragmatic Programmer: your journey to mastery, 20th Anniversary Edition by David Thomas and Andrew Hunt. “Topics range from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse.”
- Pragmatic Thinking & Learning: Refactor Your Wetware by Andrew Hunt. “Learn new tricks and tips to learn more, faster, and retain more of what you learn.”
- Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations by Nicole Forsgren PhD, Jez Humble, Gene Kim. “Readers will discover how to measure the performance of their teams, and what capabilities they should invest in to drive higher performance. This book is ideal for management at every level.”
- Extreme Ownership by Jocko Willink, Leif Babin.“Two U.S. Navy SEAL officers who led the most highly decorated special operations unit of the Iraq War demonstrate how to apply powerful leadership principles from the battlefield to business and life.”
- The Fearless Organization: Creating Psychological Safety in the Workplace for Learning, Innovation, and Growth by Amy C. Edmondson. “Explore the link between psychological safety and high performance; Create a culture where it’s “safe” to express ideas, ask questions, and admit mistakes; Nurture the level of engagement and candor required in today’s knowledge economy; Follow a step-by-step framework for establishing psychological safety in your team or organization.”
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.
- 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.
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:
- The Complete Software Developer’s Career Guide by John Sonmez. “Technical Knowledge Alone Isn’t Enough - Increase Your Income by Leveling Up Your Soft Skills.”
- Soft Skills: The Software Developer’s Life Manual by John Sonmez. “[This book offers] techniques and practices for a more satisfying life as a professional software developer.”
- Code: The Hidden Language of Computer Hardware and Software by Charles Petzold. “It’s a cleverly illustrated and eminently comprehensible story—and along the way, you’ll discover you’ve gained a real context for understanding today’s world of PCs, digital media, and the Internet. No matter what your level of technical savvy, CODE will charm you—and perhaps even awaken the technophile within.”
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.