Read This Twice
HomePeopleBooksListsMy Library 0Sign In

100 Best Programming Books

100 books on this list
Sort by
C Programming Language
by Brian W. Kernighan (Mar 31, 1988)
Goodreads Rating
This book is meant to help the reader learn how to program in C. It is the definitive reference guide, now in a second edition. Although the first edition was written in 1978, it continues to be a worldwide best-seller. This second edition brings the classic original up to date to include the ANSI standard. From the Preface: We have tried to reta...
Clean Code
A Handbook of Agile Software Craftsmanship
by Robert C. Martin (Aug 10, 2008)
Goodreads Rating
Even bad code can function. But if code isn t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn t have to be that way. Noted software expert Robert C. Martin presents a revolutionary paradigm with Clean Code: A Handbook of Agile S...
Structure and Interpretation of Computer Programs
by Harold Abelson (Aug 31, 1996)
Goodreads Rating
Structure and Interpretation of Computer Programs has had a dramatic impact on computer science curricula over the past decade. This long-awaited revision contains changes throughout the text. There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporat...
The Pragmatic Programmer
From Journeyman to Master
by Andrew Hunt (Oct 29, 1999)
Goodreads Rating
-- Ward Cunningham Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and...
Effective Java
by Joshua Bloch (Jan 05, 2018)
Goodreads Rating
Since this Jolt-award winning classic was last updated in 2008 (shortly after Java 6 was released), Java has changed dramatically. The principal enhancement in Java 8 was the addition of functional programming constructs to Java's object-oriented roots. Java 7, 8, and 9 also introduced language features, such as the try-with-resources statement, th...
The Cuckoo's Egg
Tracking a Spy Through the Maze of Computer Espionage
by Cliff Stoll (Jan 01, 2005)
Goodreads Rating
Before the Internet became widely known as a global tool for terrorists, one perceptive U.S. citizen recognized its ominous potential. Armed with clear evidence of computer espionage, he began a highly personal quest to expose a hidden network of spies that threatened national security. But would the authorities back him up? Cliff Stoll's dramatic ...
The Hidden Language of Computer Hardware and Software
by Charles Petzold (Oct 21, 2000)
Goodreads Rating
What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the...
Code Complete
A Practical Handbook of Software Construction, Second Edition
by Steve McConnell (Jun 18, 2004)
Goodreads Rating
Widely considered one of the best practical guides to programming, Steve McConnell's original CODE COMPLETE has been helping developers write better software for more than a decade. Now this classic book has been fully updated and revised with leading-edge practices--and hundreds of new code samples--illustrating the art and science of software con...
Recommended by
Jeff Atwood
The Mythical Man-Month
Essays on Software Engineering, Anniversary Edition (2nd Edition)
by Frederick P. Brooks Jr. (Aug 11, 1995)
Goodreads Rating
Few books on software project management have been as influential and timeless as The Mythical Man-Month. With a blend of software engineering facts and thought-provoking opinions, Fred Brooks offers insight for anyone managing complex projects. These essays draw from his experience as project manager for the IBM System/360 computer family and then...
The Art of Computer Programming, Vol. 1
Fundamental Algorithms, 3rd Edition
by Donald E. Knuth (Jul 16, 1997)
Goodreads Rating
The first revision of this third volume is the most comprehensivesurvey of classical computer techniques for sorting and searching. It extends thetreatment of data structures in Volume 1 to consider both large and smalldatabases and internal and external memories. The book contains a selection ofcarefully checked computer methods, with a quantitati...
Deep Learning
by Ian Goodfellow (Nov 17, 2016)
Goodreads Rating
An introduction to a broad range of topics in deep learning, covering mathematical and conceptual background, deep learning techniques used in industry, and research perspectives.Deep learning is a form of machine learning that enables computers to learn from experience and understand the world in terms of a hierarchy of concepts. Because the compu...
Introduction to Algorithms, Second Edition
by Thomas H Cormen (Jul 15, 2001)
Goodreads Rating
This title covers a broad range of algorithms in depth, yet makes their design and analysis accessible to all levels of readers. Each chapter is relatively self-contained and can be used as a unit of study. The algorithms are described in English and in a pseudocode designed to be readable by anyone who has done a little programming. The explanatio...
Head First Design Patterns
A Brain-Friendly Guide
by Eric Freeman (Sep 30, 2004)
Goodreads Rating
You're not alone. 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 b...
Improving the Design of Existing Code
by Martin Fowler (Jul 07, 1999)
Goodreads Rating
As the application of object technologyparticularly the Java programming languagehas become commonplace, a new problem has emerged to confront the software development community. Significant numbers of poorly designed programs have been created by less-experienced developers, resulting in applications that are inefficient and hard to maintain and e...
Design and Build Websites
by Jon Duckett (Nov 07, 2011)
Goodreads Rating
Every day, more and more people want to learn some HTML and CSS. Joining the professional web designers and programmers are new audiences who need to know a little bit of code at work (update a content management system or e-commerce store) and those who want to make their personal blogs more attractive. Many books teaching HTML and CSS are dry and...
Cracking the Coding Interview
150 Programming Questions and Solutions
by Gayle Laakmann McDowell (Aug 21, 2011)
Goodreads Rating
Now in the 5th edition, Cracking the Coding Interview gives you the interview preparation you need to get the top software developer jobs. This is a deeply technical book and focuses on the software engineering skills to ace your interview. The book is over 500 pages and includes 150 programming interview questions and answers, as well as other adv...
Heroes of the Computer Revolution
by Steven Levy (Jun 08, 2010)
Goodreads Rating
This 25th anniversary edition of Steven Levy's classic book traces the exploits of the computer revolution's original hackers -- those brilliant and eccentric nerds from the late 1950s through the early '80s who took risks, bent the rules, and pushed the world in a radical new direction. With updated material from noteworthy hackers such as Bill Ga...
The Clean Coder
A Code of Conduct for Professional Programmers
by Robert Martin (May 12, 2011)
Goodreads Rating
Programmers who endure and succeed amidst swirling uncertainty and nonstop pressure share a common attribute: They care deeply about the practice of creating software. They treat it as a craft. They are professionals. In The Clean Coder: A Code of Conduct for Professional Programmers, legendary software expert Robert C. Martin introduces the dis...
Productive Projects and Teams (3rd Edition)
by Tom DeMarco (Jun 27, 2013)
Goodreads Rating
Peopleware asserts that most software development projects fail because of failures within the team running them. This strikingly clear, direct book is written for software development-team leaders and managers, but it's filled with enough commonsense wisdom to appeal to anyone working in technology. Authors Tom DeMarco and Timothy Lister include p...
Recommended by
Jeff Atwood
Practical Object-Oriented Design in Ruby
An Agile Primer (Addison-Wesley Professional Ruby Series)
by Sandi Metz (Sep 14, 2012)
Goodreads Rating
The Complete Guide to Writing More Maintainable, Manageable, Pleasing, and Powerful Ruby Applications Ruby's widely admired ease of use has a downside: Too many Ruby and Rails applications have been created without concern for their long-term maintenance or evolution. The Web is awash in Ruby code that is now virtually impossible to change or exten...
Mastering Ethereum
Building Smart Contracts and DApps
by Andreas M. Antonopoulos (Dec 22, 2018)
Goodreads Rating
Ethereum represents the gateway to a worldwide, decentralized computing paradigm. This platform enables you to run decentralized applications (DApps) and smart contracts that have no central points of failure or control, integrate with a payment network, and operate on an open blockchain. With this practical guide, Andreas M. Antonopoulos and Gavin...
The Good Parts
by Douglas Crockford (Apr 30, 2008)
Goodreads Rating
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 ...
Hands-On Machine Learning with Scikit-Learn and TensorFlow
Concepts, Tools, and Techniques to Build Intelligent Systems
by Aurélien Géron (Apr 17, 2017)
Goodreads Rating
Through a series of recent breakthroughs, deep learning has boosted the entire field of machine learning. Now, even programmers who know close to nothing about this technology can use simple, efficient tools to implement programs capable of learning from data. This practical book shows you how.By using concrete examples, minimal theory, and two pro...
Recommended by
Tim O’Reilly
Design Patterns
Elements of Reusable Object-Oriented Software
by Erich Gamma (Nov 09, 1994)
Goodreads Rating
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 th...
Python Crash Course
A Hands-On, Project-Based Introduction to Programming
by Eric Matthes (May 03, 2019)
Goodreads Rating
Second edition of the best selling Python book in the world. A fast-paced, no-nonsense guide to programming in Python. This book teaches beginners the basics of programming in Python with a focus on real projects.This is the second edition of the best selling Python book in the world. Python Crash Course, 2nd Edition is a straightforward introducti...
Recommended by
Kirk Borne
Mastering Bitcoin
Unlocking Digital Cryptocurrencies
by Andreas M. Antonopoulos (Dec 19, 2014)
Goodreads Rating
Want to join the technological revolution that's taking the world of finance by storm? Mastering Bitcoin is your guide through the seemingly complex world of bitcoin, providing the requisite knowledge to help you participate in the internet of money. Whether you're building the next killer app, investing in a startup, or simply curious about the te...
Recommended by
Mark Russinovich
Practical Vim
Edit Text at the Speed of Thought
by Drew Neil (Nov 06, 2015)
Goodreads Rating
Vim is a fast and efficient text editor that will make you a faster and more efficient developer. It's available on almost every OS--if you master the techniques in this book, you'll never need another text editor. Practical Vim shows you 120 vim recipes so you can quickly learn the editor's core functionality and tackle your trickiest editing and ...
Recommended by
Daniel Miessler
Effective C++
55 Specific Ways to Improve Your Programs and Designs (Professional Computing)
by Scott Meyers (May 21, 2005)
Goodreads Rating
The Barnes & Noble ReviewSince 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 TR...
Java Concurrency in Practice
by Brian Goetz (May 18, 2006)
Goodreads Rating
"I was fortunate indeed to have worked with a fantastic team on the design and implementation of the concurrency features added to the Java platform in Java 5.0 and Java 6. Now this same team provides the best explanation yet of these new features, and of concurrency in general. Concurrency is no longer a subject for advanced users only. Every Java...
The Linux Programming Interface
A Linux and UNIX System Programming Handbook
by Michael Kerrisk (Oct 27, 2010)
Goodreads Rating
The Linux Programming Interface is the definitive guide to the Linux and UNIX programming interfacethe interface employed by nearly every application that runs on a Linux or UNIX system.In this authoritative work, Linux programming expert Michael Kerrisk provides detailed descriptions of the system calls and library functions that you need in order...
Recommended by
Julia Evans
The Little Schemer - 4th Edition
by Daniel P. Friedman (Dec 20, 1995)
Goodreads Rating
The notion that thinking about computing is one of the most exciting things the human mind can do sets both The Little Schemer (formerly known as The Little LISPer) and its new companion volume, The Seasoned Schemer, apart from other books on LISP. The authors' enthusiasm for their subject is compelling as they present abstract concepts in a humoro...
Recommended by
Susan J. Fowler
An Introduction to Statistical Learning
with Applications in R (Springer Texts in Statistics)
by Gareth James (Jun 24, 2013)
Goodreads Rating
An Introduction to Statistical Learning provides an accessible overview of the field of statistical learning, an essential toolset for making sense of the vast and complex data sets that have emerged in fields ranging from biology to finance to marketing to astrophysics in the past twenty years. This book presents some of the most important modelin...
Building Microservices
Designing Fine-Grained Systems
by Sam Newman (Feb 19, 2015)
Goodreads Rating
Distributed systems have become more fine-grained in the past 10 years, shifting from code-heavy monolithic applications to smaller, self-contained microservices. But developing these systems brings its own set of headaches. With lots of examples and practical advice, this book takes a holistic view of the topics that system architects and administ...
Recommended by
Mark Russinovich
Programming Pearls
by Jon Bentley (Oct 06, 1999)
Goodreads Rating
The first edition of Programming Pearls was one of the most influential books I read early in my career, and many of the insights I first encountered in that book stayed with me long after I read it. Jon has done a wonderful job of updating the material. I am very impressed at how fresh the new examples seem. - Steve McConnell When programmers list...
Recommended by
Jeff Atwood
Domain-Driven Design
Tackling Complexity in the Heart of Software
by Eric Evans (Aug 29, 2003)
Goodreads Rating
"Eric Evans has written a fantastic book on how you can make the design of your software match your mental model of the problem domain you are addressing. "His book is very compatible with XP. It is not about drawing pictures of a domain; it is about how you think of it, the language you use to talk about it, and how you organize your software to r...
Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow
Concepts, Tools, and Techniques to Build Intelligent Systems
by Aurélien Géron (Oct 14, 2019)
Goodreads Rating
Through a series of recent breakthroughs, deep learning has boosted the entire field of machine learning. Now, even programmers who know close to nothing about this technology can use simple, efficient tools to implement programs capable of learning from data. This practical book shows you how.By using concrete examples, minimal theory, and two pro...
Recommended by
Kirk Borne
You Don't Know JS
Scope & Closures
by Kyle Simpson (Mar 31, 2014)
Goodreads Rating
No matter how much experience you have with JavaScript, odds are you don't fully understand the language. This concise yet in-depth guide takes you inside scope and closures, two core concepts you need to know to become a more efficient and effective JavaScript programmer. You'll learn how and why they work, and how an understanding of closures can...
The Unix Programming Environment
by Brian W. Kernighan (Nov 10, 1983)
Goodreads Rating
In their preface, the authors explain, "This book is meant to help the reader learn how to program in C. It contains tutorial introduction to get new users started as soon as possible, separate chapters on each major feature, and a reference manual. Most of the treatment is based on reading, writing, and revising examples, rather than on mere state...
Recommended by
Tim O’Reilly
Machine Learning
A Probabilistic Perspective (Adaptive Computation and Machine Learning series)
by Kevin P. Murphy (Aug 23, 2012)
Goodreads Rating
A comprehensive introduction to machine learning that uses probabilistic models and inference as a unifying approach.Today's Web-enabled deluge of electronic data calls for automated methods of data analysis. Machine learning provides these, developing methods that can automatically detect patterns in data and then use the uncovered patterns to pre...
Recommended by
Kirk Borne
Applied Predictive Modeling
by Max Kuhn (May 16, 2013)
Goodreads Rating
This text is intended for a broad audience as both an introduction to predictive models as well as a guide to applying them. Non- mathematical readers will appreciate the intuitive explanations of the techniques while an emphasis on problem-solving with real data across a wide variety of applications will aid practitioners who wish to extend their ...
Recommended by
Kirk Borne
Paradigms of Artificial Intelligence Programming
Case Studies in Common Lisp
by Peter Norvig (Sep 30, 1991)
Goodreads Rating
"Paradigms of AI Programming" is the first text to teach advanced Common Lisp techniques in the context of building major AI systems. By reconstructing authentic, complex AI programs using state-of-the-art Common Lisp, the book teaches students and professionals how to build and debug robust practical programs, while demonstrating superior programm...
Recommended by
Patrick Collison
Python Machine Learning
Machine Learning and Deep Learning with Python, scikit-learn, and TensorFlow 2, 3rd Edition
by Sebastian Raschka (Dec 12, 2019)
Goodreads Rating
Link to the GitHub Repository containing the code examples and additional material: of the most innovative breakthroughs and exciting new technologies can be attributed to applications of machine learning. We are living in an age where data comes in abundance, and thanks to the self-learning algorithms f...
Recommended by
Kirk Borne
Windows Internals, Part 1
by Pavel Yosifovich (May 14, 2017)
Goodreads Rating
Delve inside Windows architecture and internals - and see how core components work behind the scenes. This classic guide has been fully updated for Windows 8.1 and Windows Server 2012 R2, and now presents its coverage in three volumes: Book 1, User Mode; Book 2, Kernel Mode; Book 3, Device Driver Models.In Book 1, you'll plumb Windows fundamentals,...
Recommended by
Mark Russinovich
Patterns of Enterprise Application Architecture
by Martin Fowler (Nov 14, 2002)
Goodreads Rating
The practice of enterprise application development has benefited from the emergence of many new enabling technologies. Multi-tiered object-oriented platforms, such as Java and .NET, have become commonplace. These new tools and technologies are capable of building powerful applications, but they are not easily implemented. Common failures in enterpr...
Security Engineering 2nd
by Ross J Anderson (Apr 07, 2008)
Goodreads Rating
The world has changed radically since the first edition of this book was published in 2001. Spammers, virus writers, phishermen, money launderers, and spies now trade busily with each other in a lively online criminal economy and as they specialize, they get better. In this indispensable, fully updated guide, Ross Anderson reveals how to build syst...
Recommended by
Ben Goldacre
Windows Internals, Part 2
by Mark E. Russinovich (Sep 24, 2012)
Goodreads Rating
Delve inside Windows architecture and internals—and see how core components work behind the scenes. Led by three renowned internals experts, this classic guide is fully updated for Windows 7 and Windows Server 2008 R2—and now presents its coverage in two volumes.As always, you get critical insider perspectives on how Windows operates. And through h...
Recommended by
Mark Russinovich
Monolith to Microservices
Evolutionary Patterns to Transform Your Monolith
by Sam Newman (Dec 03, 2019)
Goodreads Rating
How do you detangle a monolithic system and migrate it to a microservices architecture? How do you do it while maintaining business-as-usual? As a companion to Sam Newman's extremely popular Building Microservices, this new book details a proven method for transitioning an existing monolithic system to a microservice architecture.With many illustra...
Recommended by
Grady Booch
Joel on Software
And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity
by Joel Spolsky (Aug 01, 2004)
Goodreads Rating
Someone once said that the task of a writer is to "make the familiar new and the new familiar". For years, Joel Spolsky has done exactly this at Now, for the first time, you can own a collection of the most important essays from his site in one book, with exclusive commentary and new insights from joel....
Recommended by
Ev Williams
Generative Deep Learning
Teaching Machines to Paint, Write, Compose, and Play
by David Foster (Jul 15, 2019)
Goodreads Rating
Generative modeling is one of the hottest topics in artificial intelligence. Recent advances in the field have shown how it's possible to teach a machine to excel at human endeavors--such as drawing, composing music, and completing tasks--by generating an understanding of how its actions affect its environment.With this practical book, machine lear...
Recommended by
Kirk Borne
Head First Java
by Kathy Sierra (Feb 21, 2005)
Goodreads Rating
Learning a complex new language is no easy task especially when it s an object-oriented computer programming language like Java. You might think the problem is your brain. It seems to have a mind of its own, a mind that doesn't always want to take in the dry, technical stuff you're forced to study. The fact is your brain craves novelty. It's consta...
Troubleshooting with the Windows Sysinternals Tools
by Mark Russinovich (Oct 26, 2016)
Goodreads Rating
The most comprehensive guidance available for troubleshooting using the indispensable Windows Sysinternals utilities from Microsoft TechNet, written by their creator. The Sysinternals utilities are indispensable and very popular tools for diagnosing, troubleshooting, and researching the Windows platform. Troubleshooting with the Windows Sysinternal...
Recommended by
Mark Russinovich
Modern Operating Systems
by Andrew S. Tanenbaum (Mar 19, 2014)
Goodreads Rating
"Modern Operating Systems, Fourth Edition, "" is intended for introductory courses in Operating Systems in Computer Science, Computer Engineering, and Electrical Engineering programs. It also serves as a useful reference for OS professionals" The widely anticipated revision of this worldwide best-seller incorporates the latest developments in opera...
Recommended by
Patrick Collison
Smalltalk Best Practice Patterns
by Kent Beck (Oct 12, 1996)
Goodreads Rating
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 patter...
Effective Modern C++
42 Specific Ways to Improve Your Use of C++11 and C++14
by Scott Meyers (Dec 04, 2014)
Goodreads Rating
Coming to grips with C++11 and C++14 is more than a matter of familiarizing yourself with the features they introduce (e.g., auto type declarations, move semantics, lambda expressions, and concurrency support). The challenge is learning to use those features effectively--so that your software is correct, efficient, maintainable, and portable. That'...
Grokking Algorithms
An illustrated guide for programmers and other curious people
by Aditya Bhargava (Apr 30, 2016)
Goodreads Rating
An algorithm is nothing more than a step-by-step procedure for solving a problem. The algorithms you'll use most often as a programmer have already been discovered, tested, and proven. If you want to take a hard pass on Knuth's brilliant but impenetrable theories and the dense multi-page proofs you'll find in most textbooks, this is the book for yo...
The Algorithm Design Manual
by Steve S. Skiena (Nov 13, 1997)
Goodreads Rating
This volume helps take some of the "mystery" out of identifying and dealing with key algorithms. Drawing heavily on the author's own real-world experiences, the book stresses design and analysis. Coverage is divided into two parts, the first being a general guide to techniques for the design and analysis of computer algorithms. The second is a refe...
Fluent Python
Clear, Concise, and Effective Programming
by Luciano Ramalho (Aug 19, 2015)
Goodreads Rating
Python's simplicity lets you become productive quickly, but this often means you aren't using everything it has to offer. With this hands-on guide, you'll learn how to write effective, idiomatic Python code by leveraging its best and possibly most neglected features. Author Luciano Ramalho takes you through Python's core language features and libra...
by Robert Sedgewick (Apr 02, 2011)
Goodreads Rating
This fourth edition of Robert Sedgewick and Kevin Wayne's Algorithms is the leading textbook on algorithms today and is widely used in colleges and universities worldwide. This book surveys the most important computer algorithms currently in use and provides a full treatment of data structures and algorithms for sorting, searching, graph processing...
Automate the Boring Stuff with Python
Practical Programming for Total Beginners
by Al Sweigart (Apr 14, 2015)
Goodreads Rating
If you've ever spent hours renaming files or updating hundreds of spreadsheet cells, you know how tedious tasks like these can be. But what if you could have your computer do them for you?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 p...
JavaScript and JQuery
Interactive Front-End Web Development
by Jon Duckett (Jun 29, 2014)
Goodreads Rating
Learn JavaScript and jQuery a nicer wayThis 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 h...
Go Programming Language, The
by Alan A. A. Donovan (Oct 25, 2015)
Goodreads Rating
Go is an open-source programming language that makes it easy to build clean, reliable, and efficient software. It has been winning converts from dynamic language enthusiasts as well as users of traditional compiled languages. The former appreciate the robustness and efficiency that Go's lightweight type system brings to their code; the latter find ...
The Art of the Metaobject Protocol
by Gregor Kiczales (Jul 30, 1991)
Goodreads Rating
The CLOS metaobject protocol is an elegant, high-performance extension tothe CommonLisp Object System. The authors, who developed the metaobject protocol andwho were among the group that developed CLOS, introduce this new approach toprogramming language design, describe its evolution and design principles, andpresent a formal specification of a met...
Recommended by
Alan Kay
The Linux Command Line
A Complete Introduction
by William E. Shotts Jr. (Jan 16, 2012)
Goodreads Rating
You've experienced the shiny, point-and-click surface of your Linux computer—now dive below and explore its depths with the power of the command line.The Linux Command Line takes you from your very first terminal keystrokes to writing full programs in Bash, the most popular Linux shell. Along the way you'll learn the timeless skills handed down by ...
LISP 1.5 Programmer's Manual
by Michael I. Levin (Aug 14, 1962)
Goodreads Rating
The LISP language is designed primarily for symbolic data processing used for symbolic calculations in differential and integral calculus, electrical circuit theory, mathematical logic, game playing, and other fields of artificial intelligence.The manual describes LISP, a formal mathematical language. LISP differs from most programming languages in...
Recommended by
Alan Kay
Game Programming Patterns
by Robert Nystrom (Nov 01, 2014)
Goodreads Rating
Game Programming Patterns brings the benefits of reusable design patterns to the world of game programming. Commercial game development expert Robert Nystrom presents an array of general solutions to problems encountered in game development. For example, you'll learn how double-buffering enables a player to perceive smooth and realistic motion, and...
Clean Architecture
A Craftsman's Guide to Software Structure and Design (Robert C. Martin Series)
by Robert C. Martin (Sep 19, 2017)
Goodreads Rating
Building upon the success of best-sellers The Clean Coder and Clean Code, legendary software craftsman Robert C. "Uncle Bob" Martin shows how to bring greater professionalism and discipline to application architecture and design.As with his other books, Martin's Clean Architecture doesn't merely present multiple choices and options, and say "use yo...
You Don't Know Js
this & Object Prototypes
by Kyle Simpson (Aug 04, 2014)
Goodreads Rating
No matter how much experience you have with JavaScript, odds are you don't fully understand the language. This concise, in-depth guide takes you inside JavaScript's this structure and object prototypes. You'll learn how they work and why they're integral to behavior delegation--a design pattern in which objects are linked, rather than cloned.Like o...
R for Data Science
Import, Tidy, Transform, Visualize, and Model Data
by Hadley Wickham (Jan 09, 2017)
Goodreads Rating
Learn how to use R to turn raw data into insight, knowledge, and understanding. This book introduces you to R, RStudio, and the tidyverse, a collection of R packages designed to work together to make data science fast, fluent, and fun. Suitable for readers with no previous programming experience, R for Data Science is designed to get you doing data...
Concrete Mathematics
A Foundation for Computer Science (2nd Edition)
by Ronald L. Graham (Mar 09, 1994)
Goodreads Rating
Concrete Mathematics is a blending of CONtinuous and disCRETE mathematics. "More concretely," the authors explain, "it is the controlled manipulation of mathematical formulas, using a collection of techniques for solving problems."...
Deep Learning with Python
by François Chollet (Dec 21, 2017)
Goodreads Rating
Deep learning is applicable to a widening range of artificial intelligence problems, such as image classification, speech recognition, text classification, question answering, text-to-speech, and optical character recognition. It is the technology behind photo tagging systems at Facebook and Google, self-driving cars, speech recognition systems on ...
C# in Depth
by Jon Skeet (Nov 29, 2010)
Goodreads Rating
C# has changed significantly since it was first introduced. With the many upgraded features, C# is more expressive than ever. However, an in depth understanding is required to get the most out of the language.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, y...
The Elements of Statistical Learning
Data Mining, Inference, and Prediction (Springer Series in Statistics)
by Trevor Hastie (Jul 29, 2003)
Goodreads Rating
During the past decade there has been an explosion in computation and information technology. With it has come vast amounts of data in a variety of fields such as medicine, biology, finance, and marketing. The challenge of understanding these data has led to the development of new tools in the field of statistics, and spawned new areas such as data...
Release It!
Design and Deploy Production-Ready Software (Pragmatic Programmers)
by Michael T. Nygard (Jul 11, 2017)
Goodreads Rating
Whether it's in Java, .NET, or Ruby on Rails, getting your application ready to ship is only half the battle. Did you design your system to survivef a sudden rush of visitors from Digg or Slashdot? Or an influx of real world customers from 100 different countries? Are you ready for a world filled with flakey networks, tangled databases, and impatie...
Advanced Programming in the UNIXEnvironment
by W. Richard Stevens (Jun 29, 1992)
Goodreads Rating
If you are an experienced C programmer with a working knowledge of UNIX, you cannot afford to be without this up-to-date tutorial on the system call interface and the most important functions found in the ANSI C library. Rich Stevens describes more than 200 system calls and functions; since he believes the best way to learn code is to read code, a ...
Pattern Recognition and Machine Learning
by Christopher M. Bishop (Aug 16, 2006)
Goodreads Rating
Pattern recognition has its origins in engineering, whereas machine learning grew out of computer science. However, these activities can be viewed as two facets of the same field, and together they have undergone substantial development over the past ten years. In particular, Bayesian methods have grown from a specialist niche to become mainstream,...
Artificial Intelligence
A Modern Approach (2nd Edition)
by Stuart Russell (Dec 29, 2002)
Goodreads Rating
For one or two-semester, undergraduate or graduate-level courses in Artificial Intelligence. The long-anticipated revision of this best-selling text offers the most comprehensive, up-to-date introduction to the theory and practice of artificial intelligence. *NEW-Nontechnical learning material-Accompanies each part of the book. *NEW-The Internet as...
The Art of Computer Programming, Vols. 1-3
by Donald E. Knuth (Oct 14, 1998)
Goodreads Rating
Knuth's classic work has been widely acclaimed as one of the most influential works in the field of computer science. For the first time, these books are available as a boxed, three-volume set. The handsome slipcase makes this set an ideal gift for the recent computer science graduate or professional programmer. Offering a description of classical ...
Continuous Delivery
Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))
by Jez Humble (Aug 05, 2010)
Goodreads Rating
Winner of the 2011 Jolt Excellence Award!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...
More Effective C++
35 New Ways to Improve Your Programs and Designs
by Scott Meyers (Dec 31, 1995)
Goodreads Rating
More than 150,000 copies in print! Praise for Scott Meyers' first book, Effective C++ "I heartily recommend Effective C++ to anyone who aspires to mastery of C++ at the intermediate level or above."- The C/C++ User's Journal From the author of the indispensable Effective C++, here are 35 new ways to improve your programs and designs. Drawing on yea...
Functional Programming in Scala
by Paul Chiusano (Sep 13, 2014)
Goodreads Rating
Functional programming (FP) is a programming style emphasizing functions that return consistent and predictable results regardless of a program's state. As a result, functional code is easier to test and reuse, simpler to parallelize, and less prone to bugs. Scala is an emerging JVM language that offers strong support for FP. Its familiar syntax an...
Applied Cryptography
Protocols, Algorithms, and Source Code in C
by Bruce Schneier (Oct 17, 1996)
Goodreads Rating
"…the best introduction to cryptography I've ever seen. … The book the National Security Agency wanted never to be published." –Wired Magazine "…monumental… fascinating… comprehensive… the definitive work on cryptography for computer programmers…" –Dr. Dobb's Journal"…easily ranks as one of the most authoritative in its field." —PC Magazine"…the bi...
Growing Object-Oriented Software, Guided by Tests
by Steve Freeman (Oct 21, 2009)
Goodreads Rating
Foreword by Kent Beck "The authors of this book have led a revolution in the craft of programming by controlling the environment in which software grows." --Ward Cunningham "At last, a book suffused with code that exposes the deep symbiosis between TDD and OOD. This one's a keeper." --Robert C. Martin "If you want to be an expert in the state o...
Programming in Scala
A Comprehensive Step-by-Step Guide, 2nd Edition
by Martin Odersky (Jan 03, 2011)
Goodreads Rating
Programming in Scala is the definitive book on Scala, the new language for the Java Platform that blends object-oriented and functional programming concepts into a unique and powerful tool for developers. Coauthored by the designer of the Scala language, this authoritative book will teach you, one step at a time, the Scala language and the ideas ...
Working Effectively with Legacy Code
by Michael Feathers (Sep 21, 2004)
Goodreads Rating
Get more out of your legacy systems, more performance, functionality, reliability, and manageability.Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development eff...
Effective Python
59 Specific Ways to Write Better Python (Effective Software Development Series)
by Brett Slatkin (Mar 07, 2015)
Goodreads Rating
Each item in Slatkin s "Effective Python" teaches a self-contained lesson with its own source code. This makes the book random-access: Items are easy to browse and study in whatever order the reader needs. I will be recommending "Effective Python" to students as an admirably compact source of mainstream advice on a very broad range of topics for th...
Written by a software developer for software developers, this book is a unique collection of the latest software development methods. The author incudes OOD, UML, Design Patterns, Agile and XP methods with a detailed description of a complete software design for reusable programs in C++ and Java. Using a practical, problem-solving approach, it show...
Effective JavaScript
68 Specific Ways to Harness the Power of JavaScript (Effective Software Development Series)
by David Herman (Dec 05, 2012)
Goodreads Rating
"It's uncommon to have a programming language wonk who can speak in such comfortable and friendly language as David does. His walk through the syntax and semantics of JavaScript is both charming and hugely insightful; reminders of gotchas complement realistic use cases, paced at a comfortable curve. You'll find when you finish the book that you've ...
Pro Git
by Scott Chacon (Aug 26, 2009)
Goodreads Rating
Git is the version control system developed by Linus Torvalds for Linux kernel development. It took the open source world by storm since its inception in 2005, and is used by small development shops and giants like Google, Red Hat, and IBM, and of course many open source projects.A book by Git experts to turn you into a Git expert. Introduces the w...
Expert C Programming
Deep C Secrets
by Peter van der Linden (Jun 23, 1994)
Goodreads Rating
Written for experienced C programmers who want to quickly pick up some of the insights and techniques of experts and master the fine arts of ANSI C, this volume passes on the wisdom of a highly experienced C compiler writer and his colleagues to help programmers reach new heights, and avoid common software pitfalls along the way. Using an original ...
Art of Computer Programming, Volume 2
Seminumerical Algorithms (3rd Edition)
by Donald E. Knuth (Nov 13, 1997)
Goodreads Rating
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...
Thinking in Java
by Bruce Eckel (Feb 19, 2006)
Goodreads Rating
Thinking in Java is a printed version of Bruce Eckel's online materials that provides a useful perspective on mastering Java for those with previous programming experience. The author's take on the essence of Java as a new programming language and the thorough introduction to Java's features make this a worthwhile tutorial. Thinking in Java begins ...
Statistical Rethinking
A Bayesian Course with Examples in R and Stan (Chapman & Hall/CRC Texts in Statistical Science)
by Richard McElreath (Dec 20, 2015)
Goodreads Rating
Statistical Rethinking: A Bayesian Course with Examples in R and Stan builds readers' knowledge of and confidence in statistical modeling. Reflecting the need for even minor programming in today's model-based statistics, the book pushes readers to perform step-by-step calculations that are usually automated. This unique computational approach ensur...
The Art of Computer Programming
Volume 3
by Donald E. Knuth (May 03, 1998)
Goodreads Rating
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...
Hackers & Painters
Big Ideas From The Computer Age
by Paul Graham (Apr 30, 2010)
Goodreads Rating
"The computer world is like an intellectual Wild West, in which you can shoot anyone you wish with your ideas, if you're willing to risk the consequences. " --from Hackers & Painters: Big Ideas from the Computer Age, by Paul GrahamWe are living in the computer age, in a world increasingly designed and engineered by computer programmers and software...
The Well-Grounded Rubyist
Covers Ruby 1.9.1
by David A. Black (Jun 15, 2009)
Goodreads Rating
The Well-Grounded Rubyist takes you from interested novice to proficient practitioner. It's a beautifully written tutorial that begins with the basic steps to get your first Ruby program up and running and goes on to explore sophisticated topics like callable objects, reflection, and threading. Whether the topic is simple or tough, the book's easy-...
JavaScript Patterns
by Stoyan Stefanov (Sep 27, 2010)
Goodreads Rating
What's the best approach for developing an application with JavaScript? This book helps you answer that question with numerous JavaScript coding patterns and best practices. If you're an experienced developer looking to solve problems related to objects, functions, inheritance, and other language-specific categories, the abstractions and code templ...
Modern C++ Design
Generic Programming and Design Patterns Applied
by Andrei Alexandrescu (Feb 22, 2001)
Goodreads Rating
In Modern C++ Design, Andrei Alexandrescu opens new vistas for C++ programmers. Displaying extraordinary creativity and virtuosity, Alexandrescu offers a cutting-edge approach to software design that unites design patterns, generic programming, and C++, enabling programmers to achieve expressive, flexible, and highly reusable code.KEY TOPICS: The b...
Mastering Regular Expressions
by Jeffrey E. F. Friedl (Aug 18, 2006)
Goodreads Rating
Regular expressions are an extremely powerful tool for manipulating text and data. They are now standard features in a wide range of languages and popular tools, including Perl, Python, Ruby, Java, VB.NET and C# (and any language using the .NET Framework), PHP, and MySQL.If you don't use regular expressions yet, you will discover in this book a who...
Secrets of the JavaScript Ninja
by John Resig (Jan 16, 2013)
Goodreads Rating
Secrets of the JavaScript Ninja uses practical examples to clearly illustrate each core concept and technique. This completely revised edition shows you how to master key JavaScript concepts such as functions, closures, objects, prototypes, and promises. It covers APIs such as the DOM, events, and timers. You’ll discover best practice techniques su...
Hacker's Delight
by Henry S. Warren Jr. (Jul 26, 2002)
Goodreads Rating
Aiming to tell the dark secrets of computer arithmetic, this title is suitable for library developers, compiler writers, and lovers of elegant hacks....