Sort by: Title | Release Date

Cover Image For Seven Concurrency Models in Seven Weeks...

Seven Concurrency Models in Seven Weeks: When Threads Unravel

Your software needs to leverage multiple cores, handle thousands of users and terabytes of data, and continue working in the face of both hardware and software failure. Concurrency and parallelism are the keys, and Seven Concurrency Models in Seven Weeks equips you for this new world. See how emerging technologies such as actors and functional programming address issues with traditional threads and locks development. Learn how to exploit the parallelism in your computer’s GPU and leverage clusters of machines with MapReduce and Stream Processing. And do it all with the confidence that comes from using tools that help you write crystal clear, high-quality code.

Bonus Chapter

Cover Image For Seven Web Frameworks in Seven Weeks...

Seven Web Frameworks in Seven Weeks: Adventures in Better Web Apps

Whether you need a new tool or just inspiration, Seven Web Frameworks in Seven Weeks explores modern options, giving you a taste of each with ideas that will help you create better apps. You’ll see frameworks that leverage modern programming languages, employ unique architectures, live client-side instead of server-side, or embrace type systems. You’ll see everything from familiar Ruby and JavaScript to the more exotic Erlang, Haskell, and Clojure.

Cover Image For Build Awesome Command-Line Applications in Ruby 2...

Build Awesome Command-Line Applications in Ruby 2: Control Your Computer, Simplify Your Life

Speak directly to your system. With its simple commands, flags, and parameters, a well-formed command-line application is the quickest way to automate a backup, a build, or a deployment and simplify your life. With this book, you’ll learn specific ways to write command-line applications that are easy to use, deploy, and maintain, using a set of clear best practices and the Ruby programming language. This book is designed to make any programmer or system administrator more productive in their job. This is updated for Ruby 2.

Build Awesome Command-Line Applications for Ruby 1.9 is available here

Cover Image For HTML5 and CSS3...

HTML5 and CSS3 (2nd edition): Level Up with Today's Web Technologies

HTML5 and CSS3 are more than just buzzwords—they’re the foundation for today’s web applications. This book gets you up to speed on the HTML5 elements and CSS3 features you can use right now in your current projects, with backwards compatible solutions that ensure that you don’t leave users of older browsers behind. This new edition covers even more new features, including CSS animations, IndexedDB, and client-side validations.

Click Watch Me for a free screencast on Web Workers.

Cover Image For Programming Erlang...

Programming Erlang (2nd edition)

A multi-user game, web site, cloud application, or networked database can have thousands of users all interacting at the same time. You need a powerful, industrial-strength tool to handle the really hard problems inherent in parallel, concurrent environments. You need Erlang. In this second edition of the bestselling Programming Erlang, you’ll learn how to write parallel programs that scale effortlessly on multicore systems.


“A gem; a sensible, practical introduction to functional programming.”

—Gilad Bracha – Co-author of the Java language and Java Virtual Machine specifications, creator of the Newspeak language, member of the Dart language team

Cover Image For The Definitive ANTLR 4 Reference...

The Definitive ANTLR 4 Reference

Programmers run into parsing problems all the time. Whether it’s a data format like JSON, a network protocol like SMTP, a server configuration file for Apache, a PostScript/PDF file, or a simple spreadsheet macro language—ANTLR v4 and this book will demystify the process. ANTLR v4 has been rewritten from scratch to make it easier than ever to build parsers and the language applications built on top. This completely rewritten new edition of the bestselling Definitive ANTLR Reference shows you how to take advantage of these new features.

Watch a lecture by Dr. Parr

Watch a video about the book


“Parr’s clear writing and lighthearted style make it a pleasure to learn the practical details of building language processors.”

Dan Bornstein – Designer of the Dalvik VM for Android

“ANTLR is an exceptionally powerful and flexible tool for parsing formal languages. At Twitter, we use it exclusively for query parsing in our search engine. Our grammars are clean and concise and the generated code is efficient and stable. This book is our go-to reference for ANTLR v4—engaging writing, clear descriptions and practical examples all in one place.”

Samuel Luckenbill – Senior Manager of Search Infrastructure – Twitter, Inc.

Cover Image For The ThoughtWorks Anthology, Volume 2...

The ThoughtWorks Anthology, Volume 2: More Essays on Software Technology and Innovation

When you hit a rough spot in software development, it’s nice to know that someone has been there before. The domain experts at ThoughtWorks share what they’ve learned in this anthology, bringing together the best field-tested insights in IT and software development. You’ll benefit from their experience in areas from testing to information visualization, from object oriented to functional programming, from incremental development to driving innovation in delivery. You’ll find yourself referring to this collection of solved problems whenever you need an expert’s insight.

Cover Image For Practical Vim...

Practical Vim: Edit Text at the Speed of Thought

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. In more than 100 Vim tips, you’ll quickly learn the editor’s core functionality and tackle your trickiest editing and writing tasks.

Cover Image For Hands-on Backbone.js...

Hands-on Backbone.js

With a nearly endless stream of success stories, blog posts, add-ons and frameworks built on top of Backbone.js, you don’t need another set of marketing materials to tell you why you should be working with Backbone.js. What you need is a way to get started quickly – to get up to speed with Backbone’s components, learning how to orchestrate them to create rich, interactive applications in a browser. This series of screencasts from Backbone.js expert Derick Bailey, will teach you what you need to know in a straight-to-the-point, hands-on way to building single page applications for today’s modern web.

Cover Image For Dart for Hipsters...

Dart for Hipsters

Psst! You’re not stuck with JavaScript anymore. Dart for Hipsters teaches you the fastest way possible: with real code and real projects starting on page 1. The unabashed goal of Dart is to make programming for the Web simpler, faster, and more powerful. And Dart for Hipsters is the fast-paced, most thorough way to learn it. You’ll explore the ins and outs of Dart by writing a simple application that grows in complexity from modest beginnings to a separate library that fully leverages the power of Dart. Caution: after reading you may develop an intense attachment to structured code and skinny jeans.

Dart 1.1 has arrived and Dart for Hipsters has you covered! Every chapter has been painstakingly reviewed and updated to work with the latest version of this exciting new language. But don’t worry, the book still retains the quick dive approach to writing useful code starting on page 1. It also continues to explore the language by refactoring an application to make the most effective use of Dart’s myriad of features: OOP, real libraries and packages, testing, and so much more! Along the way, we’ll cover everything you need to know about writing beautiful, maintainable application code that just works™ in all modern browsers.

Cover Image For Working with Unix Processes...

Working with Unix Processes

Take advantage of system programming techniques without toiling away in C. If you program for the web, you might be missing some fundamentals in the name of getting stuff working. Now you can fill that gap. In Working With Unix Processes, you’ll reuse decades of battle-tested, highly optimized, and proven techniques to put your system to work for you.

This book, available in PDF, mobi, and ePub formats, was entirely written and produced by the author. We are proud to be distributing it.

Cover Image For Seven Databases in Seven Weeks...

Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement

Data is getting bigger and more complex by the day, and so are your choices in handling it. From traditional RDBMS to newer NoSQL approaches, Seven Databases in Seven Weeks takes you on a tour of some of the hottest open source databases today. In the tradition of Bruce A. Tate’s Seven Languages in Seven Weeks, this book goes beyond your basic tutorial to explore the essential concepts at the core of each technology.

Cover Image For Programming Clojure...

Programming Clojure (2nd edition)

If you want to keep up with the significant changes in this important language, you need the second edition of Programming Clojure. Stu and Aaron describe the modifications to the numerics system in Clojure 1.3, explain new Clojure concepts such as Protocols and Datatypes, and teach you how to think in Clojure.

Cover Image For tmux...

tmux: Productive Mouse-Free Development

Your mouse is slowing you down. The time you spend context switching between your editor and your consoles eats away at your productivity. Take control of your environment with tmux, a terminal multiplexer that you can tailor to your workflow. Learn how to customize, script, and leverage tmux’s unique abilities and keep your fingers on your keyboard’s home row.

Cover Image For Web Development Recipes...

Web Development Recipes

Modern web development takes more than just HTML and CSS with a little JavaScript mixed in. Clients want more responsive sites with faster interfaces that work on multiple devices, and you need the latest tools and techniques to make that happen. This book gives you more than 40 concise, tried-and-true solutions to today’s web development problems, and introduces new workflows that will expand your skillset.

Paperback list price normally $35.00, now on sale for $9.95 while supplies last.

Cover Image For Pragmatic Guide to Sass...

Pragmatic Guide to Sass

CSS is fundamental to the web, but it’s a basic language and lacks many features. Sass is just like CSS, but with a whole lot of extra power so you can get more done, more quickly. Build better web pages today with Pragmatic Guide to Sass. These concise, easy-to-digest tips and techniques are the shortcuts experienced CSS developers need to start developing in Sass today.

Paperback list price normally $25.00, now on sale for $9.95 while supplies last.

Cover Image For The SPDY Book...

The SPDY Book: Making Websites Fly

Building high performance websites is hard—let’s go shopping! Better yet, let’s take the best ideas from the past 10 years on how to improve HTTP and wrap them up in a brand new protocol named SPDY. In The SPDY Book, you will learn all of the secrets behind this new protocol from Google. Compression, multiplexing, writing directly to the browser’s cache are not only possible with SPDY, but easy. Google is already using it in production on all of their sites to make their services even faster. Why shouldn’t your websites do the same?

This book, available in PDF, mobi, and ePub formats, was entirely written and produced by the author. We are proud to be distributing it.

Cover Image For CoffeeScript...

CoffeeScript: Accelerated JavaScript Development

CoffeeScript is JavaScript done right. It provides all of JavaScript’s functionality wrapped in a cleaner, more succinct syntax. In the first book on this exciting new language, CoffeeScript guru Trevor Burnham shows you how to hold onto all the power and flexibility of JavaScript while writing clearer, cleaner, and safer code.

Cover Image For Arduino...

Arduino: A Quick-Start Guide

Arduino is an open-source platform that makes DIY electronics projects easier than ever. Even if you have no electronics experience, you’ll be creating your first gadgets within a few minutes. Step-by-step instructions show you how to build a universal remote, a motion-sensing game controller, and many other fun, useful projects. This book has now been updated for Arduino 1.0, with revised code, examples, and screenshots throughout. We’ve changed all the book’s examples and added new examples showing how to use the Arduino IDE’s new features.

Cover Image For Pragmatic Guide to Git...

Pragmatic Guide to Git

Need to learn how to wrap your head around Git, but don’t need a lot of hand holding? Grab this book if you’re new to Git, not to the world of programming. Git tasks displayed on two-page spreads provide all the context you need, without the extra fluff.

Part of the Pragmatic Guide series

Cover Image For Pragmatic Guide to JavaScript...

Pragmatic Guide to JavaScript

JavaScript is everywhere. It’s a key component of today’s Web—a powerful, dynamic language with a rich ecosystem of professional-grade development tools, infrastructures, frameworks, and toolkits. This book will get you up to speed quickly and painlessly with the 35 key JavaScript tasks you need to know.

Part of the Pragmatic Guide series

Cover Image For Pragmatic Guide to Subversion...

Pragmatic Guide to Subversion

Subversion is the most popular open-source version control system on the planet. Development teams-big and small, enterprise and open source-use this fast, feature-rich tool daily. Pragmatic Guide to Subversion presents the 48 essential tasks you need to know. It’s your shortcut to the Subversion master’s recommended set of best practices. With this book, you can get to the good parts quickly, and be more productive and effective.

Part of the Pragmatic Guide series

Paperback list price normally $25.00, now on sale for $9.95 while supplies last.

Cover Image For Test Driven Development...

Test Driven Development

Test-driven development (TDD) is a programming technique that reverses the usual sequence of coding and testing. By writing tests just in advance of the code needed to satisfy them, programmers:

  • Work with confidence
  • Work on a series of achievable steps instead of tackling a big problem all at once
  • Ensure that software design meets the need of the actual code
  • Leave behind a suite of tests to help preserve the integrity of the code

Note: Although the ideas aren’t language specific the author does use Java in the examples.

Cover Image For Source Control Made Easy...

Source Control Made Easy

Git has significantly changed the way teams develop software. Its distributed nature and lightweight branching and merging have made it possible for developers to massage their code bases in ways they couldn’t have imagined before. However, Git has a reputation for being hard to learn. And when folks transition to Git, they often settle for using a handful of commands and treat Git just like their other source control system. But because of its different approach to source control issues, many of the techniques and terminology we have learned in other source control systems do not translate cleanly when using Git. To begin to use Git effectively, you need to understand the underlying concepts.

In this 49-minute screencast, Jim Weirich takes you on a journey of how you might design and build a source control system from scratch. Along the way you’ll gain a deeper understanding of the first principles behind systems like Git, so things begin to make more sense.

This screencast is a great introduction to the principles of source control, for developers and managers alike! No prior experience with Git or other source control systems is required.

Please Note: Jim passed away in February, 2014. The Pragmatic Programmers are donating 100% of the purchase price of this screencast to Jim’s family (excluding any tax charged which instead goes to the state).

Cover Image For Modular Java...

Modular Java: Creating Flexible Applications with OSGi and Spring

Attack complexity in your Java applications using Modular Java. This pragmatic guide introduces you to OSGi and Spring Dynamic Modules, two of the most compelling frameworks for Java modularization. Driven by real-world examples, this book will equip you with the know-how you need to develop Java applications that are composed of smaller, loosely coupled, highly cohesive modules.


This second reprinting of Modular Java has been revised to include updated information on OSGi Blueprint Services. It also details Pax-Runner’s new profiles feature that makes loading an OSGi runtime with bundles even easier, along with errata fixes and updates to bring the book up to date with current versions of the tools used.

Cover Image For Pragmatic Version Control Using Git...

Pragmatic Version Control Using Git

There’s a change in the air. High-profile projects such as the Linux Kernel, Mozilla, Gnome, and Ruby on Rails are now using Distributed Version Control Systems (DVCS) instead of the old stand-bys of CVS or Subversion.

Git is a modern, fast DVCS. But understanding how it fits into your development can be a daunting task without an introduction to the new concepts. Whether you’re just starting out as a professional programmer or are an old hand, this book will get you started using Git in this new distributed world.

Cover Image For Insider Guide to GitHub...

Insider Guide to GitHub

GitHub is where the action’s at: you can host your public and private projects there, use it to collaborate on projects in a truly distributed way, and expand your social coding network. But to really get the most out of this great resource, you need an experienced guide to show you the ropes. Learn how the pros use GitHub from Scott Chacon, a long-time Git user and GitHub insider.

Cover Image For Mastering Dojo...

Mastering Dojo: JavaScript and Ajax Tools for Great Web Experiences

Imagine a true thin-client web application environment, with no browser incompatibilities, no plugins, and an interface that’s closer to a desktop app. You can have it all, today. Welcome to The Dojo Toolkit.

Mastering Dojo walks you through the whole range of modern web programming problems, from bringing simple web pages to life with widgets and animation, to designing and building an enterprise-class, single-page Rich Internet Application (RIA).

Are your web pages becoming more and more complex, with hundreds of lines of sprawling JavaScript as clients demand modern Ajax designs? Or maybe you’re about to enter the new world of single-page, Rich Internet Applications? Dojo is the unified toolkit that you need to get the job done.

VERSIONS: Applicable for Dojo Versions 1.1 to 1.7. Versions 1.2 onward contain additional widgets, experimental api’s and bugfixes. Please see the Dojorelease notes for detailed information.

Paperback list price normally $38.95, now on sale for $9.95 while supplies last.

Cover Image For Programming Erlang...

Programming Erlang: Software for a Concurrent World

Learn how to write truly concurrent programs—programs that run on dozens or even hundreds of local and remote processors. See how to write high reliability applications—even in the face of network and hardware failure—using the Erlang programming language.

Cover Image For The Definitive ANTLR Reference...

The Definitive ANTLR Reference: Building Domain-Specific Languages

ANTLR v3 is the most powerful, easy-to-use parser generator built to date, and represents the culmination of more than 15 years of research by Terence Parr. This book is the essential reference guide to using this completely rebuilt version of ANTLR, with its amazing new LL(*) parsing technology, tree construction facilities, StringTemplate code generation template engine, and sophisticated ANTLRWorks GUI development environment. Learn to use ANTLR directly from the author!

This book covers ANTLR 3. Please see the new edition, The Definitive ANTLR 4 Reference, which covers ANTLR 4.

Cover Image For Release It!...

Release It!: Design and Deploy Production-Ready Software

Jolt Productivity award “Feature complete” is not the same as “production ready.”

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 survive 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 be on call at 3AM for the rest of your life, this book will help you.

Cover Image For TextMate...

TextMate: Power Editing for the Mac

TextMate is a powerful tool for programmers, web designers, and anyone else who regularly needs to work with text files on Mac OS X. TextMate focuses on pragmatic automation, which means it will save you time—time that’s always in short supply. See how your lowly text editor can become a hard working member of your staff.

Cover Image For Pragmatic Version Control using Subversion...

Pragmatic Version Control using Subversion (2nd edition)

Revised content to reflect all the major changes to Subversion 1.3 New chapter on Subversion’s optional file locking to help you manage unmergeable binary files New sections covering path-based security for both the svnserve and Apache networking servers New advanced topics chapter covering programmatic access to Subversion and advanced repository management.

Cover Image For Ship It!...

Ship It!: A Practical Guide to Successful Software Projects

Many software projects run into trouble, and many never ship at all. Others run like well-oiled machines. This book shows you the basics of how to get your project well on the road to success.

Ship It! bucks current fashion trends and marketing hype; instead, you’ll find page after page of solid advice, all tried and tested in the real world: a collection of tips that show you what tools a successful team has to use, and how to use them well. You’ll get quick, easy-to-follow advice on modern techniques and when they should be applied.

Paperback list price normally $29.95, now on sale for $9.95 while supplies last.

Cover Image For Pragmatic Project Automation...

Pragmatic Project Automation: How to Build, Deploy, and Monitor Java Applications

Pragmatic Project Automation shows you how to improve the consistency and repeatability of your project’s procedures using automation to reduce risk and errors.

Simply put, we’re going to put this thing called a computer to work for you doing the mundane (but important) project stuff. That means you’ll have more time and energy to do the really exciting—and difficult—stuff, like writing quality code.