The Pragmatic Bookshelf
By programmers for programmers
Sort by: Title | Release Date
Practical Vim
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 120 Vim recipes, you’ll quickly learn the editor’s core functionality and tackle your trickiest editing and writing tasks.
2012-11-15
Deploying with JRuby
Deploy using the JVM’s high performance while building your apps in the language you love. JRuby is a fast, scalable, and powerful JVM language with all the benefits of a traditional Ruby environment. See how to consolidate the many moving parts of an MRI-based Ruby deployment onto a single JVM process. You’ll learn how to port a Rails application to JRuby, get it into production, and keep it running.
2012-08-15
Deploying Rails
Today’s modern Rails applications have lots of moving parts. Make sure your next production deployment goes smoothly with this hands-on book, which guides you through the entire production process. You’ll set up scripts to install and configure all the software your servers need, including your application code. Once you’re in production, you’ll learn how to set up systems to monitor your application’s health, gather metrics so you can stop problems before they start, and fix things when they go wrong.
2012-07-15
iOS SDK Development
Welcome to the new state of the art development for iOS, with the radically overhauled Xcode 4 toolchain and iOS 5 SDK. With this book you’ll accelerate your development for iPhone, iPad and iPod Touch. You will learn the new tools like Storyboards, practice on new APIs like the Twitter framework and use the latest features of the Objective-C 2.0 programming language.
2012-06-29
Seven Databases in Seven Weeks
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.
2012-05-11
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.
2012-04-05
Rails Recipes
Thousands of developers have used the first edition of Rails Recipes to solve the hard problems. Now, five years later, it’s time for the Rails 3 edition of this trusted collection of solutions, completely revised by Rails master Chad Fowler.
2012-03-29
The Rails View
Working in the Rails View layer requires a breadth of knowledge and attention to detail unlike anywhere else in Rails. One wrong move can result in brittle, complex views that stop future development in its tracks. Break free from tangles of logic and markup in your views and implement your user interface cleanly and maintainably.
2012-03-23
The dRuby Book
Learn from legendary Japanese Ruby hacker Masatoshi Seki in this first English-language book on his own Distributed Ruby library. You’ll find out about distributed computing, advanced Ruby concepts and techniques, and the philosophy of the Ruby way—-straight from the source.
2012-03-20
Technical Blogging
Technical Blogging is the first book to specifically teach programmers, technical people, and technically-oriented entrepreneurs how to become successful bloggers. There is no magic to successful blogging; with this book you’ll learn the techniques to attract and keep a large audience of loyal, regular readers and leverage this popularity to achieve your goals.
2012-03-01
Build Awesome Command-Line Applications in Ruby
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.
- Check out What Makes an Awesome Command-Line App in the May issue of PragPub Magazine, as well as The Nine Facets of an Awesome Command-Line App on the author’s blog.
2012-03-01
tmux
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.
2012-02-29
Programming Your Home
Take control of your home! Programmatically interact with indoor and outdoor lighting, remotely monitor and take charge of your home’s security, react to changes in room lighting and temperature by autonomously opening and closing curtains, and much more. Learn how to program Android smartphones and Arduino microcontrollers to remotely manage your home’s environment. Step-by-step instructions tell you all you need to know about how to obtain, build, program, use, and extend these innovative services.
2012-02-20
The Developer's Code
You’re already a great coder, but awesome coding chops aren’t always enough to get you through your toughest projects. You need these 50+ nuggets of wisdom. Veteran programmers: reinvigorate your passion for developing web applications. New programmers: here’s the guidance you need to get started. With this book, you’ll think about your job in new and enlightened ways.
2012-02-20
The Cucumber Book
Your customers want rock-solid, bug-free software that does exactly what they expect it to do. Yet they can’t always articulate their ideas clearly enough for you to turn them into code. The Cucumber Book dives straight into the core of the problem: communication between people. Cucumber saves the day; it’s a testing, communication, and requirements tool – all rolled into one.
2012-01-27
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.
2012-01-01
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.
2011-12-16
Lean from the Trenches
You know the Agile and Lean development buzzwords, you’ve read the books. But when systems need a serious overhaul, you need to see how it works in real life, with real situations and people. Lean from the Trenches is all about actual practice. Every key point is illustrated with a photo or diagram, and anecdotes bring you inside the project as you discover why and how one organization modernized its workplace in record time.
2011-12-07
New Programmer's Survival Manual
It’s your first day on the new job. You’ve got the programming chops, you’re up on the latest tech, you’re sitting at your workstation… now what? New Programmer’s Survival Manual gives your career the jolt it needs to get going: essential industry skills to help you apply your raw programming talent and make a name for yourself. It’s a no-holds-barred look at what really goes on in the office—and how to not only survive, but thrive in your first job and beyond.
2011-12-01
Mac Kung Fu
Exploit secret settings and hidden apps, push built-in tools to the limit, radically personalize your Mac experience and tweak your system so it’s just right for you. Every one of these 300 quick and easy tips, tricks, hints, and hacks in Mac Kung Fu makes “it just works” even better. Become the ultimate Mac user, working faster, smarter, and simply have lots more fun with your Apple computer.
2011-11-18
Cutting an Agile Groove
You’ve struggled to bring agile practices to projects but have been frustrated by buzzword-heavy books and presentations that seem to have been written by academics. What you want is straight talk giving practical advice on the real problems that you face in leading or working in agile teams.
Cutting an Agile Groove is a series of videos by respected agile consultant David Hussman that shows you how to design an agile, lean process and deliver real value for your product or project—in plain English, with real-world examples.
2011-08-10
The SPDY Book
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. Please note this title is not eligible for further discounts or coupons.
2011-08-08
CoffeeScript
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.
2011-07-25
Programming Concurrency on the JVM
Stop dreading concurrency hassles and start reaping the pure power of modern multicore hardware. Learn how to avoid shared mutable state and how to write safe, elegant, explicit synchronization-free programs in Java or other JVM languages including Clojure, JRuby, Groovy, or Scala.
2011-07-25
iOS Recipes
Take your iPhone and iPad apps to the next level. You’ve seen cool features and tricks in other apps, but haven’t had the time to really look into how they’re done. We’ve got the answers for you. This book walks you through clean, reusable solutions to a wide variety of problems and patterns common to iOS development with Cocoa Touch and Objective-C. With these recipes in your arsenal, your next apps will be more polished and more maintainable than ever.
Written for and tested on iOS 4 and Xcode 4.
2011-07-07
Continuous Testing
Feedback. We’re always telling you that you need feedback, with a short feedback gap — the time it takes to get feedback on your decisions, your code, your designs. Well, what if you narrowed the feedback gap to near zero while coding? You’d have continuous testing, a powerful idea that lets you fix bugs while they’re still small and fresh.
Continuous Testing shows you how to use a combination of tests, tools, and techniques to immediately detect problems in code, before they spread.
2011-06-15
Designed for Use
Have you ever been angry at your computer or cell phone? This book is for designers, developers, and product managers who are charged with what sometimes seems like an impossible task: making sure products work the way your users expect them to. This book shows you how to design applications and websites that people will not only use, but will absolutely love.
2011-06-14
Exceptional Ruby
Writing code that works is hard. Writing code that handles unexpected errors and still works is really hard. Most of us learn by trial and error. This short book removes the uncertainty. With over 100 pages of content and dozens of working examples, you’ll learn everything from the mechanics of how exceptions work to how to design a robust failure management architecture for your app or library. Whether you are a Ruby novice or a seasoned veteran, Exceptional Ruby will help you write cleaner, more resilient Ruby code.
This book, available in PDF, mobi, and ePub formats, was entirely written and produced by the author. We are proud to be distributing it. Please note this title is not eligible for further discounts or coupons.
2011-05-01
Code in the Cloud
Join the next wave of Web 2.0 software development in the cloud! Cloud applications are the next big shift in application development: instead of building single-user applications to run on a personal computer, new applications are being built as multi-user services that run in data centers around the world. One of the most exciting new environments for building services in the cloud is Google’s AppEngine. AppEngine is a powerful, easy-to-use framework for developing cloud-based services. This book will teach you what you need to make the shift to cloud development using AppEngine.
2011-04-19
Test Driven Development for Embedded C
Still chasing bugs and watching your code deteriorate? Think TDD is only for desktop or web apps? It’s not: TDD is for you, the embedded C programmer. TDD helps you prevent defects and build software with a long useful life. This is the first book to teach the hows and whys of TDD for C programmers.
2011-04-06
Agile Web Development with Rails (4th edition)
Rails just keeps on changing. Rails 3 and Ruby 1.9 bring hundreds of improvements, including new APIs and substantial performance enhancements. The fourth edition of this award-winning classic has been reorganized and refocused so it’s more useful than ever before for developers new to Ruby and Rails.
Rails 3 is a major release—the changes aren’t just incremental, but structural. So we decided to follow suit. This book isn’t just a mild reworking of the previous edition to make it run with the new Rails. Instead, it’s a complete refactoring.
You’ll still find the Depot example at the front, but you’ll also find testing knitted right in. Gone are the long reference chapters—that’s what the web does best. Instead you’ll find more targeted information on all the aspects of Rails that you’ll need to be a successful Web developer.
eBook Now Updated for Rails 3.2
Rails 3.1 and Rails 3.2 introduce many user-facing changes, and this e-book release has been updated to match all the latest changes and new best practices in Rails 3.1 and Rails 3.2. This includes full support for Ruby 1.9.2 hash syntax; incorporation of the new Sprockets 2.0 Asset Pipeline, including SCSS and CoffeeScript; jQuery now being the default; reversible migrations; JSON response support; Rack::Cache, and much more.
Please note the Rails 3.2 updates are included only in the ebooks sold by us.
2011-03-31
Crafting Rails Applications
Rails 3 is a huge step forward. You can now easily extend the framework, change its behavior, and replace whole components to bend it to your will, all without messy hacks. This pioneering book is the first resource that deep dives into the new Rails 3 APIs and shows you how to use them to write better web applications and make your day-to-day work with Rails more productive.
Everything covered in this book is valid through at least Rails 3.1
2011-03-29
Rails Test Prescriptions
Rails Test Prescriptions is a comprehensive guide to testing Rails applications, covering Test-Driven Development from both a theoretical perspective (why to test) and from a practical perspective (how to test effectively). It covers the core Rails testing tools and procedures for Rails 2 and Rails 3, and introduces popular add-ons, including RSpec, Shoulda, Cucumber, Factory Girl, and Rcov.
2011-02-17
Using JRuby
Now you can bring the best of Ruby into the world of Java, with Using JRuby. Come to the source for the JRuby core team’s insights and insider tips. You’ll learn how to call Java objects seamlessly from Ruby, and deal with Java idioms such as interfaces and overloaded functions. Run Ruby code from Java, and make a Java program scriptable in Ruby. See how to compile Ruby into .class files that are callable from Java, Scala, Clojure, or any other JVM language.
2011-01-28
Agile in a Flash
The best agile book isn’t a book: Agile in a Flash is a unique deck of index cards that fit neatly in your pocket. You can tape them to the wall. Spread them out on your project table. Get stains on them over lunch. These cards are meant to be used, not just read.
2011-01-15
Arduino
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.
Please note the Arduino 1.0 updates are included only in the ebooks sold by us.
2011-01-10
HTML5 and CSS3
HTML5 and CSS3 are the future of web development, but you don’t have to wait to start using them. Even though the specification is still in development, many modern browsers and mobile devices already support HTML5 and CSS3. This book gets you up to speed on the new HTML5 elements and CSS3 features you can use right now, and backwards compatible solutions ensure that you don’t leave users of older browsers behind.
2010-12-29
The RSpec Book
Behaviour-Driven Development (BDD) gives you the best of Test Driven Development, Domain Driven Design, and Acceptance Test Driven Planning techniques, so you can create better software with self-documenting, executable tests that bring users and developers together with a common language.
Get the most out of BDD in Ruby with The RSpec Book, written by the lead developer of RSpec, David Chelimsky.
2010-12-02
Driving Technical Change
If you work with people, you need this book. Learn to read co-workers’ and users’ patterns of resistance and dismantle their objections. With these techniques and strategies you can master the art of evangelizing and help your organization adopt your solutions.
2010-11-09
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.
NEW: Part of the new Pragmatic Guide series
2010-11-01
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.
NEW: Part of the new Pragmatic Guide series
2010-11-01
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.
NEW: Part of the new Pragmatic Guide series
2010-11-01
Seven Languages in Seven Weeks
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-by-side. You’ll learn something new from each, and best of all, you’ll learn how to learn a language quickly.
2010-10-27
iPad Programming
It’s not an iPhone and it’s not a laptop: the iPad is a groundbreaking new device. You need to create true iPad apps to take advantage of all that is possible with the iPad. If you’re an experienced iPhone developer, iPad Programming will show you how to write these outstanding new apps while completely fitting your users’ expectation for this device.
Dr. Dobb’s review: “quite a bargain, given the smart and concise way the authors demonstrate iPad-specific features.” See the full review
2010-10-01
The Agile Samurai
Here are three simple truths about software development:
1. You can’t gather all the requirements up front.
2. The requirements you do gather will change.
3. There is always more to do than time and money will allow.
Those are the facts of life. But you can deal with those facts (and more) by becoming a fierce software-delivery professional, capable of dispatching the most dire of software projects and the toughest delivery schedules with ease and grace.
2010-09-15
Hello, Android (3rd edition)
Google’s Android is shaking up the mobile market in a big way. With Android, you can write programs that run on any compatible cell phone or tablet in the world. It’s a mobile platform you can’t afford not to learn, and this book gets you started. Hello, Android has been updated to Android 2.3.3, with revised code throughout to reflect this updated version. That means that the book is now up-to-date for tablets such as the Kindle Fire. All examples were tested for forwards and backwards compatibility on a variety of devices and versions of Android from 1.5 to 4.0. (Note: the Kindle Fire does not support home screen widgets or wallpaper, so those samples couldn’t be tested on the Fire.)
2010-07-13
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
2010-06-24
SQL Antipatterns
Bill Karwin has helped thousands of people write better SQL and build stronger relational databases. Now he’s sharing his collection of antipatterns—the most common errors he’s identified in those thousands of requests for help.
Most developers aren’t SQL experts, and most of the SQL that gets used is inefficient, hard to maintain, and sometimes just plain wrong. This book shows you all the common mistakes, and then leads you through the best fixes. What’s more, it shows you what’s behind these fixes, so you’ll learn a lot about relational databases along the way.
2010-06-17
ExpressionEngine 2
Whether you’re building a small site or a large corporate undertaking, ExpressionEngine is becoming the tool of choice. With this Quick-Start Guide, you’ll get hands-on experience with ExpressionEngine 2 by building a complete web site from start to finish. You’ll learn techniques and best practices for customizing and optimizing your sites, including working with new ExpressionEngine 2 features, templates, and site search.
2010-04-01
ExpressionEngine Techniques
Why work through common problems on your own when you can skip the trial and error and jump straight to a solution that works the first time? Learn the latest techniques the pros use to build full-featured websites with ExpressionEngine from Ryan Irelan, an ExpressionEngine guru. Each of these video tutorials teaches you how to solve a particular set of problems with ExpressionEngine, quickly and efficiently.
2010-03-09
Metaprogramming Ruby
As a Ruby programmer, you already know how much fun it is. Now see how to unleash its power, digging under the surface and exploring the language’s most advanced features: a collection of techniques and tricks known as metaprogramming. Once the domain of expert Rubyists, metaprogramming is now accessible to programmers of all levels—from beginner to expert. Metaprogramming Ruby explains metaprogramming concepts in a down-to-earth style and arms you with a practical toolbox that will help you write great Ruby code.
2010-02-01
Language Implementation Patterns
Learn to build configuration file readers, data readers, model-driven code generators, source-to-source translators, source analyzers, and interpreters. You don’t need a background in computer science—ANTLR creator Terence Parr demystifies language implementation by breaking it down into the most common design patterns. Pattern by pattern, you’ll learn the key skills you need to implement your own computer languages.
2009-12-28
Pomodoro Technique Illustrated
Do you ever look at the clock and wonder where the day went? You spent all this time at work and didn’t come close to getting everything done. Tomorrow, try something new. Use the Pomodoro Technique, originally developed by Francesco Cirillo, to work in focused sprints throughout the day. In Pomodoro Technique Illustrated, Staffan Nöteberg shows you how to organize your work to accomplish more in less time. There’s no need for expensive software or fancy planners. You can get started with nothing more than a piece of paper, a pencil, and a kitchen timer.
2009-11-10
Debug It!
Professional programmers develop a knack of unerringly zeroing in on the root cause of a bug. They can do that because they’ve written a lot of buggy code and then gained experience fixing it. This book captures all this experience—use it, and you’ll find you write fewer bugs, and the ones you do write will become easier to hunt down.
2009-11-04
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 you’ll learn Git in a different way: By not learning about Git itself. Instead, 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 Git so things begin to make more sense.
This screencast is for people who haven’t used Git yet and are thinking about it, and for people who have just started using Git, but are still in the “magic incantation” stage of learning. It’s a great introduction to source control for your manager, too! No prior experience with Git or source control systems is required.
2009-10-20
Agile Coaching
Discover how to coach your team to become more Agile. Agile Coaching de-mystifies agile practices—it’s a practical guide to creating strong agile teams. Packed with useful tips from practicing agile coaches Rachel Davies and Liz Sedley, this book gives you coaching tools that you can apply whether you are a project manager, a technical lead, or working in a software team.
2009-08-15
Manage Your Project Portfolio
Too many projects? Want to organize them and evaluate them without getting buried under a mountain of statistics? This book will help you collect all your work, decide which projects you should do first, second—and never. You’ll see how to tie your work to your organization’s mission and show your board, your managers, and your staff what you can accomplish and when. You’ll get a better view of the work you have, and learn how to make those difficult decisions, ensuring that all your strength is focused where it needs to be.
2009-08-05
Coding in Objective-C 2.0
Objective-C is the programming language for writing native iPhone and Mac applications. It’s also the language that Apple uses to build their own applications and frameworks. So, if you know Objective-C, you have a lot of power at your fingertips. But if you’re new to C or object-oriented programming, then Objective-C can seem a little awkward at first. These screencasts by Bill Dudney, an experienced Objective-C programmer, will help you quickly get up to speed on Objective-C 2.0 basics.
2009-07-12
Programming Scala
Scala is an exciting, modern, multi-paradigm language for the JVM. You can use it to write traditional, imperative, object-oriented code. But you can also leverage its higher level of abstraction to take full advantage of modern, multicore systems. Programming Scala will show you how to use this powerful functional programming language to create highly scalable, highly concurrent applications on the Java Platform.
2009-07-02
Modular Java
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.
2009-07-01
Using Map Kit
Using the new Map Kit framework available in iPhone 3.0, you can embed customized maps within your iPhone application. In this screencast you’ll learn how to build an iPhone application from scratch that displays a map of recent earthquakes, shows custom annotations with callouts, and automatically zooms to a region of interest.
2009-06-29
Land the Tech Job You Love
You’ve got the technical chops—the skills to get a great job doing what you love. Now it’s time to get down to the business of planning your job search, focusing your time and attention on the job leads that matter, and interviewing to wow your boss-to-be. Land the tech job you love.
Coding Tony: “The book gives very good tips on how to write a good résumé, and how to avoid clichés…I recommend the book, even if you aren’t looking for a job… for now..” See the full review
2009-06-02
The Passionate Programmer (2nd edition)
This book is about creating a remarkable career in software development. In most cases, remarkable careers don’t come by chance. They require thought, intention, action, and a willingness to change course when you’ve made mistakes. Most of us have been stumbling around letting our careers take us where they may. It’s time to take control. This revised and updated second edition lays out a strategy for planning and creating a radically successful life in software development.
2009-05-06
Programming Ruby 1.9 (3rd edition)
Ruby is the fastest growing and most exciting dynamic language out there. If you need to get working programs delivered fast, you should add Ruby to your toolbox.
This book is the only complete reference for Ruby 1.9, the very latest version of Ruby. (If you’re still using Ruby 1.8, you’ll want to check out the original PickAxe.)
2010 marks the 10th anniversary since the first edition of the PickAxe. We’re proud that throughout its history, we’ve continued to cover the latest version of Ruby.
2009-04-15
Practical Programming
Welcome to computer science in the 21st century. Did you ever wonder how computers represent DNA? How they can download a web page containing population data and analyze it to spot trends? Or how they can change the colors in a color photograph? If so, this book is for you. By the time you’re done, you’ll know how to do all of that and a lot more. And Python makes it easy and fun.
2009-04-01
Learn to Program (2nd edition)
For this new edition of the best-selling Learn to Program, Chris Pine has taken a good thing and made it even better. First, he used the feedback from hundreds of reader e-mails to update the content and make it even clearer. Second, he updated the examples in the book to use the latest stable version of Ruby, and also to use code that looks more like real-world Ruby code, so that people who have just learned to program will be more familiar with common Ruby techniques.
Not only does the Second Edition now include answers to all of the exercises, it includes them twice. First you’ll find the “how you could do it” answers, using the techniques you’ve learned up to that point in the book. Next you’ll see “how Chris Pine would do it”: answers using more advanced Ruby techniques, to whet your appetite as well as providing sort of a “Rosetta Stone” for more elegant solutions.
2009-04-01
Agile Web Development with Rails (3rd edition)
- This Third Edition covers Rails 2.x
- The Fourth Edition covers Rails 3.x, and is now available.
2009-03-01
Classy Web Development with Sinatra
Sinatra is a small Ruby web application framework that packs a big punch. It’s also a lot of fun! You can use Sinatra to write tiny, focused web applications and lightweight REST services very quickly. And sometimes a lean and mean web app is all you need. If you haven’t given Sinatra a look, now’s a great time to get a fresh perspective on web development. Learn how to get the most out of Sinatra from Adam Keys, an experienced Ruby and Sinatra developer.
2009-01-22
The Ruby Object Model and Metaprogramming
Metaprogramming lets you program more expressively. This makes your code easier to write and easier to maintain and extend. Learn both the hows and whys of metaprogramming Ruby from Dave Thomas, one of the most experienced Ruby programmers in the western world.
2008-12-26
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.
2008-12-17
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.
2008-12-06
Core Animation for Mac OS X and the iPhone
Have you seen Apple’s Front Row application and Cover Flow effects? Then you’ve seen Core Animation at work. It’s about making applications that give strong visual feedback through movement and morphing, rather than repainting panels. This comprehensive guide will get you up to speed quickly and take you into the depths of this new technology.
2008-10-15
Erlang in Practice
Learn how to write Erlang programs by sitting next to an experienced Erlang programmer as he builds a full-featured application from the ground up!
In these screencasts, Kevin Smith incrementally builds a distributed chat system using Erlang. You’ll learn first-hand how each aspect of the Erlang language fits together into a real-world application, starting with Erlang primitives and ending with an OTP application.
2008-10-03
Stripes
Tired of complicated Java web frameworks that just get in your way? Stripes is a lightweight, practical framework that lets you write lean and mean code without a bunch of XML configuration files. Stripes is designed to do a lot of the common work for you, while being flexible enough to adapt to your requirements. This book will show you how to use Stripes to its full potential, so that you can easily develop professional, full-featured web applications. As a bonus, you’ll also get expert advice from the creator of Stripes, Tim Fennell.
2008-10-01
Pragmatic Thinking and Learning
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. You’ll learn new tricks and tips to learn more, faster, and retain more of what you learn.
You need a pragmatic approach to thinking and learning. You need to Refactor Your Wetware.
2008-09-15
Creating a Compelling User Interface with Core Animation
Core Animation adds that “wow!” factor to your Cocoa and iPhone applications. It’s not just cool, it also improves the user experience to make your application a cut above the rest. Learn how to create an animated and cinematic user interface with Core Animation from Bill Dudney, an experienced Cocoa developer.
2008-09-05
Scripted GUI Testing with Ruby
If you need to automatically test a user interface, this book is for you. Whether it’s Windows, a Java platform (including Mac, Linux, and others) or a web app, you’ll see how to test it reliably and repeatably.
Many automated test frameworks promise the world and deliver nothing but headaches. Fortunately, you’ve got a secret weapon: Ruby. Ruby lets you build up a solution to fit your problem, rather than forcing your problem to fit into someone else’s idea of testing.
This book is for people who want to get their hands dirty on examples from the real world—and who know that testing can be a joy when the tools don’t get in the way. It starts with the mechanics of simulating button pushes and keystrokes, and builds up to writing clear code, organizing tests, and beyond.
Updated eBook
This new revision refreshes the RSpec examples for version 2.x. It also contains an updated section on narrative-style tests, based on Cucumber 1.x. Ian has tweaked code samples throughout the book for compatibility with Ruby 1.8.7, Ruby 1.9.2, or JRuby 1.6.5, based on what the underlying libraries support.
2008-08-05
Mastering Dojo
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.
2008-06-01
Using memcached
memcached is a high-performance, distributed memory object caching system, used to speed up dynamic web applications.
memcached was developed to enhance the speed of LiveJournal.com’s one million users with 20 million dynamic page views per day, providing faster page load times for users and better resource utilization.
2008-05-16
Programming Groovy
Groovy brings you the best of both worlds: a flexible, highly productive, agile, dynamic language that runs on the rich framework of the Java Platform. Groovy preserves the Java semantics and extends the JDK to give you true dynamic language capabilities⎯programming in Groovy feels like you’re using an augmented Java. Programming Groovy will help you learn and take advantage of the latest version of this rich dynamic language, so you can be a more productive Java Platform developer.
2008-04-01
ThoughtWorks Anthology
This collection of essays covers a wide range of issues facing software developers today. In this book, you’ll find a treasure trove of pragmatic advice to improve the effectiveness of your development efforts.
You’ll find essays on testing, controlling a project, the creation of domain specific languages, issues of build and deploy, programming languages, techniques for software development, and more!
2008-03-15
Getting Started with XQuery
If you’re thinking of XML as hard-to-read text files, it’s time to start thinking in terms of XML as content.
This Friday will show you what XQuery is, how it’s different from other approaches, the new possibilities it opens up—and how to harness its power,
2008-03-06
Groovy Recipes
If you’re a busy Java professional who needs quick solutions to everyday problems, then Groovy Recipes is for you. The Groovy language and Grails web framework give you seamless integration with your legacy Java code while adding the flexibility and dynamism of a scripting language and giving you modern, agile, time-saving techniques. Groovy allows you to write code the way you always thought you should—you’ll never look at Java the same way again.
2008-02-20
Design Accessible Web Sites
“Accessibility” has a reputation of being dull, dry, and unfriendly toward graphic design. But there is a better way: well-styled semantic markup that lets you provide the best possible results for all of your users. This book will help you provide images, video, Flash and PDF in an accessible way that looks great to your sighted users, but is still accessible to all users.
2007-12-01
Prototype and script.aculo.us
Tired of getting swamped in the nitty-gritty of cross-browser, Web 2.0-grade JavaScript? Get back in the game with Prototype and script.aculo.us, two extremely popular JavaScript libraries, that make it a walk in the park. Be it AJAX, drag and drop, auto-completion, advanced visual effects, or many other great features, all you need is to write one or two lines of script that look so good they could almost pass for Ruby code!
2007-12-01
GIS for Web Developers
There is a hidden revolution going on: geography is moving from niche to the mainstream. GIS for Web Developers introduces Geographic Information Systems (GIS) in simple terms and demonstrates hands-on uses. With this book, you’ll explore popular websites like maps.google.com, see the technologies they use, and learn how to create your own. Written with the usual Pragmatic Bookshelf humor and real-world experience, GIS for Web Developers makes geographic programming concepts accessible to the common developer.
2007-10-01
Pragmatic Unit Testing in C# with NUnit (2nd edition)
Pragmatic programmers use feedback to drive their development and personal processes. The most valuable feedback you can get while coding comes from unit testing. Now in it’s second edition, Pragmatic Unit Testing in C# with NUnit, 2nd Ed. will show you how to do software unit testing, of course, but more importantly will show you what to test.
For various technical reasons, the eBook version is a PDF: epub and mobi versions of this title will NOT be available.
2007-08-15
A Peek at Computer Electronics
Are you a programmer or computer enthusiast? Do you feel comfortable with methods, functions, and variables? Do you wish you knew more about how the computer made it all work? Now you can. From basic electronics to advanced computer hardware, you’ll learn the magic behind the gear that makes it all run.
If you’re into tinkering, or ever thought about it, this book explains the basics of how it all works
2007-08-01
Programming Erlang
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.
2007-07-01
Manage It!
![]() |
This book is a reality-based guide for modern projects. You’ll learn how to recognize your project’s potholes and ruts, and determine the best way to fix problems—without causing more problems.
NEW: Watch an in-depth interview with author Johanna Rothman And congratulations to Johanna for winning a 2008 Jolt Productivity Award. |
2007-05-01
The Definitive ANTLR Reference
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!
2007-05-01
Release It!
![]() |
“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. |
2007-03-01
TextMate
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.
2007-01-01
Everyday Scripting with Ruby
Are you a tester who spends more time manually creating complex test data than using it? A business analyst who seemingly went to college all those years so you can spend your days copying data from reports into spreadsheets? A programmer who can’t finish each day’s task without having to scan through version control system output, looking for the file you want?
If so, you’re wasting that computer on your desk. Offload the drudgery to where it belongs, and free yourself to do what you should be doing: thinking. All you need is a scripting language (free!), this book (cheap!), and the dedication to work through the examples and exercises.
2007-01-01
Google Web Toolkit
Google Web Toolkit unifies client and server code into a single application written in one language: Java. GWT lets you create a web application in much the same way as you would create a Swing application—creating visual components, setting up event handlers, debugging, and so forth—all within a familiar IDE.
Last updated for GWT 1.2.22 on November 27, 2006
2006-08-01
Agile Retrospectives
See how to mine the experience of your software development team continually throughout the life of the project. The tools and recipes in this book will help you uncover and solve hidden (and not-so-hidden) problems with your technology, your methodology, and those difficult “people issues” on your team.
2006-07-01
Interface Oriented Design
Learn by pragmatic example how to create effective designs composed of interfaces to objects, components and services.
You’ll learn what polymorphism and encapsulation really mean, and how to use these ideas more effectively. See how to create better interfaces using agile development techniques, and learn the subtle differences between implementing an interface and inheriting an implementation. Take a fresh, modern view of Design By Contract and class responsibilities. Understand the basis of a service-oriented architecture, including stateful versus stateless interfaces, procedural versus document models, and synchronous versus asynchronous invocations.
2006-06-01
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
2006-05-01
Google Maps API (2nd edition)
This is the second edition of this Friday, which has been rewritten to use the Google Maps V2 API.
2006-05-01
Practices of an Agile Developer
Want to be a better developer? This book collects the personal habits, ideas, and approaches of successful agile software developers and presents them in a series of short, easy-to-digest tips.
You’ll learn how to improve your software development process, see what real agile practices feel like, avoid the common temptations that kill projects, and keep agile practices in balance.
2006-04-01
Behind Closed Doors
Great management is difficult to see as it occurs. Great management happens in one-on-one meetings and with other managers—all in private. It’s hard to learn management by example when you can’t see it.
Find out what goes on Behind Closed Doors and see how a skilled manager turns around a tricky management situation in seven weeks. You’ll learn how to provide and use feedback effectively, and become a better coach and mentor peers and team members. As you begin to build a cohesive, “jelled” team you’ll learn how to use your influence across the organization and make better choices daily to survive and thrive.
2005-09-01
Ship It!
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.
2005-06-01
Data Crunching
Learn how to approach real-world legacy data conversion problems, see which programming languages are better at data-handling tasks, design, build, and test programs for searching log files, converting data sources, configuring other programs, and more!
2005-04-01
Programming Ruby (2nd edition)
The Pickaxe book, named for the tool on the cover, is the definitive reference to Ruby, a highly-regarded, fully object-oriented programming language. This Second Edition has more than 200 pages of new content, and substantial enhancements to the original, covering all the new and improved language features of Ruby 1.8 and standard library modules.
What Version of Ruby are You Using?
Ruby is in a period of transition. 2009 saw the release of Ruby 1.9.1, the next generation of the language. Ruby 1.9 has many enhancements and new features that make it the Ruby of choice for new projects. If you want to use Ruby 1.9, then check out our new book Programming Ruby 1.9.
Alternatively, if you want to continue to use Ruby 1.8, then use the book on this page.
For various technical reasons, the eBook version is a PDF: epub and mobi versions of this title will NOT be available.
2004-10-01
Pragmatic Project Automation
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.
2004-07-01










































































































