Start reading The Pragmatic Programmer: From Journeyman to Master on the free Kindle Reading App or on your Kindle in under a minute. Don't have a Kindle? Get your Kindle here.
Programming Books C Java PHP Python Learn more Browse Programming Books
This title is not currently available for purchase
Sorry, this item is not available in
Image not available for
Image not available

The Pragmatic Programmer: From Journeyman to Master [Kindle Edition]

Andrew Hunt , David Thomas
4.5 out of 5 stars  See all reviews (274 customer reviews)

Pricing information not available.

Free Kindle Reading App Anybody can read Kindle books—even without a Kindle device—with the FREE Kindle app for smartphones, tablets and computers.

To get the free app, enter your email address or mobile phone number.


Amazon Price New from Used from
Kindle Edition $24.99  
Paperback $34.16  

Book Description

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 for keeping your code flexible and easy to adapt and reuse. Read this book, and you'll learn how to

  • Fight software rot;
  • Avoid the trap of duplicating knowledge;
  • Write flexible, dynamic, and adaptable code;
  • Avoid programming by coincidence;
  • Bullet-proof your code with contracts, assertions, and exceptions;
  • Capture real requirements;
  • Test ruthlessly and effectively;
  • Delight your users;
  • Build teams of pragmatic programmers; and
  • Make your developments more precise with automation.

Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development. Whether you're a new coder, an experienced programmer, or a manager responsible for software projects, use these lessons daily, and you'll quickly see improvements in personal productivity, accuracy, and job satisfaction. You'll learn skills and develop habits and attitudes that form the foundation for long-term success in your career. You'll become a Pragmatic Programmer.

Editorial Reviews Review

Programmers are craftspeople trained to use a certain set of tools (editors, object managers, version trackers) to generate a certain kind of product (programs) that will operate in some environment (operating systems on hardware assemblies). Like any other craft, computer programming has spawned a body of wisdom, most of which isn't taught at universities or in certification classes. Most programmers arrive at the so-called tricks of the trade over time, through independent experimentation. In The Pragmatic Programmer, Andrew Hunt and David Thomas codify many of the truths they've discovered during their respective careers as designers of software and writers of code.

Some of the authors' nuggets of pragmatism are concrete, and the path to their implementation is clear. They advise readers to learn one text editor, for example, and use it for everything. They also recommend the use of version-tracking software for even the smallest projects, and promote the merits of learning regular expression syntax and a text-manipulation language. Other (perhaps more valuable) advice is more light-hearted. In the debugging section, it is noted that, "if you see hoof prints think horses, not zebras." That is, suspect everything, but start looking for problems in the most obvious places. There are recommendations for making estimates of time and expense, and for integrating testing into the development process. You'll want a copy of The Pragmatic Programmer for two reasons: it displays your own accumulated wisdom more cleanly than you ever bothered to state it, and it introduces you to methods of work that you may not yet have considered. Working programmers will enjoy this book. --David Wall

Topics covered: A useful approach to software design and construction that allows for efficient, profitable development of high-quality products. Elements of the approach include specification development, customer relations, team management, design practices, development tools, and testing procedures. This approach is presented with the help of anecdotes and technical problems.

From the Publisher

As a reviewer I got an early opportunity to read the book you are holding. It was great, even in draft form. Dave Thomas and Andy Hunt have something to say, and they know how to say it. I saw what they were doing and I knew it would work. I asked to write this foreword so that I could explain why.

Simply put, this book tells you how to program in a way that you can follow. You wouldn't think that that would be a hard thing to do, but it is. Why? For one thing, not all programming books are written by programmers. Many are compiled by language designers, or the journalists who work with them to promote their creations. Those books tell you how to talk in a programming language---which is certainly important, but that is only a small part of what a programmer does.

What does a programmer do besides talk in programming language? Well, that is a deeper issue. Most programmers would have trouble explaining what they do. Programming is a job filled with details, and keeping track of those details requires focus. Hours drift by and the code appears. You look up and there are all of those statements. If you don't think carefully, you might think that programming is just typing statements in a programming language. You would be wrong, of course, but you wouldn't be able to tell by looking around the programming section of the bookstore.

In The Pragmatic Programmer Dave and Andy tell us how to program in a way that we can follow. How did they get so smart? Aren't they just as focused on details as other programmers? The answer is that they paid attention to what they were doing while they were doing it---and then they tried to do it better.

Imagine that you are sitting in a meeting. Maybe you are thinking that the meeting could go on forever and that you would rather be programming. Dave and Andy would be thinking about why they were having the meeting, and wondering if there is something else they could do that would take the place of the meeting, and deciding if that something could be automated so that the work of the meeting just happens in the future. Then they would do it.

That is just the way Dave and Andy think. That meeting wasn't something keeping them from programming. It was programming. And it was programming that could be improved. I know they think this way because it is tip number two: Think About Your Work.

So imagine that these guys are thinking this way for a few years. Pretty soon they would have a collection of solutions. Now imagine them using their solutions in their work for a few more years, and discarding the ones that are too hard or don't always produce results. Well, that approach just about defines pragmatic. Now imagine them taking a year or two more to write their solutions down. You might think, That information would be a gold mine. And you would be right.

The authors tell us how they program. And they tell us in a way that we can follow. But there is more to this second statement than you might think. Let me explain.

The authors have been careful to avoid proposing a theory of software development. This is fortunate, because if they had they would be obliged to warp each chapter to defend their theory. Such warping is the tradition in, say, the physical sciences, where theories eventually become laws or are quietly discarded. Programming on the other hand has few (if any) laws. So programming advice shaped around wanna-be laws may sound good in writing, but it fails to satisfy in practice. This is what goes wrong with so many methodology books.

I've studied this problem for a dozen years and found the most promise in a device called a pattern language. In short, a pattern is a solution, and a pattern language is a system of solutions that reinforce each other. A whole community has formed around the search for these systems.

This book is more than a collection of tips. It is a pattern language in sheep's clothing. I say that because each tip is drawn from experience, told as concrete advice, and related to others to form a system. These are the characteristics that allow us to learn and follow a pattern language. They work the same way here.

You can follow the advice in this book because it is concrete. You won't find vague abstractions. Dave and Andy write directly for you, as if each tip was a vital strategy for energizing your programming career. They make it simple, they tell a story, they use a light touch, and then they follow that up with answers to questions that will come up when you try.

And there is more. After you read ten or fifteen tips you will begin to see an extra dimension to the work. We sometimes call it QWAN, short for the quality without a name. The book has a philosophy that will ooze into your consciousness and mix with your own. It doesn't preach. It just tells what works. But in the telling more comes through. That's the beauty of the book: It embodies its philosophy, and it does so unpretentiously.

So here it is: an easy to read---and use---book about the whole practice of programming. I've gone on and on about why it works. You probably only care that it does work. It does. You will see. --Ward Cunningham

Product Details

  • File Size: 2563 KB
  • Print Length: 352 pages
  • Simultaneous Device Usage: Up to 5 simultaneous devices, per publisher limits
  • Publisher: Addison-Wesley Professional; 1 edition (October 20, 1999)
  • Language: English
  • Text-to-Speech: Enabled
  • X-Ray:
  • Word Wise: Not Enabled
  • Lending: Not Enabled
  • Amazon Best Sellers Rank: #241,437 Paid in Kindle Store (See Top 100 Paid in Kindle Store)
  •  Would you like to give feedback on images?

Customer Reviews

Most Helpful Customer Reviews
218 of 228 people found the following review helpful
I bought this on a friend's recommendation, but expected yet another book rehashing the same standard rules: write comments, don't duplicate code, have plans for your projects, eat your vegetables.
Hunt and Thomas vastly exceeded my expectations. This book is never dry, often humorous, and always educational. They don't always say what you expect them to say (e.g., about commenting code), and I didn't always agree with them, but every sentence is full of thoughtful analysis.
One of the best features is their incredibly practical advice -- while yes, this book does teach philosophy and encourages thought, it also provides many immediately-implementable suggestions.
If you aren't a programmer with 10 years experience, buy it anyway -- it is not just for experienced programmers. While you will absorb less of the book, there is still enough to learn, and it's a great book to keep and re-read.
The book includes a pull-out card of the pithy sayings the authors use to sum up each section. Perhaps my mind just doesn't work the way theirs does, but I didn't find their summations to be helpful all the time -- I found myself frequently having to flip back to the section to remember what a particular phrase meant. But it's still useful.
Was this review helpful to you?
115 of 123 people found the following review helpful
4.0 out of 5 stars Nicely done March 6, 2001
Most software engineers don't have the opportunity to spend time with their colleagues and just talk about the craft of software development. While you can't have a conversation with a book, Andrew Hunt and David Thomas will talk if you will listen--and listen you should.

The Pragmatic Programmer is a collection of ideas, observations, and recommendations for software developers. Throughout the book, they highlight these notions in a set of numbered tips, about 70 of them, which are collected on a single tear-out card situated in the back of the book. Just reading the tips, without reading the text of the book, might make these gems seem trite, empty, and obvious. But, they're not!

Many of the tips actually build upon previous ones, like tip 4: "Don't live with broken windows", which urges programmers to fix problems and clean up messes, and tip 20: "Keep knowledge in plain text." With some books like this you can skip around--but this one is better read from beginning to end.

There is plenty of ideas to consider, agree with, and, perhaps, disagree with, too. You can also feel a little passion. "Conventional wisdom says that once a project is in the coding phase, the work is mostly mechanical, transcribing the design into executable statements. We think that this attitude is the single biggest reason that many programs are ugly, inefficient, poorly structured, unmaintainable, and just plain wrong." Hooray for authors who take a stand and then back it up with well reasoned arguments!

Reading this book isn't a substitute for having that conversation with a colleague about the craft. But, The Pragmatic Programmer is worth listening to in the mean time. It is a good, solid, fun read.
Comment | 
Was this review helpful to you?
67 of 70 people found the following review helpful
5.0 out of 5 stars Wisdom and Humor -- what a rare find May 31, 2000
This is, simply, a wonderful book. It is a book that celebrates the real depth of great programming -- something that is too often forgotten or ignored. This is not an idiot's guide to anything -- it is a remarkably entertaining set of dozens of tips to becoming better at what you do, especially if that happens to be programming.
The tips are deceptively simple at times, but only a truly naive or inexperienced reader would miss the rich depth that their combination presents. In fact, that is the real beauty of this book -- it does not present some short-lived miracle-cure approach -- instead, it weaves together small bits of wisdom and practical advice into a powerful work-style.
They have some controversial views -- these authors are witty and opinionated -- but agreeing or disagreeing with each individual idea is not the point -- "seeing the forest" is.
There are numerous specific code examples, but the book is a fun and easy read -- strangely, I also think it would be a wonderful book for someone who is NOT a programmer, but who works with them, perhaps a business manager having a major system built. Even skipping all the really technical parts, it would be a wonderful set of benchmarks to assess how good your programmers really are -- much more powerful than "he has 3 years of C++, 2 years of Linux"...
I am hoping this writing team will follow this book with some specific guides as well, but this one is destined to be a classic. These guys really know what they are talking about, and, as a wonderful bonus, they are terrific writers, as well!
The book has gotten great reviews on slashdot, as well as a couple of programming magazines, including Dr Dobbs and Software Development -- they were well deserved. Buy IT!
Comment | 
Was this review helpful to you?
130 of 143 people found the following review helpful
3.0 out of 5 stars Aesop's Fables for programmers February 3, 2009
Format:Paperback|Verified Purchase
Well, after reading most of the glowing reviews here, I was pretty interested in the book. I thumbed through it at a bookstore, and ended up buying on Amazon (kudos for the lower price). I read the book, and became confused. I made sure the reviews matched the book title. I read the book again. Quite frankly, I don't see what makes this book so great- not that it is bad and/or a waste of money (though it is on the pricey side given how little you get- big font and big line spacing, like a 7th-grade term paper)- it just isn't the greatest thing since sliced bread.

The authors have compiled a list of several tips to keep in mind while programming. Ultimately, I think this is their answer to Fred Brooks' searching for a silver bullet in The Mythical Man-Month, based on their years of experience in the field. It ends up being a lot of "eating your own dog food," in my humble opinion. Just because they met with success using a certain method/tool (usually on financial software) doesn't mean you will. Not all programming practices transcend all boundaries and are generally applicable to all programming problems. Some people are faster and more capable (and more comfortable) with an IDE than with a plain text editor; get off your high horse. I don't agree with most of the tips. Some, however, are absolutely necessary, such as version control. Every tip is tied to an analogy or some story outside of programming- which may be nice to some, but I see it as an insult to a reader's intelligence. Every single tip? Really? Not necessary....really.

The majority of the book is language-independent, which is nice.
Read more ›
Was this review helpful to you?
Most Recent Customer Reviews
5.0 out of 5 stars Five Stars
Excellent condition.
Published 11 days ago by Mercedes Ashley
5.0 out of 5 stars Great for a book group at the office!
My coworkers have a book group every other week for this book and it generates so much discussion that I don't think we'll ever finish it. Read more
Published 14 days ago by C. Scott
5.0 out of 5 stars Awesome book
Easily the only good programming book I've ever read. It put to words a lot of things I only had in my head as vague concepts, and is an excellent point of reference for the people... Read more
Published 14 days ago by Tyler MacMillan
5.0 out of 5 stars Five Stars
If you are a programmer you have to read it!
Published 20 days ago by Kristian
5.0 out of 5 stars Five Stars
I read this book yeah sure what is that on the cover a lathe or something
Published 24 days ago by Kevin Lindsay
3.0 out of 5 stars Solid, but outdated.
Conceptually a solid book, but outdated. So much of it is common sense. Underwhelmed.
Published 1 month ago by Attie Heunis
4.0 out of 5 stars I enjoyed this book and feel like it will in some ...
I enjoyed this book and feel like it will in some way help my programming career. There are some universal programming truths here. Read more
Published 1 month ago by Michal
4.0 out of 5 stars Read Practices of an Agile Developer instead
Written in 2000 parts of this book feel dated at times. Much of the advise is relevant today, however I feel Practices of an Agile Developer covers the core concepts better.
Published 2 months ago by James Rowe
5.0 out of 5 stars Pay attention to these guys: they are great!
I am a retired computer programmer, 86 years old, a career therein dating from a chance occurrence in 1956, and having been laid off from U.S.Defense Dept. Read more
Published 2 months ago by BILL CLELLAND
1.0 out of 5 stars One Star
Highly overrated.
Published 3 months ago by Jon Hermiz
Search Customer Reviews
Search these reviews only

More About the Authors

Discover books, learn about writers, read author blogs, and more.


There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
First post:
Prompts for sign-in

Look for Similar Items by Category