Here are 99 books that The Art of Computer Programming fans have personally recommended if you like
The Art of Computer Programming.
Shepherd is a community of 12,000+ authors and super readers sharing their favorite books with the world.
I have been working with computers for decades now – having started with programmable handheld calculators and working my way up and down through mainframes, mini- and micro-computers. I always thought there is an art to writing software, and that good software can be read and admired. Maintainability, readability, and testability are some core needs for software, and after going through many programming paradigms, I feel that functional programming (FP) is the way to go – and several modern web frameworks agree. JavaScript (and now, TypeScript) are essential to web development, and I wanted to show how FP could be successfully used with those languages, and thus my book.
This book is different from the others I recommended, because its focus is not really on creating algorithms, but rather on how to improve code with a systematic process, keeping functionality but enhancing quality.
The author shows several practical techniques that he applies to real-world problems and empower you to elevate your code's quality and adapt it seamlessly to changing needs. It's not just about writing code; it's about becoming a more effective and confident developer.
I consider this book a companion on the journey to mastering the craft of coding. With it, you’ll always be able to achieve higher-quality code, no matter the original version of the code.
Refactoring is about improving the design of existing code. It is the process of changing a software system in such a way that it does not alter the external behavior of the code, yet improves its internal structure. With refactoring you can even take a bad design and rework it into a good one. This book offers a thorough discussion of the principles of refactoring, including where to spot opportunities for refactoring, and how to set up the required tests. There is also a catalog of more than 40 proven refactorings with details as to when and why to use…
The Victorian mansion, Evenmere, is the mechanism that runs the universe.
The lamps must be lit, or the stars die. The clocks must be wound, or Time ceases. The Balance between Order and Chaos must be preserved, or Existence crumbles.
Appointed the Steward of Evenmere, Carter Anderson must learn the…
I have been working with computers for decades now – having started with programmable handheld calculators and working my way up and down through mainframes, mini- and micro-computers. I always thought there is an art to writing software, and that good software can be read and admired. Maintainability, readability, and testability are some core needs for software, and after going through many programming paradigms, I feel that functional programming (FP) is the way to go – and several modern web frameworks agree. JavaScript (and now, TypeScript) are essential to web development, and I wanted to show how FP could be successfully used with those languages, and thus my book.
This thin but quite fulfilling book is a compact yet profound exploration of proven program correctness, probably one of the first texts to focus on that topic.
Dijkstra's emphasis on mathematical rigor and disciplined thinking reshapes how programmers approach problem-solving. The author imparts essential principles of program construction, advocating for clarity and precision in code, and leading to cultivating a disciplined mindset, and fostering a deep appreciation for the art and science of programming.
Despite its age, all its knowledge is fully valid, and I’d give the book to every programmer so they can reach a higher level of quality.
Clean wraps, corners square, lay flat. No creases to the spine, or hinge. Small frayed spot at the top of the spine. No previous owner's name, no other marks in text. Well kept copy.
I have been working with computers for decades now – having started with programmable handheld calculators and working my way up and down through mainframes, mini- and micro-computers. I always thought there is an art to writing software, and that good software can be read and admired. Maintainability, readability, and testability are some core needs for software, and after going through many programming paradigms, I feel that functional programming (FP) is the way to go – and several modern web frameworks agree. JavaScript (and now, TypeScript) are essential to web development, and I wanted to show how FP could be successfully used with those languages, and thus my book.
This book is essential in that it follows a systematic and scientific approach to software development, advocating for clarity in expressing algorithms, providing a rigorous framework for designing and reasoning about programs, and, fundamentally, always focusing on formal methods and mathematical techniques to ensure correctness and efficiency in programming code.
Most importantly, the book doesn’t just show you how to prove programs correct, but also teaches how to arrive from a definition to an efficient and correct solution, so I would recommend this to every developer.
Magical realism meets the magic of Christmas in this mix of Jewish, New Testament, and Santa stories–all reenacted in an urban psychiatric hospital!
On locked ward 5C4, Josh, a patient with many similarities to Jesus, is hospitalized concurrently with Nick, a patient with many similarities to Santa. The two argue…
I have been working with computers for decades now – having started with programmable handheld calculators and working my way up and down through mainframes, mini- and micro-computers. I always thought there is an art to writing software, and that good software can be read and admired. Maintainability, readability, and testability are some core needs for software, and after going through many programming paradigms, I feel that functional programming (FP) is the way to go – and several modern web frameworks agree. JavaScript (and now, TypeScript) are essential to web development, and I wanted to show how FP could be successfully used with those languages, and thus my book.
Of all the books I recommend, this is practically a sort of personal bible, which I very frequently consult.
This book doesn't just show you how to code; with realistic patterns and real-world examples, it's like having experienced mentors guiding your every keystroke. These patterns aren't just snippets; they're blueprints for building robust, flexible software.
I think the book is practically mandatory for all developers, novice or seasoned. It transformed how I approach problems, teaching me techniques I use daily in systems design and development.
Capturing a wealth of experience about the design of object-oriented software, four top-notch designers present a catalog of simple and succinct solutions to commonly occurring design problems. Previously undocumented, these 23 patterns allow designers to create more flexible, elegant, and ultimately reusable designs without having to rediscover the design solutions themselves.
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 object-oriented systems. With Design Patterns as your guide, you will learn how these important patterns fit into the…
I am Professor of Computer Science at Stony Brook University, and have spent the past thirty years thinking/teaching/writing about algorithms. Algorithms are the really cool thing about computer science, for they form the ideas behind any interesting computer program. And algorithms turn out to be the ideas behind many interesting aspects of life that have nothing to do with computers. I have written six books on algorithms, programming, gambling, and history –including the ranking of the historical significance of all the people in Wikipedia.
Knuth’s unique mix of playfulness and rigor came to define computer science as an intellectual discipline: computer science didn’t really have anything to do with computers, but everything to do with a particular way of seeing the world. Just browse and wonder at the beauty and precision achieved in these books.
Volume 3 (Sorting and Searching) is my personal favorite, and I encourage you to start there. During the pandemic, I finally got around to reading Volume 4A (Combinatorial Algorithms), which was published thirty plus years after Volume 3. It was the same feeling I had watching the movie The Phantom Menace years after growing up with the original Star Wars trilogy. I had forgotten just how unique and distinctive Knuth’s Art of Computer Programming is.
The bible of all fundamental algorithms and the work that taught many of today's software developers most of what they know about computer programming.
-Byte, September 1995
I can't begin to tell you how many pleasurable hours of study and recreation they have afforded me! I have pored over them in cars, restaurants, at work, at home... and even at a Little League game when my son wasn't in the line-up.
-Charles Long
If you think you're a really good programmer... read [Knuth's] Art of Computer Programming... You should definitely send me a resume if you can read the whole…
I started programming in high school and wrote software in many domains for 30 years, from the early ARPA-net to massive credit card software. I wrote a FORTRAN compiler with one assistant in a year. I got hassled to do proper project management. Nightmare. It was all about inflated expectations instead of moving fast and winning. Then in 25 years of venture capital investing, I learned from many young companies how the little startups built quickly and well things that giants like Google literally could not get done. This book and my others spell out what I learned from the little guys who beat the giants.
This is the definitive book series on algorithms and the core of computer programming.
Unlike most such books, Knuth is a real programmer, deep into the details of the craft, to the point of creating his own assembler language and typesetting generation system. It’s partly the substance of the algorithms and their analysis, but even more is the way he models a way of thinking about and solving complexity that makes this a must-read series.
Finally, after a wait of more than thirty-five years, the first part of Volume 4 is at last ready for publication. Check out the boxed set that brings together Volumes 1 - 4A in one elegant case, and offers the purchaser a $50 discount off the price of buying the four volumes individually.
The Art of Computer Programming, Volumes 1-4A Boxed Set, 3/e
A Duke with rigid opinions, a Lady whose beliefs conflict with his, a long disputed parcel of land, a conniving neighbour, a desperate collaboration, a failure of trust, a love found despite it all.
Alexander Cavendish, Duke of Ravensworth, returned from war to find that his father and brother had…
Computers have fascinated me since my childhood, having fond memories of my dad's ZX81, but even so I played around I was never truly captured by the programming until I recognized it as a way of writing rather than raw engineering. Through my studies of media sciences I found my fascination with how language can shape perception, and through my work in developer advocacy, I found how communities are shaped as well. Now I am fascinated with how different programming languages can shape thinking, having had the opportunity to solve problems at large companies in nonmainstream languages.
Smalltalk is not as common or popular as it once was, but the influence its design had on programming is hard to overstate.
Reading this book has changed how I think about object orientation, and how I design systems, learning the patterns of Smalltalk makes it clear what object oriented design is really intended to achieve.
This classic book is the definitive real-world style guide for better Smalltalk programming. This author presents a set of patterns that organize all the informal experience successful Smalltalk programmers have learned the hard way. When programmers understand these patterns, they can write much more effective code. The concept of Smalltalk patterns is introduced, and the book explains why they work. Next, the book introduces proven patterns for working with methods, messages, state, collections, classes and formatting. Finally, the book walks through a development example utilizing patterns. For programmers, project managers, teachers and students -- both new and experienced. This book…
I’ve been making web pages since the World Wide Web began in the mid-1990s. Back then, the web was visually quite sparse. It wasn’t until the late 2000s that new browser capabilities let the web getvisually interestingand an exciting place for interactive graphics. Graphics are great: they can be informational (like charts and maps) or purely aesthetic. My personal journey of learning to code interactive graphics has been so rewarding that I’ve shared the love with others through teaching creative coding workshops and undergraduate courses. If you’re new to coding or computer graphics, I hope you’ll give one of these books a try!
Okay, hear me out. Yes, this book was published in 2007. Yes, it’s ostensibly about ActionScript, the coding language in Flash, which no one uses anymore. But you won’t use this book to learn ActionScript or Flash: You’ll use it to learn how to make things move with code, in any language. You’ll skip over the ActionScript-specific parts in favor of the lucid explanations and helpful illustrations. Your visual brain will appreciate seeinghow sines, cosines, and tangents are relevant—and necessary!—to make digital things move. (Your heart will wish your brain had paid better attention in trigonometry class years earlier, but hey, no regrets!) The chapters “Trigonometry for Animation” and “Velocity and Acceleration” alone are worth the purchase price.
This is the first definitive and authoritative book available on ActionScript 3 animation techniques. ActionScript animation is a very popular discipline for Flash developers to learn. The essential skill set has been learned by many Flash developers through the first edition of this book. This has now been updated to ActionScript 3, Adobe's new and improved scripting language. All of the code has been updated, and some new techniques have been added to take advantage of ActionScript 3's new features, including the display list and new event architecture. The code can be used with the Flash 9 IDE, Flex Builder…
I love computer programming books almost as much as I love computer programming. As a high school student in 1980 I remember typing in really frustrating source code from the book BASIC Computer Games. Was programming meant to be a black art? Was code supposed to be an impenetrable mess of buried intent? When I started getting paid to program, I was happy to see that the answer to both questions was "no." I began to seek and enjoy books that espoused the "right" way to code in a given language. Here is a handful of books that have helped me and countless others learn to produce correct, clear, and maintainable code.
During my first few weeks of JavaScript coding, I encountered what seemed to be an endless number of head-scratching moments: "I'm slowly reading the few lines of code I just wrote, it seems fine, so why isn't it doing what it looks like it should be doing?" Even more insidious at times than C++, JavaScript contains a number of fairly clever constructs, including things like hoisting, duck typing, and a loosey-goosey argument passing mechanism. This concise tome of fewer than 175 pages helped get me past those first few months, and as an author-stated goal, it helped me "learn to think in JavaScript."
Most programming languages contain good and bad parts, but JavaScript has more than its share of the bad, having been developed and released in a hurry before it could be refined. This authoritative book scrapes away these bad features to reveal a subset of JavaScript that's more reliable, readable, and maintainable than the language as a whole-a subset you can use to create truly extensible and efficient code. Considered the JavaScript expert by many people in the development community, author Douglas Crockford identifies the abundance of good ideas that make JavaScript an outstanding object-oriented programming language-ideas such as functions, loose…
It is April 1st, 2038. Day 60 of China's blockade of the rebel island of Taiwan.
The US government has agreed to provide Taiwan with a weapons system so advanced that it can disrupt the balance of power in the region. But what pilot would be crazy enough to run…
I've been a C# programmer for 23 years, and am passionate about the language. It is the perfect balance of power and ease of use, and each year it is extended by its amazing development team. I've used C# to build stand-alone applications, mobile applications, APIs, and database applications and I've never felt constrained. Finally, C# lends itself to best practices and design patterns, and continues to rise in popularity, especially with professional software developers.
While it is true that I wrote the first few editions of this book, Ian has taken it over, revamped it, and made it an iconic work on the language.
It covers every aspect of C# programming, and explains not only how to do something, but why you would do it. It is chock full of best practices and patterns and anti-patterns, and is well written and engaging.
C# is undeniably one of the most versatile programming languages available to engineers today. With this comprehensive guide, you'll learn just how powerful the combination of C# and .NET can be. Author Ian Griffiths guides you through C# 10.0 and .NET 6 fundamentals and techniques for building cloud, web, and desktop applications.
Designed for experienced programmers, this book provides many code examples to help you work with the nuts and bolts of C#, such as generics, LINQ, and asynchronous programming features. You'll get up to speed on .NET 6 and the latest C# 9.0 and 10.0 additions, including records, enhanced…