100 Best Programming Books of All Time

We've ranked the best programming books using expert recommendations, sales data, and millions of reader ratings. At Shortform, we know books. Our book guides are the best in the world. Learn why.

Clean Code: A Handbook of Agile Software Craftsmanship book cover1

Clean Code: A Handbook of Agile Software Craftsmanship

Robert C. Martin

5.0
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 Software Craftsmanship . Martin has teamed up with
The Pragmatic Programmer: From Journeyman to Master book cover2

The Pragmatic Programmer: From Journeyman to Master

Andrew Hunt and David Thomas

4.9
-- 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 career development to architectural techniques fo
Code Complete book cover3

Code Complete

Steve McConnell

4.8
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 construction. Capturing the body of knowledge availab
Structure and Interpretation of Computer Programs book cover4

Structure and Interpretation of Computer Programs

Harold Abelson and Gerald Jay Sussman

4.8
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 incorporated many small changes that reflect their experienc
Code: The Hidden Language of Computer Hardware and Software book cover5

Code: The Hidden Language of Computer Hardware and Software

Charles Petzold

4.7
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 past two centuries.

Using everyday objects and fam
The Mythical Man-Month: Essays on Software Engineering book cover6

The Mythical Man-Month: Essays on Software Engineering

Frederick P. Brooks Jr.

4.6
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 for OS/360, its massive software system. Now, 20
The C Programming Language book cover7

The C Programming Language

Brian W. Kernighan, Dennis M. Ritchie

4.6
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 retain the brevity of the first edition. C is not a bi
Design Patterns: Elements of Reusable Object-Oriented Software book cover8

Design Patterns: Elements of Reusable Object-Oriented Software

Erich; Helm John Gamma

4.6
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
Refactoring: Improving the Design of Existing Code book cover9

Refactoring: Improving the Design of Existing Code

Martin Fowler

4.5
Fully Revised and Updated-Includes New Refactorings and Code Examples"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
--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
Cracking the Coding Interview: 189 Programming Questions and Solutions book cover10

Cracking the Coding Interview: 189 Programming Questions and Solutions

Gayle Laakmann McDowell

4.5
I am not a recruiter. I am a software engineer. And as such, I know what it's like to be asked to whip up brilliant algorithms on the spot and then write flawless code on a whiteboard. I've been through this as a candidate and as an interviewer.

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
Head First Design Patterns book cover11

Head First Design Patterns

Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson

4.5
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 best practices and experience of others, so that you
Effective Java book cover12

Effective Java

Joshua Bloch

4.5
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, the diamond operator for generic types, default and
JavaScript: The Good Parts book cover13

JavaScript: The Good Parts

Douglas Crockford

4.5
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
Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability book cover14

Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability

Steve Krug

4.5
Since Don’t Make Me Think was first published in 2000, over 400,000 Web designers and developers have relied on Steve Krug’s guide to help them understand the principles of intuitive navigation and information design.

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 usabil
The Clean Coder: A Code of Conduct for Professional Programmers book cover15

The Clean Coder: A Code of Conduct for Professional Programmers

Robert Martin

4.4
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 disciplines, techniques, tools, and practices of true
Introduction To Algorithms book cover16

Introduction To Algorithms

Thomas H. Cormen, Charles E. Leiserson, et al.

4.4
Working Effectively with Legacy Code book cover17

Working Effectively with Legacy Code

Michael Feathers

4.4
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 efforts.

In this book, Michael Feathers offers start-t
Domain-Driven Design: Tackling Complexity in the Heart of Software book cover18

Domain-Driven Design: Tackling Complexity in the Heart of Software

Eric Evans

4.3
"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 reflect your improving understanding of it. Eric th
Programming Pearls book cover20

Programming Pearls

Jon Bentley

4.3
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 their favorite books, Jon Bentley's collection of
Automate the Boring Stuff with Python: Practical Programming for Total Beginners book cover21

Automate the Boring Stuff with Python: Practical Programming for Total Beginners

Al Sweigart

4.3
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 programming experience required. Once you've master
Coders at Work: Reflections on the Craft of Programming book cover22

Coders at Work: Reflections on the Craft of Programming

Peter Seibel

4.3
Peter Seibel interviews 16 of the most interesting computer programmers alive today in Coders at Work, offering a brand-new companion volume to Apress’s highly acclaimed best-seller Founders at Work by Jessica Livingston. As the words "at work" suggest, Peter Seibel focuses on how his interviewees tackle the day–to–day work of programming, while revealing much more, like how they became great prog
The C++ Programming Language book cover23

The C++ Programming Language

Bjarne Stroustrup

4.3
The new C++11 standard allows programmers to express ideas more clearly, simply, and directly, and to write faster, more efficient code. Bjarne Stroustrup, the designer and original implementer of C++, has reorganized, extended, and completely rewritten his definitive reference and tutorial for programmers who want to use C++ most effectively. "The C++ Programming Language, Fourth Edition, " deliv
Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming book cover24

Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming

Eric Matthes

4.3
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 introduction to the core of Python programming. Author Eric
Patterns of Enterprise Application Architecture book cover25

Patterns of Enterprise Application Architecture

Martin Fowler

4.3
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 enterprise applications often occur because their develop
Eloquent Javascript: A Modern Introduction to Programming book cover26

Eloquent Javascript: A Modern Introduction to Programming

Marijn Haverbeke

4.3
Completely revised and updated, this best-selling introduction to programming in JavaScript focuses on writing real applications.

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 m
Designing Data-Intensive Applications book cover27

Designing Data-Intensive Applications

Martin Kleppmann

4.3
Many forces affect software today: larger datasets, geographical disparities, complex company structures, and the growing need to be fast and nimble in the face of change.

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 thems
Clean Architecture book cover28

Clean Architecture

Robert C. Martin

4.3
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 your best judgment": it tells you what choices to ma
Learn You a Haskell for Great Good! book cover29

Learn You a Haskell for Great Good!

Miran Lipovača

4.3

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 art

Test Driven Development: By Example book cover30

Test Driven Development: By Example

Kent Beck

4.3
Follows two TDD projects from start to finish, illustrating techniques programmers can use to increase the quality of their work. The examples are followed by references to the featured TDD patterns and refactorings. This book emphasises on agile methods and fast development strategies.
Peopleware: Productive Projects and Teams book cover31

Peopleware: Productive Projects and Teams

Tom DeMarco and Tim Lister

4.2
Effective C++: 55 Specific Ways to Improve Your Programs and Designs book cover32

Effective C++: 55 Specific Ways to Improve Your Programs and Designs

Scott Meyers

4.2
The Barnes & Noble Review
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 r
Hackers & Painters: Big Ideas from the Computer Age book cover33

Hackers & Painters: Big Ideas from the Computer Age

Paul Graham

4.2
“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 Graham

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. W
The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win book cover34

The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win

Gene Kim

4.2
Bill is an IT manager at Parts Unlimited. It's Tuesday morning and on his drive into the office, Bill gets a call from the CEO.

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
Practical Object Oriented Design in Ruby book cover35

Practical Object Oriented Design in Ruby

Sandi Metz

4.2
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 extend. This text helps you solve that problem by using
Joel on Software book cover36

Joel on Software

Joel Spolsky

4.2
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 www.joelonsoftware.com. 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.
The Little Schemer book cover37

The Little Schemer

Daniel P. Friedman, Matthias Felleisen, et al.

4.2
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 humorous and easy-to-grasp fashion. Together, these bo
The Art of Computer Programming, Volume 1: Fundamental Algorithms book cover38

The Art of Computer Programming, Volume 1: Fundamental Algorithms

Donald E. Knuth

4.2
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 quantitative analysis of theirefficiency. Outstanding featur
Head First Java book cover39

Head First Java

Kathy Sierra and Bert Bates

4.2
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 constantly searching, scanning, waiting for something un
The Practice of Programming (Addison-Wesley Professional Computing Series) book cover40

The Practice of Programming (Addison-Wesley Professional Computing Series)

Brian W. Kernighan, Rob Pike

4.2
With the same insight and authority that made their book The Unix programming Environment a classic, Brian Kernighan and Rob Pike have written The Practice of Programming to help make individual programmers more effective and productive.
Java Concurrency in Practice book cover41

Java Concurrency in Practice

Brian Goetz

4.2
"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 developer should read this book."
--Martin Buchhol
Fluent Python: Clear, Concise, and Effective Programming book cover42

Fluent Python: Clear, Concise, and Effective Programming

Luciano Ramalho

4.2
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 libraries, and shows you how to make your code shorter,
Pro Git book cover43

Pro Git

Scott Chacon

4.2
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 world of distributed version control Shows how to b
Growing Object-Oriented Software, Guided by Tests book cover44

Growing Object-Oriented Software, Guided by Tests

Steve Freeman, Nat Pryce

4.2
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 of the art in TDD, you need to understand the ideas i
Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation book cover45

Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment Automation

Jez Humble and David Farley

4.2
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 testing process, and improved collaboration betwe
Learning Python book cover46

Learning Python

Mark Lutz

4.2
Portable, powerful, and a breeze to use, Python is the popular open source object-oriented programming language used for both standalone programs and scripting applications. Python is considered easy to learn, but there's no quicker way to mastery of the language than learning from an expert teacher. This edition of "Learning Python" puts you in the hands of two expert teachers, Mark Lutz and Davi
JavaScript: The Definitive Guide book cover47

JavaScript: The Definitive Guide

David Flanagan

4.2
Since 1996, JavaScript: The Definitive Guide has been the bible for JavaScript programmers—a programmer's guide and comprehensive reference to the core language and to the client-side JavaScript APIs defined by web browsers. The 6th edition covers HTML5 and ECMAScript 5, with new chapters on jQuery and server side JavaScript. It's recommended for experienced programmers who want to learn the progr
Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers) book cover48

Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)

Michael T. Nygard

4.2
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 impatient users?

If you're a developer and don't want to b
The Go Programming Language book cover49

The Go Programming Language

Alan A. A. Donovan

4.2
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 Go's simplicity and fast tools a refreshing change
Compilers: Principles, Techniques, and Tools book cover50

Compilers: Principles, Techniques, and Tools

Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman

4.1
This introduction to compilers is the direct descendant of the well-known book by Aho and Ullman, Principles of Compiler Design. The authors present updated coverage of compilers based on research and techniques that have been developed in the field over the past few years. The book provides a thorough introduction to compiler design and covers topics such as context-free grammars, fine state mach
Extreme Programming Explained: Embrace Change (The XP Series) book cover51

Extreme Programming Explained: Embrace Change (The XP Series)

Kent Beck

4.1
"In this second edition of Extreme Programming Explained, Kent Beck organizes and presents five years' worth of experiences, growth, and change revolving around XP. If you are seriously interested in understanding how you and your team can start down the path of improvement with XP, you must read this book."



--Francesco Cirillo, Chief Executive Officer, XPLabs S.R.L. "The first edition of this bo
Mastering Regular Expressions book cover52

Mastering Regular Expressions

Jeffrey E. F. Friedl

4.1
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 whole new world of mastery over your data. If you alr
Building Microservices: Designing Fine-Grained Systems book cover53

Building Microservices: Designing Fine-Grained Systems

Sam Newman

4.1
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 administrators must consider when building, managing, and
The Design of Everyday Things book cover54

The Design of Everyday Things

Don Norman

4.1
Even the smartest among us can feel inept as we fail to figure out which light switch or oven burner to turn on, or whether to push, pull, or slide a door. The fault, argues this ingenious—even liberating—book, lies not in ourselves, but in product design that ignores the needs of users and the principles of cognitive psychology. The problems range from ambiguous and hidden controls to arbitrary r
Agile Software Development, Principles, Patterns, and Practices book cover55

Agile Software Development, Principles, Patterns, and Practices

Robert C. Martin

4.1
Written by a software developer for software developers, this book is a unique collection of the latest software development methods. The author includes 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 shows how to develop an object-oriented application--
Types and Programming Languages book cover56

Types and Programming Languages

Benjamin C. Pierce

4.1
A comprehensive introduction to type systems and programming languages.

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, la
Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People book cover57

Grokking Algorithms An Illustrated Guide For Programmers and Other Curious People

Aditya Bhargava

4.1
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 you. This fully-illustrated and engaging guide makes
HTML and CSS: Design and Build Websites book cover58

HTML and CSS: Design and Build Websites

Jon Duckett

4.1
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 only written for those who want to become program
Programming in Scala: Updated for Scala 2.12 book cover59

Programming in Scala: Updated for Scala 2.12

Martin Odersky, Lex Spoon, Bill Venners

4.1
Programming in Scala
Gödel, Escher, Bach: An Eternal Golden Braid book cover60

Gödel, Escher, Bach: An Eternal Golden Braid

Douglas R. Hofstadter

4.1
Douglas Hofstadter's book is concerned directly with the nature of “maps” or links between formal systems. However, according to Hofstadter, the formal system that underlies all mental activity transcends the system that supports it. If life can grow out of the formal chemical substrate of the cell, if consciousness can emerge out of a formal system of firing neurons, then so too will computers at
Thinking in Java book cover61

Thinking in Java

Bruce Eckel

4.1
Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14 book cover62

Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14

Scott Meyers

4.1
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's where this practical book comes in. It describes
You Don't Know JS: Scope and Closures (You Don't Know JS, #2) book cover63

You Don't Know JS: Scope and Closures (You Don't Know JS, #2)

Kyle Simpson

4.1
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 be a powerful part of your development skillset.

L
Refactoring to Patterns book cover64

Refactoring to Patterns

Joshua Kerievsky

4.1
In 1994, "Design Patterns" changed the landscape of object-oriented development by introducing classic solutions to recurring design problems. In 1999, "Refactoring" revolutionized design by introducing an effective process for improving code. With the highly anticipated " Refactoring to Patterns ," Joshua Kerievsky has changed our approach to design by forever uniting patterns with the evolutiona
Data Structures and Algorithms in Java book cover65

Data Structures and Algorithms in Java

Robert Sedgewick and Kevin Wayne

4.1
The design and analysis of efficient data structures has long been recognized as a key component of the Computer Science curriculum. Goodrich, Tomassia and Goldwasser's approach to this classic topic is based on the object-oriented paradigm as the framework of choice for the design of data structures. For each ADT presented in the text, the authors provide an associated Java interface. Concrete da
Seven Languages in Seven Weeks book cover66

Seven Languages in Seven Weeks

Bruce Tate

4.1
You should learn a programming language every year, as recommended by The Pragmatic Programmer. But if one per year is good, how about Seven Languages in Seven Weeks? In this book you'll get a hands-on tour of Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby. Whether or not your favorite language is on that list, you'll broaden your perspective of programming by examining these languages side
You Don't Know JS: Up & Going book cover67

You Don't Know JS: Up & Going

Kyle Simpson

4.1

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, provi

Pragmatic Thinking and Learning: Refactor Your Wetware book cover68

Pragmatic Thinking and Learning: Refactor Your Wetware

Andy Hunt

4.1
Software development happens in your head. Not in an editor, IDE, or design tool. You're well educated on how to work with software and hardware, but what about wetware--our own brains? Learning new skills and new technology is critical to your career, and it's all in your head.

In this book by Andy Hunt, you'll learn how our brains are wired, and how to take advantage of your brain's architecture
Advanced Programming in the UNIX Environment book cover69

Advanced Programming in the UNIX Environment

W. Richard Stevens

4.1
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 brief example accompanies each description.Buildin
Artificial Intelligence: A Modern Approach book cover70

Artificial Intelligence: A Modern Approach

Stuart Russell and Peter Norvig

4.1
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 a sample application for intelligent systems-Adde
Think Python: How to Think Like a Computer Scientist book cover71

Think Python: How to Think Like a Computer Scientist

Allen B. Downey

4.1
If you want to learn how to program, working with Python is an excellent way to start. This hands-on guide takes you through the language a step at a time, beginning with basic programming concepts before moving on to functions, recursion, data structures, and object-oriented design. This second edition and its supporting code have been updated for Python 3.

Through exercises in each chapter, you'l
Algorithms to Live By: The Computer Science of Human Decisions book cover72

Algorithms to Live By: The Computer Science of Human Decisions

Brian Christian and Griffiths

4.1
A fascinating exploration of how insights from computer algorithms can be applied to our everyday lives, helping to solve common decision-making problems and illuminate the workings of the human mind

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
JavaScript Patterns book cover73

JavaScript Patterns

Stoyan Stefanov

4.1
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 templates in this guide are ideal -- whether you're wri
Hacker's Delight book cover74

Hacker's Delight

Henry S. Warren Jr.

4.1
Aiming to tell the dark secrets of computer arithmetic, this title is suitable for library developers, compiler writers, and lovers of elegant hacks.
The Linux Programming Interface: A Linux and Unix System Programming Handbook book cover75

The Linux Programming Interface: A Linux and Unix System Programming Handbook

Michael Kerrisk

4.1
The Linux Programming Interface is the definitive guide to the Linux and UNIX programming interface—the 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 to master the craft of system programming, and a
Learn Python the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code (Zed Shaw's Hard Way Series) book cover76

Learn Python the Hard Way: A Very Simple Introduction to the Terrifyingly Beautiful World of Computers and Code (Zed Shaw's Hard Way Series)

Zed A. Shaw

4.1
Master Python and become a programmer -- even if you never thought you could! This breakthrough book and CD can help practically anyone get started in programming. It's called "The Hard Way," but it's really quite simple. What's "hard" is this: it requires discipline, practice, and persistence. Zed A. Shaw teaches the Python programming language through a series of 52 brilliantly-crafted exercises
Soft Skills: The Software Developer's Life Manual book cover77

Soft Skills: The Software Developer's Life Manual

John Sonmez

4.1
Summary

"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
Game Programming Patterns book cover78

Game Programming Patterns

Robert Nystrom

4.0
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 how the service locator pattern can help you prov
Python Cookbook book cover79

Python Cookbook

David Beazley and Brian K. Jones

4.0
If you need help writing programs in Python 3, or want to update older Python 2 code, this book is just the ticket. Packed with practical recipes written and tested with Python 3.3, this unique cookbook is for experienced Python programmers who want to focus on modern tools and idioms.

Inside, you’ll find complete recipes for more than a dozen topics, covering the core Python language as well as ta
The Art of Readable Code book cover80

The Art of Readable Code

Dustin Boswell, Trevor Foucher

4.0
As programmers, we’ve all seen source code that’s so ugly and buggy it makes our brain ache. Over the past five years, authors Dustin Boswell and Trevor Foucher have analyzed hundreds of examples of "bad code" (much of it their own) to determine why they’re bad and how they could be improved. Their conclusion? You need to write code that minimizes the time it would take someone else to understand
Programming Ruby 1.9 & 2.0 book cover81

Programming Ruby 1.9 & 2.0

Dave Thomas, Andy Hunt, et al.

4.0
Would you like to go from first idea to working code much, much faster? Do you currently spend more time satisfying the compiler instead of your clients or end users? Are you frustrated with demanding languages that seem to get in your way, instead of getting the work done? Are you using Rails, and want to dig deeper into the underlying Ruby language? If so, then we’ve got a language and book for
The Rust Programming Language book cover82

The Rust Programming Language

Steve Klabnik and Carol Nichol

4.0
The Rust Programming Language is the official book on Rust, an open-source, community-developed systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety. This is the undisputed go-to guide to Rust, written by two members of the Rust core team, with feedback and contributions from 42 members of the community. The book assumes that you’ve written code i
Python for Data Analysis: Data Wrangling with Pandas, Numpy, and Ipython book cover83

Python for Data Analysis: Data Wrangling with Pandas, Numpy, and Ipython

Wes McKinney

4.0
Looking for complete instructions on manipulating, processing, cleaning, and crunching structured data in Python? The second edition of this hands-on guide--updated for Python 3.5 and Pandas 1.0--is packed with practical cases studies that show you how to effectively solve a broad set of data analysis problems, using Python libraries such as NumPy, pandas, matplotlib, and IPython.

Written by Wes Mc
The Passionate Programmer: Creating a Remarkable Career in Software Development book cover84

The Passionate Programmer: Creating a Remarkable Career in Software Development

Chad Fowler

4.0
Success in today's IT environment requires you to view your career as a business endeavor. In this book, you'll learn how to become an entrepreneur, driving your career in the direction of your choosing. You'll learn how to build your software development career step by step, following the same path that you would follow if you were building, marketing, and selling a product. After all, your skill
The UNIX Programming Environment (Prentice-Hall Software Series) book cover85

The UNIX Programming Environment (Prentice-Hall Software Series)

Brian W. Kernighan, Rob Pike

4.0
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 statement of rules. For the most part, the examples are
The Art of UNIX Programming book cover86

The Art of UNIX Programming

Eric S. Raymond

4.0
This text reveals the software design secrets of the original Unix designers, showing how they produce software that is fast, portable, reuseable, modular and long-lived. Luminaries including Brian Kernighan, David Korn and Henry Spencer contribute to the book.
Effective Python: 59 Specific Ways to Write Better Python book cover87

Effective Python: 59 Specific Ways to Write Better Python

Brett Slatkin

4.0
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 the intermediate Python programmer. " Brandon Rhodes
Secrets of the JavaScript Ninja book cover88

Secrets of the JavaScript Ninja

John Resig

4.0
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 such as testing, and cross-browser development, all
Programming Perl: Unmatched power for text processing and scripting book cover89

Programming Perl: Unmatched power for text processing and scripting

Tom Christiansen, brian d foy, et al.

4.0
Adopted as the undisputed Perl bible soon after the first edition appeared in 1991, Programming Perl is still the go-to guide for this highly practical language. Perl began life as a super-fueled text processing utility, but quickly evolved into a general purpose programming language that’s helped hundreds of thousands of programmers, system administrators, and enthusiasts, like you, get your job
Rapid Development: Taming Wild Software Schedules book cover90

Rapid Development: Taming Wild Software Schedules

Steve McConnell

4.0
A fundamental software engineering project management guide based on the practical requirements of "Taming Wild Software Schedules". Emphasizes possible, realistic and "best practice" approaches for managers, technical leads and self-managed teams. The author emphasizes efficient development concepts with an examination of rapid development strategies and a study of classic mistakes, within the co
Practical Vim: Edit Text at the Speed of Thought book cover91

Practical Vim: Edit Text at the Speed of Thought

Drew Neil

4.0
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 writing tasks.

Vim, like its classic ancestor vi,
Accelerate: Building and Scaling High-Performing Technology Organizations book cover92

Accelerate: Building and Scaling High-Performing Technology Organizations

Nicole Forsgren PhD

4.0
Does technology actually matter? And how can we apply technology to drive business value? For years, we've been told that the performance of software delivery teams doesn't matter--that it can't provide a competitive advantage to our companies. Through four years of groundbreaking research, Dr. Nicole Forsgren, Jez Humble, and Gene Kim set out to find a way to measure software delivery performance
The Art of Computer Programming, Volumes 1-3 Boxed Set book cover93

The Art of Computer Programming, Volumes 1-3 Boxed Set

Donald E. Knuth

4.0
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 computer science, this multi-volume work is a usef
First Little Readers: Guided Reading Level C (Parent Pack): 25 Irresistible Books That Are Just the Right Level for Beginning Readers book cover94

First Little Readers: Guided Reading Level C (Parent Pack): 25 Irresistible Books That Are Just the Right Level for Beginning Readers

Liza Charlesworth

4.0
Jumpstart reading success with this big collection motivating storybooks correlated with Guided Reading Level C. Most pages of these full-color storybooks feature just two or three lines of simple, repetitive text to help children learn to read with ease and confidence. Includes a tip-filled parent guide. A great value!
1. The Pie that Jack Made
2. Funny Foods
3. Round the Clown
4. Follow that Cat!
5.
The Self-Taught Programmer: The Definitive Guide to Programming Professionally book cover95

The Self-Taught Programmer: The Definitive Guide to Programming Professionally

Cory Althoff

4.0
I am a self-taught programmer. After a year of self-study, I learned to program well enough to land a job as a software engineer II at eBay. Once I got there, I realized I was severely under-prepared. I was overwhelmed by the amount of things I needed to know but hadn't learned yet. My journey learning to program, and my experience at my first job as a software engineer were the inspiration for th
You Don't Know JS: this & Object Prototypes book cover96

You Don't Know JS: this & Object Prototypes

Kyle Simpson

4.0
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 other books in the "You Don't Know JS" series, this
More Effective C++: 35 New Ways to Improve Your Programs and Designs, PDF Version book cover97

More Effective C++: 35 New Ways to Improve Your Programs and Designs, PDF Version

Scott Meyers

4.0
C# in Depth book cover98

C# in Depth

Jon Skeet

4.0
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, you'll see the subtleties of C# programming in acti
The Art of Unit Testing: with examples in C# book cover99

The Art of Unit Testing: with examples in C#

Roy Osherove

4.0
Summary

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 an
JavaScript and jQuery: Interactive Front-End Web Development book cover100

JavaScript and jQuery: Interactive Front-End Web Development

Jon Duckett

4.0
Learn JavaScript and jQuery a nicer way

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'l