100 Best Programming Books of All Time
We've researched and ranked the best programming books in the world, based on recommendations from world experts, sales data, and millions of reader ratings. Learn more
Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile Software Craftsmanship . Martin has teamed up with his colleagues from Object Mentor to 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... more
Hadley WickhamThis book is about the craft of software development, and thinking about how to produce good code. (Source)
Santiago BasultoIf my career path is hackers turned business people, I’d say: Start with the basics and fundamentals: SICP: Structure and Interpretation of Computer Programs Code Complete 2 (Source)
Ana BellCode Complete is for people working in industry, writing software for companies. It has little checklists at key points in the book; if you are in industry, you can make sure that your code is readable and debugged by going through these checklists and making sure you’re touching upon all aspects. (Source)
Max LevchinEasier to read [than "The Art of Computer Programming"] end-to-end quickly. (Source)
Hadley WickhamThe most valuable thing this book gives you is confidence and knowledge to go and create your own programming language. (Source)
John Maeda@jesseddy The best book in classical and “hands-on example” terms is Structure and Interpretation of Computer Programs — but it requires maybe a year to get thru and for me, 10 years more to marinate over. *A* book is the one I am finishing now to come out Nov 2019. https://t.co/OODjQXgf1I (Source)
Using everyday objects and familiar language systems such as Braille and Morse code, author Charles Petzold weaves an illuminating narrative for anyone who’s ever wondered about the secret inner life of... more
Jeff Bezos[From "The Everything Store", written by Brad Stone] “An influential computer scientist makes the counterintuitive argument that small groups of engineers are more effective than larger ones at handling complex software projects. The book lays out the theory behind Amazon’s two pizza teams,” Stone writes. (Source)
From the Preface:
We have tried to retain the brevity of the first edition. C is not a big language, and it is not well served by a big book. We have improved the exposition of critical features, such as pointers, that are central to C programming. We have refined the... more
The authors begin by describing what patterns are and how they can help you design object-oriented software. They then go on to systematically name, explain, evaluate, and catalog recurring designs in... more
--M. Fowler (1999) For more than twenty years, experienced programmers worldwide have relied on Martin Fowler's Refactoring to improve the design of existing code and to enhance software maintainability, as well as to make existing code easier to understand.
This eagerly awaited new edition has been fully updated to reflect crucial changes in the programming landscape. ... more
David Heinemeier HanssonThis is next on my list of technical books to read! Refactoring is one of two programming books that I’ve read multiple times (the other is Smalltalk Best Practice Patterns), and I’m due for another reading. What perfect time then to dive into Martin Fowler’s long anticipated 2nd edition, now using JavaScript rather than Java for the code examples. Like the stoic books, I read Refactoring and... (Source)
Cracking the Coding Interview, 6th Edition is here to help you through this process, teaching you what you need to know and enabling you to perform at your very best. I've coached and interviewed hundreds of software engineers. The result is this book.
Learn how to uncover the hints and hidden details in a question,... more
Don't have time to read the top Programming books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
At any given moment, somewhere in the world someone struggles with the same software design problems you have. You know you don't want to reinvent the wheel (or worse, a flat tire), so you look to Design Patterns--the lessons learned by those who've faced the same problems. With Design Patterns, you get to take advantage of the best practices and experience of others, so that you can spend your time on...something else. Something more challenging. Something more complex. Something more fun.
You want to learn about the patterns that matter--why to... more
Considered the JavaScript expert by many people in the development community, author Douglas Crockford identifies the abundance of good ideas that make JavaScript... more
Auston BunsenI’m actually a self-taught programmer, so these books have really helped me with practical skills that I could put to use & yield results. The return on investment for these kinds of books is off the charts for me! (Source)
In this 3rd edition, Steve returns with fresh perspective to reexamine the principles that made Don’t Make Me Think a classic-–with updated examples and a new chapter on mobile usability. And it’s still short, profusely illustrated…and best of all–fun to read.
If you’ve read it before, you’ll rediscover what made Don’t Make Me Think so essential to Web... more
Chris GowardHere are some of the books that have been very impactful for me, or taught me a new way of thinking: [...] Don't Make Me Think. (Source)
Nicolae AndronicI’m a technical guy. I studied the IT field and did software development for a long time until I discovered the business world. So the path for me is to slowly adapt from the clear, technical world, to the fuzzy, way more complex, business world. All the books that I recommend help this transition. “Don’t Make Me Think” - Steve Krug: for seeing software with the eyes of the user. (Source)
Nick GanjuAbout usability and making software and user interfaces that are friendly to people. (Source)
In this book, Michael Feathers offers start-to-finish strategies for working more effectively with large, untested legacy code bases. This book draws on material Michael created for his renowned Object Mentor seminars, techniques... more
Hadley WickhamThis book is an illustration of the power of names in the Google era. (Source)
James StanleyI very much enjoyed reading "Programming Pearls" by John Bentley. Most of the software we write is trying to solve fairly large and ill-defined problems in a way that minimises development cost, but Programming Pearls presents a lot of small, well-defined problems, and talks through their solutions in ways that minimise machine resource usage. There are lots of good "a-ha" moments when reading... (Source)
Don't have time to read the top Programming books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
In "Automate the Boring Stuff with Python," you'll learn how to use Python to write programs that do in minutes what would take you hours to do by hand no prior programming experience required. Once you've mastered the basics of programming, you'll create Python programs that effortlessly perform useful and impressive feats of automation to: Search for text in a file or across multiple... more
Hundreds of people have suggested names of programmers to interview on the... more
Santiago BasultoFounders at Work and Coders at Work are really good ones too. They’re filled with interesting and inspiring stories. (Source)
Vicki BoykisIt’s about how those people got into programming and how they think about it. It’s a very conversational book that really helps you to learn the culture of this industry you’re coming into, and some of its terminology. (Source)
This is the second edition of the best selling Python book in the world. Python Crash Course, 2nd Edition is a straightforward introduction to the core of Python programming. Author Eric Matthes dispenses with the sort of tedious, unnecessary information that can get in the way of learning how to program, choosing instead to provide a foundation in general... more
Eloquent JavaScript dives into the JavaScript language to show programmers how to write elegant, effective JavaScript code. Like any good programming book, Eloquent JavaScript begins with fundamentals--variables, control structures, functions, and data structures--then moves on to complex topics like object-oriented programming and regular expressions. This third edition introduces new features covering the 2017 version of... more
Proven approaches such as service-oriented and event-driven architectures are joined by newer techniques such as microservices, reactive architectures, DevOps, and stream processing. Many of these patterns are successful by themselves, but as this practical ebook demonstrates, they provide a more holistic and compelling approach when applied together.
Author Ben Stopford explains how service-based... more
As with his other books, Martin's Clean Architecture doesn't merely present multiple choices and options, and say "use your best judgment": it tells you what choices to make, and why those choices are critical to your success. Martin offers direct, no-nonsense answers to key architecture and design questions like:
What are the best high level... more
Learn You a Haskell for Great Good! is a fun, illustrated guide to learning Haskell, a functional programming language that's growing in popularity. Learn You a Haskell for Great Good! introduces programmers familiar with imperative languages (such as C++, Java, or Python) to the unique aspects of functional programming. Packed with jokes, pop culture references, and the author's own hilarious artwork, Learn You a Haskell for Great Good! eases the learning curve of this complex language, and is a perfect starting point for any programmer looking to expand his or her...
moreSantiago BasultoI love the following books, even though I don’t code in these languages in a daily basis. It’s still interesting to learn the concepts behind them Programming in Scala (Odersky) Learn You a Haskell for Great Good (Source)
Don't have time to read the top Programming books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
Since early in the 90s, working C++ programmers have relied on Scott Meyers s Effective C++ to dramatically improve their skills. But the state-of-the-art has moved forward dramatically since Meyers last updated this book in 1997. (For instance, there s now STL. Design patterns. Even new functionality being added through TR1 and Boost.) So Meyers has done a top-to-bottom rewrite, identifying the 55 most valuable techniques you need now to be exceptionally effective with C++.
Over half of this edition s content is new....
We are living in the computer age, in a world increasingly designed and engineered by computer programmers and software designers, by people who call themselves hackers. Who are these people, what motivates them, and why should you care?
Consider these facts: Everything around us is turning into computers. Your typewriter is... more
Evan WilliamsI want everybody I know to read "How to Make Wealth" and "Mind the Gap" (chapters 6 and 7), which brilliantly articulate the most commonly, and frustratingly, misunderstood core economic principles of everyday life. (Source)
Yukihiro MatsumotoSince programmers create programs out of nothing, imagination is our only limitation. Thus, in the world of programming, the hero is the one who has great vision. Paul Graham is one of our contemporary heroes. He has the ability to embrace the vision, and to express it plainly. His works are my favorites, especially the ones describing language design. He explains secrets of programming,... (Source)
Chris AndersonA delightful ping-pong around the brain of a really smart guy. The chapter that answers the key question of our age-- why are nerds unpopular?-- is worth the price of admission alone. (Source)
The company's new IT initiative, code named Phoenix Project, is critical to the future of Parts Unlimited, but the project is massively over budget and very late. The CEO wants Bill to report directly to him and fix the mess in ninety days or else Bill's entire department will be outsourced.
With the help of a prospective board member and his mysterious philosophy of The Three Ways, Bill starts to see that IT work has more in common with... more
Jeffrey SnoverGreat thread. I know of a number of devops people that haven't read this book. Ya'll should fix that. https://t.co/Yri4JJ0jBZ (Source)
Louis NyffeneggerI don't think I have a specific book that I can call my favourite. Some books have had a big impact on my view of how to build a product/company ("Rework"), some were very enjoyable to read ("The Phoenix Project"), some helped me improve the way I think ("The Pleasure Of Finding Things Out") and some the way I live ("Essentialism") or work ("Deep Work"). (Source)
The fact is your brain craves novelty. It's constantly searching, scanning, waiting for something unusual to happen. After all, that's the way it was built to help you stay alive. It takes all the routine, ordinary, dull stuff and filters it to the background so it won't interfere with... more
Don't have time to read the top Programming books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
--Martin Buchholz
JDK Concurrency Czar, Sun Microsystems
"For the past 30 years, computer performance has been driven by Moore's Law; from now on, it will be driven by Amdahl's Law. Writing... more
Many experienced programmers try to bend Python to fit patterns they learned from other languages, and never discover Python features outside... more
A book by Git experts to turn you into a Git expert. Introduces the world of distributed version control Shows how to build a Git development workflow. less
Getting software released to users is often a painful, risky, and time-consuming process. This groundbreaking new book sets out the principles and technical practices that enable rapid, incremental delivery of high quality, valuable new functionality to users. Through automation of the build, deployment, and testing process, and improved collaboration between developers, testers, and operations, delivery teams can get changes released in a matter of hours-- sometimes even minutes-no matter what the size of a project or the... more
If you're a developer and don't want to be on call for 3AM for the rest of your life, this book will help.
In Release It!, Michael T. Nygard shows you how to design and architect your... more
The Go... more
Don't have time to read the top Programming books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
--Francesco Cirillo, Chief Executive Officer, XPLabs S.R.L. "The first edition of this book told us what XP was--it changed the way many of us think about software development. This second edition takes it farther and gives us a lot more of the 'why'... more
If you don't use regular expressions yet, you will discover in this book a whole new world of mastery over your data. If you already use them, you'll appreciate this book's unprecedented detail and breadth of coverage. If you think you know all you need to know about regularexpressions, this book is a stunning... more
Microservice technologies are moving quickly. Author Sam Newman provides you with a firm grounding in the concepts while diving into current solutions... more
Marius Ciuchete Pauneval(ez_write_tag([[250,250],'theceolibrary_com-large-mobile-banner-2','ezslot_5',164,'0','1'])); Question: Was there a moment, specifically, when something you read in a book helped you? Answer: Yes there was. In fact, I can remember two separate sentences from two different books: The first one comes from “The Design of Everyday Things” by Don Norman. It says: “great design will help... (Source)
Grey BakerI mainly read to decompress and change my state of mind, so it’s hard to point to an insight I read that helped me. Reading fiction has pulled me out of a bad mood more times than I can count, though, and always reenergises me to attack problems that had stumped me again. That said, I read and loved Norman Norman’s “The Design of Everyday Things”, and it’s helped me think through design problems... (Source)
Kaci LambeThese three books are about how people actually use design in their lives. They helped me understand this very basic idea: There are no dumb users, only bad designers. Take the time to create based on how your design will be interacted with. Test it. Iterate. That's how you become a good designer. (Source)
A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute. The study of type systems--and of programming languages from a type-theoretic perspective--has important applications in software engineering, language design, high-performance compilers, and security.
This text provides a comprehensive introduction both to type systems in computer science and to the basic theory... more
Grokking Algorithms is a disarming take on a core computer science topic. In it, you'll learn how to apply... more
• Introduces HTML and CSS in a way that makes them accessible to everyone—hobbyists, students, and professionals—and it’s... more
Santiago BasultoI love the following books, even though I don’t code in these languages in a daily basis. It’s still interesting to learn the concepts behind them Programming in Scala (Odersky) Learn You a Haskell for Great Good (Source)
Steve Jurvetson[Steve Jurvetson recommended this book on the podcast "The Tim Ferriss Show".] (Source)
Seth GodinIn the last week, I discovered that at least two of my smart friends hadn't read Godel, Escher, Bach. They have now. You should too. (Source)
Kevin KellyOver the years, I kept finding myself returning to its insights, and each time I would arrive at them at a deeper level. (Source)
Don't have time to read the top Programming books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
Topics include:
The pros and cons of braced initialization,... more
Like other books in the "You Don't Know JS" series, Scope and Closures dives into trickier parts of the language that many JavaScript programmers simply avoid. Armed with this... more
This book introduces the theory and practice of pattern-directed refactorings: sequences of low-level refactorings that allow designers to safely move designs... more
Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell. With... more
It’s easy to learn parts of JavaScript, but much harder to learn it completely—or even sufficiently—whether you’re new to the language or have used it for years. With the "You Don’t Know JS" book series, you’ll get a more complete understanding of JavaScript, including trickier parts of the language that many experienced JavaScript programmers simply avoid.
The series’ first book, Up & Going, provides the necessary background for those of you with limited programming experience. By learning the basic building blocks of programming, as well as JavaScript’s core...
moreIn this book by Andy Hunt, you'll learn how our brains are wired, and how to take advantage of your brain's architecture. You'll learn new tricks and tips to learn more, faster, and retain more of what you learn.
You need a pragmatic approach to thinking and learning. You need to... more
Don't have time to read the top Programming books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
Through exercises in each chapter, you'll try out programming concepts as you learn them. Think Python is ideal for students at the high school or college level, as well as self-learners, home-schooled students, and... more
All our lives are constrained by limited space and time, limits that give rise to a particular set of problems. What should we do, or leave undone, in a day or a lifetime? How much messiness should we accept? What balance of new activities and familiar favorites is the most fulfilling? These may seem like uniquely human quandaries, but they are not: computers, too, face the same... more
Doug McMillonHere are some of my favorite reads from 2017. Lots of friends and colleagues send me book suggestions and it's impossible to squeeze them all in. I continue to be super curious about how digital and tech are enabling people to transform our lives but I try to read a good mix of books that apply to a variety of areas and stretch my thinking more broadly. (Source)
Sriram Krishnan@rabois @nealkhosla Yes! Love that book (Source)
Chris OliverThis is a great book talking about how you can use computer science to help you make decisions in life. How do you know when to make a decision on the perfect house? Car? etc? It helps you apply algorithms to making those decisions optimally without getting lost. (Source)
Written by JavaScript expert Stoyan Stefanov -- Senior Yahoo! Technical and architect of YSlow 2.0, the web page... more
In this authoritative work, Linux programming expert Michael Kerrisk provides detailed descriptions of the system calls and library functions that you need in order to master the craft of system programming, and accompanies his explanations with clear, complete example programs.
You'll find descriptions of over 500 system calls and library functions, and more than 200 example... more
Julia Evanshanging out with my favourite Linux book this morning. I love that the chapters are so short (usually less than 20 pages) and I always learn something interesting by picking a chapter and reading it. https://t.co/fZBNu8rfU8 (Source)
Vicki BoykisHe goes through all of the building blocks that you need to master Python. It’s been updated for Python 3, which is very important as well. It’s very practical and down to earth, with about 50 to 60 exercises, and it’s written in a way that doesn’t feel overwhelming and that really allows you to go through all of them. (Source)
"Soft Skills: The software developer's life manual" is a unique guide, offering techniques and practices for a more satisfying life as a professional software developer. In it, developer and life coach John Sonmez addresses a wide range of important "soft" topics, from career and productivity to personal finance and investing, and even fitness and relationships, all from a developer-centric viewpoint.
Forewords by Robert C. Martin (Uncle Bob) and Scott Hanselman.
Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from... more
Games have much in common with other software, but also a number of unique... more
Inside, you’ll find complete recipes for more than a dozen topics, covering the core Python language as well as tasks common to a wide variety of application domains. Each recipe contains code samples you can use in your projects right away, along with a discussion about how and why the solution... more
This book focuses on basic principles and practical techniques you can apply every time you write code. Using easy-to-digest code examples from... more
Hadley WickhamThis book gives you a series of techniques to make ‘code smell’ go away. (Source)
Don't have time to read the top Programming books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
Ruby is a fully object-oriented language, much like the classic object-oriented language, Smalltalk. Like Smalltalk, it is dynamically typed (as opposed to Java or C++), but unlike... more
Known... more
Written by Wes McKinney, the main author of the pandas library, Python for Data Analysis also serves as a practical, modern introduction to scientific computing in Python for data-intensive... more
Timur BadretdinovAs for programming, I’d recommend The Passionate Programmer. (Source)
Tim O'ReillyThe Unix Programming Environment, by Brian Kernighan and Rob Pike. In addition to its articulation of the Unix tools philosophy that is so dear to my heart, the writing is a model of clarity and elegance. As a technical writer, I aspired to be as transparent as Kernighan. (Source)
In this much-anticipated update to "the Camel," three renowned Perl authors cover the language up to its current version, Perl 5.14, with a preview of features in the upcoming... more
James HongAll legit OG web people will remember the camel book well... except @pud who somehow did amazing things all using .cfm 😉 https://t.co/n4pOpkOY6M (Source)
Don't have time to read the top Programming books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
Vim, like its classic ancestor vi, is a serious tool for programmers, web developers, and sysadmins. No other text editor comes close to Vim for speed and efficiency; it runs on almost every system imaginable and... more
Kirk BorneFantastic accomplishment! Congratulations @nicolefv on your outstanding #DevOps book ... I love that: “The Science of Lean” ... that works also for #DataOps and Lean Analytics. https://t.co/i9gPhKL0dt https://t.co/DNJpuJtER0 (Source)
1. The Pie that Jack Made
2. Funny Foods
3. Round the Clown
4. Follow that Cat!
5. Counting Bugs
6. Lunch Crunch
7. Bubble Shapes
8. All About Dinosaurs
9. Make a Pizza
10. This Little Piggy
11. Tail Tale
12. Eight... more
This book is not just about learning to program; although you will learn to code. If you want to program professionally, it is not enough to learn to code; that is why, in... more
Like other books in the "You Don't Know JS" series, this and Object Prototypes dives into trickier parts of the language that many JavaScript programmers simply avoid. Armed with this knowledge, you can become a true JavaScript master. more
C# in Depth, Second Edition is a thoroughly revised, up-to-date book that covers the new features of C# 4 as well as Code Contracts. In it, you'll see the subtleties of C# programming in action, learning how to work with high-value features that you'll be glad to have in your toolkit. The book helps readers avoid hidden pitfalls of C# programming by understanding... more
The Art of Unit Testing, Second Edition guides you step by step from writing your first simple tests to developing robust test sets that are maintainable, readable, and trustworthy. You'll master the foundational ideas and quickly move to high-value subjects like mocks, stubs, and isolation, including frameworks such as Moq, FakeItEasy, and Typemock Isolator. You'll explore test patterns and organization, working with legacy code, and even "untestable" code. Along the way, you'll learn about integration testing and techniques and tools for testing databases... more
This full-color book adopts a visual approach to teaching JavaScript & jQuery, showing you how to make web pages more interactive and interfaces more intuitive through the use of inspiring code examples, infographics, and photography. The content assumes no previous programming experience, other than knowing how to create a basic web page in HTML & CSS. You'll learn how to achieve techniques seen on many popular websites (such as adding animation, tabbed panels, content sliders, form validation, interactive galleries, and sorting... more
Don't have time to read the top Programming books of all time? Read Shortform summaries.
Shortform summaries help you learn 10x faster by:
- Being comprehensive: you learn the most important points in the book
- Cutting out the fluff: you focus your time on what's important to know
- Interactive exercises: apply the book's ideas to your own life with our educators' guidance.