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

Best Programming Books

Recommendations from 63 articles, Jeff Bezos, Paul Graham, Marc Benioff and 41 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-06-09 (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.
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
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
Introduction to Algorithms book cover
Introduction to Algorithms
Thomas H. Cormen - 2001-09-01
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.
Refactoring book cover
Improving the Design of Existing Code (2nd Edition)
Martin Fowler - 1999-06-28
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.
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-01
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 - 2018-01-06 (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.
Domain-Driven Design by Eric Evans
Design Patterns by Erich Gamma
Don't Make Me Think by Steve Krug
Head First Design Patterns by Eric Freeman
The Clean Coder by Robert Martin
Cracking the Coding Interview by Gayle Laakmann McDowell
The Self-Taught Programmer by Cory Althoff
Peopleware by Tom Demarco
The Art of Computer Programming, Vol. 1 by Donald E. Knuth
Python Crash Course by Eric Matthes
Eloquent JavaScript by Marijn Haverbeke
The Complete Software Developer's Career Guide by John Sonmez
Soft Skills by Z. Sonmez John Et Al
Artificial Intelligence by Stuart Russell
Patterns of Enterprise Application Architecture by Martin Fowler
Rapid Development by Steve McConnell
Python for Kids by Jason R. Briggs
Coding Games in Scratch by Jon Woodcock
C Programming Language by Brian W. Kernighan
Fluent Python by Luciano Ramalho
Java Concurrency in Practice by Brian Goetz
Head First Java by Kathy Sierra
The Go Programming Language by Alan A. A. Donovan
R for Data Science by Hadley Wickham
JavaScript and JQuery by Jon Duckett
Continuous Delivery by Jez Humble
Eloquent Ruby by Russ Olsen
Compilers by Alfred V. Aho
Types and Programming Languages by Benjamin C. Pierce
Code Your Own Games! by Max Wainewright
Coding for Kids by Adrienne Tacke
Swift Programming by Matthew Mathias
The Art of R Programming by Norman Matloff
Artificial Intelligence for Games by Ian Millington
Head First Python by Paul Barry
Learn Python 3 the Hard Way by Zed Shaw
Operating System Concepts by Peter Gagne Galvin Abraham Silberschatz
The Design of Everyday Things by Don Norman
Deep Work by Cal Newport
HTML and CSS by Jon Duckett
Practical Object-Oriented Design by Sandi Metz
The Little Schemer by Daniel P. Friedman
The Linux Programming Interface by Michael Kerrisk
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
The Book of R by Tilman M. Davies
The Linux Command Line by William Shotts
C# in Depth by Jon Skeet
Extreme Programming Explained by Kent Beck
The Effective Engineer by Edmond Lau
Learning Python by Mark Lutz
Programming in Scala by Martin Odersky
Agile Software Development, Principles, Patterns, and Practices by Robert C. Martin
Make Your Own Neural Network by Tariq Rashid
The Well-Grounded Rubyist by David A. Black
Game Engine Architecture by Jason Gregory
Python Cookbook by David Beazley
C++ Primer by Stanley B. Lippman
C Programming by K. N. King
Ruby on Rails Tutorial by Michael Hartl
My First Coding Book by Kiki Prottsman
Programming by Bjarne Stroustrup
Design Patterns in Ruby by Russ Olsen
Real-Time Rendering by Tomas Akenine-Möller
Ruby Under a Microscope by Pat Shaughnessy
Refactoring to Patterns by Joshua Kerievsky
R Packages by Hadley Wickham
Concurrency in Go by Katherine Cox-Buday
JavaScript for Kids by Nick Morgan
Scala for the Impatient by Cay Horstmann
Head First C by David Griffiths
R Cookbook by Paul Teetor
Python Programming by John Zelle
Modern PHP by Josh Lockhart
The Ruby Programming Language by David Flanagan
Programming Game AI by Example by Mat Buckland
Practical Data Science with R by Nina Zumel
Absolute Beginner's Guide to C by Greg Perry
Scala Cookbook by Alvin Alexander
R for Everyone by Jared P. Lander
Hello Ruby by Linda Liukas
Coding For Kids For Dummies by Camille McCue
Beginning C++ Through Game Programming by Michael Dawson
The Essence of Software Engineering by Volker Gruhn
Learning R by Richard Cotton
Seven Languages in Seven Weeks by Bruce Tate
Coders at Work by Peter Seibel