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

5.0
-- 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: The Hidden Language of Computer Hardware and Software book cover3

Code: The Hidden Language of Computer Hardware and Software

Charles Petzold

4.8
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 cover4

The Mythical Man-Month: Essays on Software Engineering

Frederick P. Brooks Jr.

4.8
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
5

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 cover6

Structure and Interpretation of Computer Programs

Harold Abelson and Gerald Jay Sussman

4.7
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
7

The Clean Coder: A Code of Conduct for Professional Programmers

Robert Martin

4.7
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
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
9

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

Refactoring: Improving the Design of Existing Code

Martin Fowler

4.6
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
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
Introduction To Algorithms book cover13

Introduction To Algorithms

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

4.5
JavaScript: The Good Parts book cover14

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
Cracking the Coding Interview: 189 Programming Questions and Solutions book cover15

Cracking the Coding Interview: 189 Programming Questions and Solutions

Gayle Laakmann McDowell

4.4
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
The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers book cover16

The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers

Ben Horowitz

4.4
A lot of people talk about how great it is to start a business, but only Ben Horowitz is brutally honest about how hard it is to run one.

In The Hard Thing About Hard Things, Ben Horowitz, cofounder of Andreessen Horowitz and one of Silicon Valley's most respected and experienced entrepreneurs, draws on his own story of founding, running, selling, buying, managing, and investing in technology compa
The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses book cover17

The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses

Eric Ries

4.4
Most startups fail. But many of those failures are preventable. The Lean Startup is a new approach being adopted across the globe, changing the way companies are built and new products are launched.

Eric Ries defines a startup as an organization dedicated to creating something new under conditions of extreme uncertainty. This is just as true for one person in a garage or a group of seasoned profes
Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability book cover18

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

Steve Krug

4.4
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
Working Effectively with Legacy Code book cover19

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 cover20

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

Eric Evans

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

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

Gene Kim

4.4
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
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
Automate the Boring Stuff with Python: Practical Programming for Total Beginners book cover23

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
Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming book cover25

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
26

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
27

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
The Design of Everyday Things book cover28

The Design of Everyday Things

Don Norman

4.3
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
Eloquent Javascript: A Modern Introduction to Programming book cover29

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
Patterns of Enterprise Application Architecture book cover30

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

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
Test Driven Development: By Example book cover32

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.
Learning Python book cover33

Learning Python

Mark Lutz

4.3
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
Algorithms to Live By: The Computer Science of Human Decisions book cover34

Algorithms to Live By: The Computer Science of Human Decisions

Brian Christian and Griffiths

4.2
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
35

Peopleware: Productive Projects and Teams

Tom DeMarco and Tim Lister

4.2
36

Learn You a Haskell for Great Good!

Miran Lipovača

4.2

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

Clean Architecture book cover37

Clean Architecture

Robert C. Martin

4.2
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
Data Structures and Algorithms in Java book cover38

Data Structures and Algorithms in Java

Robert Sedgewick and Kevin Wayne

4.2
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
39

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

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
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
Pro Git book cover42

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
The Explosive Child: A New Approach for Understanding and Parenting Easily Frustrated, Chronically Inflexible Children book cover43

The Explosive Child: A New Approach for Understanding and Parenting Easily Frustrated, Chronically Inflexible Children

Ross W. Greene

4.2
Screaming, swearing, crying, hitting, kicking, spitting, biting...these are some of the challenging behaviors we see in kids who are having difficulty meeting our expectations. These behaviors often leave parents feeling frustrated, angry, overwhelmed, and desperate for answers. In this fully revised and updated book, Dr. Ross Greene helps you understand why and when your child does these things a
JavaScript: The Definitive Guide book cover44

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
Head First Java book cover45

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
Fluent Python: Clear, Concise, and Effective Programming book cover46

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,
Joel on Software book cover47

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.
48

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
49

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
Building Microservices: Designing Fine-Grained Systems book cover50

Building Microservices: Designing Fine-Grained Systems

Sam Newman

4.2
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
51

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.
Hackers & Painters: Big Ideas from the Computer Age book cover52

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
53

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
54

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
55

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
Mastering Regular Expressions book cover56

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
The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change book cover57

The Manager's Path: A Guide for Tech Leaders Navigating Growth and Change

Camille Fournier

4.1
Managing people is difficult wherever you work, but the tech industry as a whole is pretty bad at it. Tech companies in general lack the experience, tools, texts, and frameworks to do it well. And the handful of books that share tips and tricks of engineering management don t explain how to supervise employees in the face of growth and change.

In this book, author Camille Fournier takes you through
58

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

Michael T. Nygard

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

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
Compilers: Principles, Techniques, and Tools book cover60

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
HTML and CSS: Design and Build Websites book cover61

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
62

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
63

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--
64

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
The Art of Game Design: A Book of Lenses, Second Edition book cover65

The Art of Game Design: A Book of Lenses, Second Edition

Jesse Schell

4.1
Good game design happens when you view your game from as many perspectives as possible. Written by one of the world's top game designers, The Art of Game Design presents 100 plus sets of questions, or different lenses, for viewing a game�s design, encompassing diverse fields such as psychology, architecture, music, visual design, film, software engineering, theme park design, mathematics, puzzle d
Trapped in a Video Game: The Complete Series book cover66

Trapped in a Video Game: The Complete Series

Dustin Brady

4.1
Five books in one box! With nonstop action, huge plot twists, and tons of humor, this series will quickly have your 7- to 12-year-old video game fan begging for just one more chapter.

Getting sucked into a video game is not as much fun as you'd think. Sure, there are jetpacks, hover tanks, and infinite lives, but what happens when the game starts to turn on you? In this best-selling series, 12-year
Think Python: How to Think Like a Computer Scientist book cover67

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
68

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
Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14 book cover70

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
71

Programming in Scala: Updated for Scala 2.12

Martin Odersky, Lex Spoon, Bill Venners

4.1
Programming in Scala
72

Thinking in Java

Bruce Eckel

4.1
Soft Skills: The Software Developer's Life Manual book cover73

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
Advanced Programming in the UNIX Environment book cover74

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
75

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
76

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
77

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
78

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

79

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
Gödel, Escher, Bach: An Eternal Golden Braid book cover80

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
Programming Ruby 1.9 & 2.0 book cover81

Programming Ruby 1.9 & 2.0

Dave Thomas, Andy Hunt, et al.

4.1
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 Linux Programming Interface: A Linux and Unix System Programming Handbook book cover82

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

Michael Kerrisk

4.0
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
83

JavaScript Patterns

Stoyan Stefanov

4.0
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
The Legend of Zelda: Hyrule Historia book cover84

The Legend of Zelda: Hyrule Historia

Patrick Thorpe

4.0
Dark Horse Books and Nintendo team up to bring you The Legend of Zelda: Hyrule Historia, containing an unparalleled collection of historical information on The Legend of Zelda franchise. This handsome hardcover contains never-before-seen concept art, the full history of Hyrule, the official chronology of the games, and much more! Starting with an insightful introduction by the legendary producer a
85

Hacker's Delight

Henry S. Warren Jr.

4.0
Aiming to tell the dark secrets of computer arithmetic, this title is suitable for library developers, compiler writers, and lovers of elegant hacks.
87

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.0
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
The Legend of Zelda: Encyclopedia book cover88

The Legend of Zelda: Encyclopedia

Nintendo

4.0
This 320-page book is an exhaustive guide to The Legend of Zelda from the original The Legend of Zelda to Twilight Princess HD.

A comprehensive collection of enemies and items, potions to poes, an expansion of the lore touched upon in Hyrule Historia, concept art, screencaps, maps, main characters and how they relate, languages, and much, much more, including an exclusive interview with Series Prod
The Self-Taught Programmer: The Definitive Guide to Programming Professionally book cover89

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
90

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
C# in Depth book cover91

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
92

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
93

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
94

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
Purely Functional Data Structures book cover95

Purely Functional Data Structures

Chris Okasaki

4.0
Most books on data structures assume an imperative language such as C or C++. However, data structures for these languages do not always translate well to functional languages such as Standard ML, Haskell, or Scheme. This book describes data structures from the point of view of functional languages, with examples, and presents design techniques that allow programmers to develop their own functiona
The Linux Command Line, 2nd Edition: A Complete Introduction book cover96

The Linux Command Line, 2nd Edition: A Complete Introduction

William Shotts

4.0
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 (or command line). Along the way you'll learn the timeless skills handed down by generations of experienced, mou
97

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
99

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.
Practical Programming for Strength Training book cover100

Practical Programming for Strength Training

Mark Rippetoe, Lon Kilgore

4.0