Search for books, people and lists
Read This Twice
HomePeopleBooksSonaLibrariesSign in

Best Programming Books

Enhance your coding skills with this selection of the best programming books, acclaimed by industry experts and tech publications, and ranked by the number of endorsements they received.

Recommendations from 81 articles, Tim Ferriss, Jeff Bezos, Kara Swisher and 56 others.
Best Programming Books
100 books on the list
Sort by
Number of Articles
The Pragmatic Programmer book cover
The Pragmatic Programmer
Your Journey To Mastery, 20th Anniversary Edition (2nd Edition)
David Thomas - 1999-10-20
Goodreads Rating
"Transform requirements into working, maintainable code that delights users with guidance from The Pragmatic Programmer. Updated with ten new sections and major revisions, this book covers topics from career development to architectural techniques for keeping software code flexible and reusable. Organized with self-contained sections and illustrated with compelling anecdotes and examples, this guide highlights the best practices and major pitfalls of software development. Whether you're new to coding or an experienced programmer, The Pragmatic Programmer's lessons will help you improve productivity, quality, and job satisfaction."
Clean Code book cover
Clean Code
A Handbook of Agile Software Craftsmanship
Robert C. Martin - 2008-08-01 (first published in 2007)
Goodreads Rating
Are you tired of poorly written code? Look no further than Clean Code: A Handbook of Agile Software Craftsmanship. Noted software expert Robert C. Martin offers a revolutionary paradigm to distill the best agile practices of cleaning code on the fly. Dive into case studies and heuristics to learn how to tell good code from bad, write good code, create good names, implement complete error handling, and more. This book is a must-read for any developer, software engineer, or project manager looking to produce better code.
Recommended by
Wes McKinney
Code Complete book cover
Code Complete
A Practical Handbook of Software Construction, Second Edition
Steve McConnell - 2004-07-07 (first published in 1993)
Goodreads Rating
This practical guide to programming is considered one of the best out there. The updated and revised edition includes hundreds of new code samples that demonstrate the art and science of software construction. Whether you're a novice or experienced developer, you'll discover effective techniques and principles that will inform and stimulate your thinking, helping you to build high-quality code. Learn how to design for simplicity and creativity, collaborate with others, refactor code safely, debug problems quickly, and build a quality project from start to finish.
Code book cover
The Hidden Language of Computer Hardware and Software
Charles Petzold - 2000-10-11 (first published in 1999)
Goodreads Rating
"Unlock the Secret Inner Life of Computers with this Ingenious Book on Language and Communication! From flashlights to the British invasion, CODE explores the ways humans manipulate language to communicate and drive technological innovation. Author Charles Petzold uses easily digestible language, everyday objects, and familiar systems like Braille and Morse code to create a compelling narrative that will enlighten even the least tech-savvy reader. You'll gain a deeper context for understanding PCs, digital media, and the Internet. Whether you're a curious beginner or dedicated technophile, CODE will delight and captivate."
Recommended by
Scott Hanselman
Refactoring book cover
Improving the Design of Existing Code (2nd Edition)
Martin Fowler - 1999-01-01
Goodreads Rating
This programming book by Martin Fowler teaches experienced programmers how to improve the design of existing code for better software maintainability. The second edition has been updated with new refactorings and code examples, including JavaScript code and functional examples without classes. Learn what refactoring is, why you should do it, and how to recognize opportunities for it. Build solid tests for your refactorings and recognize the obstacles and tradeoffs involved in the process. Includes free access to the web edition with additional resources.
Programming Pearls book cover
Programming Pearls
Jon Bentley - 1999-09-27 (first published in 1986)
Goodreads Rating
Explore the world of programming through the eyes of real programmers with this classic collection of programming pearls. The book offers clever and unique solutions to common programming problems through a mix of practical techniques and fundamental design principles. Written in a witty and lucid style, the updated new edition will leave you amazed at how fresh the examples feel despite the passing of years. Whether you're a newbie or a seasoned programmer, this book is a must-have!
Recommended by
Jeff Atwood
Introduction to Algorithms book cover
Introduction to Algorithms
Thomas H. Cormen - 2001-09-01 (first published in 1989)
Goodreads Rating
Discover a comprehensive guide to the world of algorithms with this essential text and professional reference. From vEB trees to dynamic programming, this book covers a broad range of topics in depth while making them accessible to all levels of readers. Each chapter is self-contained and easy to use as a unit of study. Plus, the pseudocode descriptions make it readable for anyone who has done a little programming. With improved treatment of dynamic programming and greedy algorithms, and two new chapters on van Emde Boas trees and multithreaded algorithms, you won't want to miss this updated edition.
The Mythical Man-Month book cover
The Mythical Man-Month
Essays on Software Engineering, Anniversary Edition (2nd Edition)
Frederick P. Brooks Jr. - 1995-08-02 (first published in 1975)
Goodreads Rating
A must-read for those in software project management, this influential book offers a blend of engineering facts and thought-provoking opinions from Fred Brooks, drawing from his experience on the IBM System/360 and OS/360 software system. Revisited 20 years later, the new chapters include a crisp summary of the original propositions, Brooks' current view on them, a reprint of his classic 1986 paper, and his thoughts on the assertion that "there will be no silver bullet within ten years." Discover insightful advice on managing complex projects and achieving conceptual integrity.
Working Effectively with Legacy Code book cover
Working Effectively with Legacy Code
Michael Feathers - 2004-09-22
Goodreads Rating
This valuable resource helps developers work more effectively with legacy code, offering strategies for improving performance, functionality, reliability, and manageability. Readers will learn techniques for understanding software change mechanics, adding features, fixing bugs, optimizing performance, and more. The author draws on his experience mentoring hundreds of developers and includes a catalog of twenty-four dependency-breaking techniques. With examples in Java, C++, C, and C#, this book is applicable to any language or platform.
Recommended by
Julia Evans
Effective Java book cover
Effective Java
Joshua Bloch - 2017-12-27 (first published in 2001)
Goodreads Rating
This updated classic on Java provides specific best practices on how to use the new language and library features introduced in Java 7-9. Each chapter consists of short, standalone essays that provide specific advice, updated code examples, and insight into the subtleties of the platform. Learn updated techniques and best practices on classic topics such as objects, classes, methods, libraries, and generics, and how to avoid common pitfalls of the platform. This book is essential for anyone looking to improve their Java skills.
Design Patterns by Erich Gamma
Structure and Interpretation of Computer Programs by Harold Abelson
Don't Make Me Think by Steve Krug
Head First Design Patterns by Eric Freeman
Cracking the Coding Interview by Gayle Laakmann McDowell
Domain-Driven Design by Eric Evans
Eloquent JavaScript by Marijn Haverbeke
C Programming Language by Brian W. Kernighan
The Clean Coder by Robert Martin
The Self-Taught Programmer by Cory Althoff
Python Crash Course by Eric Matthes
Peopleware by Tom Demarco
The Art of Computer Programming, Vol. 1 by Donald E. Knuth
JavaScript and JQuery by Jon Duckett
The Complete Software Developer's Career Guide by John Sonmez
Coding Games in Scratch by Jon Woodcock
Soft Skills by Z. Sonmez John Et Al
Java Concurrency in Practice by Brian Goetz
Artificial Intelligence by Stuart Russell
Head First Java by Kathy Sierra
Patterns of Enterprise Application Architecture by Martin Fowler
Rapid Development by Steve McConnell
Eloquent Ruby by Russ Olsen
Python for Kids by Jason R. Briggs
Head First Python by Paul Barry
Learn Python 3 the Hard Way by Zed Shaw
HTML and CSS by Jon Duckett
Fluent Python by Luciano Ramalho
Practical Object-Oriented Design by Sandi Metz
The Go Programming Language by Alan A. A. Donovan
R for Data Science by Hadley Wickham
Learning Python by Mark Lutz
The Well-Grounded Rubyist by David A. Black
Code Your Own Games! by Max Wainewright
Coding for Kids by Adrienne Tacke
You Don't Know JS Yet by Kyle Simpson
Continuous Delivery by Jez Humble
C# in Depth by Jon Skeet
The Effective Engineer by Edmond Lau
Compilers by Alfred V. Aho
Types and Programming Languages by Benjamin C. Pierce
Ruby Under a Microscope by Pat Shaughnessy
Concurrency in Go by Katherine Cox-Buday
Head First C by David Griffiths
Swift Programming by Matthew Mathias
The Art of R Programming by Norman Matloff
Artificial Intelligence for Games by Ian Millington
Absolute Beginner's Guide to C by Greg Perry
Hello Ruby by Linda Liukas
Coders at Work by Peter Seibel
Operating System Concepts by Peter Gagne Galvin Abraham Silberschatz
The Joy of PHP by Alan Forbes
Principles of Information Security by Michael E. Whitman
Zero Bugs and Program Faster by Kate Thompson
Everything You Need to Ace Computer Science and Coding in One Big Fat Notebook by Workman Publishing
The Little Schemer by Daniel P. Friedman
Effective Modern C++ by Scott Meyers
Algorithms by Robert Sedgewick
A Smarter Way to Learn JavaScript. The new tech-assisted approach that requires half the effort by Mark Myers
Machine Learning with R by Brett Lantz
Extreme Programming Explained by Kent Beck
Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
Python Cookbook by David Beazley
C Programming by K. N. King
Deep Work by Cal Newport
The Linux Command Line by William Shotts
Programming in Scala by Martin Odersky
Metaprogramming Ruby by Paolo Perrotta
C++ Primer by Stanley B. Lippman
Ruby on Rails Tutorial by Michael Hartl
Programming by Bjarne Stroustrup
Design Patterns in Ruby by Russ Olsen
R Packages by Hadley Wickham
Creative Coding in Python by Sheena Vaidyanathan
C in a Nutshell by Peter Prinz
The Elements of Style by William Strunk Jr.
The Power of Habit by Charles Duhigg
The Design of Everyday Things by Don Norman
Game Engine Architecture by Jason Gregory
The Linux Programming Interface by Michael Kerrisk
Pragmatic Thinking and Learning by Andy Hunt
Make Your Own Neural Network by Tariq Rashid
Expert C Programming by Peter van der Linden
My First Coding Book by Kiki Prottsman
SQL in 10 Minutes a Day, Sams Teach Yourself by Ben Forta
Lift-the-Flap Computers and Coding by Rosie Dickins
Test Driven Development by Kent Beck
C by Samuel P. Harbison
25 Scratch 3 Games for Kids by Max Wainewright
The Little Book of Julia Algorithms by Ahan Sengupta, William Lau