Buy new:
$74.50
FREE delivery Tuesday, October 15
Ships from: A.N.T Group
Sold by: A.N.T Group
$74.50
FREE delivery Tuesday, October 15. Details
Or fastest delivery Wednesday, October 9. Details
Only 20 left in stock - order soon.
$$74.50 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$74.50
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Ships from
A.N.T Group
Ships from
A.N.T Group
Sold by
Sold by
Returns
30-day refund/replacement
30-day refund/replacement
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt. You may receive a partial or no refund on used, damaged or materially different returns.
Returns
30-day refund/replacement
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt. You may receive a partial or no refund on used, damaged or materially different returns.
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
Payment
Secure transaction
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
$27.88
Get Fast, Free Shipping with Amazon Prime FREE Returns
Ships quick from Amazon! Qualifies for Prime Shipping and FREE standard shipping for orders over $35. May not include supplements such as access code, CD or DVD. TI3P:020161622X:GOOD:RTEX Ships quick from Amazon! Qualifies for Prime Shipping and FREE standard shipping for orders over $35. May not include supplements such as access code, CD or DVD. TI3P:020161622X:GOOD:RTEX See less
FREE delivery Friday, October 11 on orders shipped by Amazon over $35
Or Prime members get FREE delivery Tomorrow, October 7. Order within 11 hrs 54 mins.
Only 3 left in stock - order soon.
$$74.50 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$74.50
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Access codes and supplements are not guaranteed with used items.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Follow the authors

Something went wrong. Please try your request again later.

The Pragmatic Programmer: From Journeyman to Master

4.6 4.6 out of 5 stars 1,471 ratings

{"desktop_buybox_group_1":[{"displayPrice":"$74.50","priceAmount":74.50,"currencySymbol":"$","integerValue":"74","decimalSeparator":".","fractionalValue":"50","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"cXpmIbUP%2FRL81ihwZT0rmkUXdkonW9HdLXeDLwW1q1nnJaTtq4P%2FTnGEcFqJ4%2BUj82TEEnydZj0qqXXn6mXbNWSfHsIrmn0aP%2FDjbOCmpyQSpyXx0AfWui%2Bw%2F5pImv%2FU54aAOUUoEK2ToN%2F%2BooT4vqwMQ7lAeeU%2FLm7Lb2wR3bgVqfvIjtbojd1oNSn5COws","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$27.88","priceAmount":27.88,"currencySymbol":"$","integerValue":"27","decimalSeparator":".","fractionalValue":"88","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"cXpmIbUP%2FRL81ihwZT0rmkUXdkonW9HdVNxA%2BMJRuf6ISdmCquDP9dB%2BPgbzGwoq1xgsImHMH5m4d63ZUX%2FRDmV0%2Bhwc2DB7nS%2FjQhZus%2Fgf19acEU2rDeOFIUVle6Zc12Wpo4iwuxbkqthwD6UTOtwJrzr2T3TXune7a69VtN3WCb6iRd9G3XkB2pbOhFk3","locale":"en-US","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

Purchase options and add-ons

Ward Cunningham Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques 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 program.

Amazon First Reads | Editors' picks at exclusive prices

Frequently bought together

This item: The Pragmatic Programmer: From Journeyman to Master
$75.00
Only 1 left in stock - order soon.
Ships from and sold by five star ten number.
+
$47.99
Get it as soon as Friday, Oct 11
In Stock
Ships from and sold by Amazon.com.
+
$42.15
Get it Oct 15 - 18
In Stock
Ships from and sold by MyPrepbooks.
Total price: $00
To see our price, add these items to your cart.
Details
Added to Cart
spCSRF_Treatment
Some of these items ship sooner than the others.
Choose items to buy together.

From the Publisher

Customer Reviews
4.6 out of 5 stars
1,471
4.6 out of 5 stars
8
4.6 out of 5 stars
223
4.3 out of 5 stars
27
Price $74.50 $11.50 $48.90 $15.79
Title The Pragmatic Programmer How to Use Objects Hacker's Delight Effective Debugging
Author Andrew Hunt, David Thomas Holger Gast Henry S. Warren Diomidis Spinellis
Page Count 352 832 512 256
Pub Date 10/20/1999 12/15/2015 9/25/2012 6/23/2016
Binding Paperback Hardcover Hardcover Paperback
Series None None None Effective Software Development Series
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. "While most developers today use object-oriented languages, the full power of objects is available only to those with a deep understanding of the object paradigm. How to Use Objects will help you gain that understanding, so you can write code that works exceptionally well in the real world. Author Holger Gast focuses on the concepts that have repeatedly proven most valuable and shows how to render those concepts in concrete code. He explores crucial intricacies, clarifies easily misunderstood ideas, and helps you avoid subtle errors that could have disastrous consequences. " Hank Warren once again compiles an irresistible collection of programming hacks: timesaving techniques, algorithms, and tricks that help programmers build more elegant and efficient software, while also gaining deeper insights into their craft. Warren’s hacks are eminently practical, but they’re also intrinsically interesting, and sometimes unexpected, much like the solution to a great puzzle. They are, in a word, a delight to any programmer who is excited by the opportunity to improve. Diomidis Spinellis helps experienced programmers accelerate their journey to mastery, by systematically categorizing, explaining, and illustrating the most useful debugging methods, strategies, techniques, and tools. Drawing on more than thirty-five years of experience, Spinellis expands your arsenal of debugging techniques, helping you choose the best approaches for each challenge. He presents vendor-neutral, example-rich advice on general principles, high-level strategies, concrete techniques, high-efficiency tools, creative tricks, and the behavioral traits associated with effective debugging.

Editorial Reviews

Amazon.com 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

  • ASIN ‏ : ‎ 020161622X
  • Publisher ‏ : ‎ Addison-Wesley Professional (January 1, 1999)
  • Language ‏ : ‎ English
  • Paperback ‏ : ‎ 352 pages
  • ISBN-10 ‏ : ‎ 9780201616224
  • ISBN-13 ‏ : ‎ 978-0201616224
  • Item Weight ‏ : ‎ 1.33 pounds
  • Dimensions ‏ : ‎ 9.2 x 7.4 x 0.9 inches
  • Customer Reviews:
    4.6 4.6 out of 5 stars 1,471 ratings

About the authors

Follow authors to get new release updates, plus improved recommendations.

Customer reviews

4.6 out of 5 stars
1,471 global ratings

Customers say

Customers find the information quality of the book excellent and effective. They describe it as a great, fun read that deserves an occasional reread. Readers also appreciate the writing style as clear, straightforward, and easy to digest. They say the concepts are timeless and the material contains years of experience in one piece. However, some customers feel the content is dated.

AI-generated from the text of customer reviews

104 customers mention "Information quality"98 positive6 negative

Customers find the information in the book to be good. They say it educates much by using principles and has content for every experience level. Readers also mention the book is full of good ideas and advice, and an effective way to ingest the information at their own pace. They appreciate the practical examples and tips.

"...This book covers the spectrum – it’s equally useful to me, my project managers and developers, and those just getting into our industry...." Read more

"...I found this to be a very effective way to ingest the information at my own pace...." Read more

"...It's not some load of theoretical crap, either; it's real advice for solving real problems...." Read more

"...The sections on test-driven development is fine, but the ideas are much better handled by Kent Beck's booksThe not so good:-..." Read more

93 customers mention "Readability"85 positive8 negative

Customers find the book readable, fun, and fantastic. They say it deserves an occasional reread as one gains more experience. Readers also mention the authors are entertaining and down-to-earth. Overall, they say the book is worth their time and is an absolute necessity for any developer.

"...I know this already."The book is very readable, although it lacks personality. Not dry, just impersonal...." Read more

"...The style is informal without getting chatty. The authors exhibit a dry sense of humour that makes the reading go smooth at all times...." Read more

"...It was nothing short of fantastic, and truly a book that I can see myself constantly referring back to in my career...." Read more

"...The author has a great voice, so it is easy and entertaining to read...." Read more

50 customers mention "Writing style"47 positive3 negative

Customers find the writing style easy to read and straightforward. They say it provides a good outline of how to program in a real-world setting. Readers also mention that the book is nice for starting programmers or for a fun read. They say it gives practical methodologies to write better software.

"...developers and external developers, and this book gives a good framework and guidelines on how applications and classes need to work...." Read more

"...It is easy enough to get what is useful out of it, and decide to ignore/focus less on the parts that are less useful or less relavent to what you..." Read more

"...Good for programmers who care about getting work done today instead of sitting around talking about what they'll do tomorrow." Read more

"...humorous moments spread throughout the book, and it is overall a very easy read- not at all like reading a technical work, despite the content...." Read more

9 customers mention "Timelessness"9 positive0 negative

Customers find the book timeless. They say it contains years of experience in one piece. However, some readers mention some sections are outdated.

"...However, most of the material is timeless in the way a book on design patterns is timeless...." Read more

"All kidding aside, it's just a great read. Contains a lot of timeless pearls, and a few sections that are perhaps a bit dated by today's standards...." Read more

"...The concepts are timeless, and will continue to be true regardless of what new tooling and methodologies may come after it." Read more

"...The principles they cover are well thought out, language agnostic, and timeless...." Read more

7 customers mention "Language agnostic"4 positive3 negative

Customers have mixed opinions about the book. Some mention it's not language-specific, while others say it creates some very bad typography in certain cases. They also mention it's informational but a little dense to read and the authors sound off-puttingly elitist.

"...The majority of the book is language-independent, which is nice...." Read more

"...Sometimes the authors sound off-puttingly elitist, such as they start going on about how "pragmatic programmers" care about their craft,..." Read more

"...This book is not language specific; almost all of the concepts can be applied to virtually any language...." Read more

"...This creates some very bad typography in certain cases...." Read more

13 customers mention "Dated content"3 positive10 negative

Customers find the content dated. They also say the book hasn't aged well.

"...Some of the information/advice is a bit dated - almost everyone uses version control, which the book argues passionately in favor of...." Read more

"...Furthermore, this book has not aged well...." Read more

"This book is very dated but still has some useful information but be prepared trying to figure out if some things still apply and if so how the..." Read more

"...It bears its age remarkably well. In fact, only minutiae makes it look old by any standard...." Read more

Top reviews from the United States

Reviewed in the United States on June 30, 2015
This book provides sound, practical advice that makes sense on almost any development project. The Pragmatic Programmer is not limited to a specific niche or language – any developer can take and apply these principles. It employs a good, familiar writing style which makes the book easy to digest, and the material is quick to absorb and apply.

Thomas and Hunt present content that is useful for everyone from the novice to the expert. They organize their advice into approximately 46 topics that cover a wide range of programming best practices. The tips build on each other throughout and are loosely categorized so that tips on similar themes are grouped together. To get the most out of it, I suggest reading the whole book, or at least sizeable sections, beginning to end to clearly see how they integrate. However, because there are so many tips, integrating them all at once initially may be difficult. It’s easy to bite off more than you can chew here, so perhaps a good starting point is to begin with the tips that are most relevant for you and branch out from there. A couple of sections resonated strongly with me:

1) A useful practice that I operate by and push my developers to operate by is refactoring (Chapter 6 – “While You Are Coding”, p. 184). This book provides a framework for the appropriate mindset to take on how to handle and maintain a code base. In refactoring, you don’t relate the software so much to a construction project but to creating and maintaining a garden – code is dynamic and its environment is ever changing. You’ll need to adapt and adjust code as the project moves along, and developers need to operate from the mindset that they’ll need to change things and adapt their code as they proceed.

2) Another practice that I follow extensively is Design by Contract (Chapter 4 – “Pragmatic Paranoia”, p. 109), or the idea that you build/structure elements to a defined contract. This could be a contract between systems, classes, or even functions. I use this approach with both my local developers and external developers, and this book gives a good framework and guidelines on how applications and classes need to work. For example, I can define a contract for how a base class and its subclasses need to work and interact, and then work with a developer to provide the specific implementation for that class. I also use this approach for APIs when coordinating with an external team to handle an exchange of data.

I’m a software architect and developer with over 20 years of industry experience across a number of languages and systems, and I’ve completed hundreds of projects both individually and with technical and cross-disciplinary teams of varying sizes. Most of the subjects covered in this book are best practices I look for or insist on establishing on my projects to ensure work moves along smoothly during development. This book covers the spectrum – it’s equally useful to me, my project managers and developers, and those just getting into our industry. It’s a solid book to return to every once in a while to make sure you’re in alignment with best practices. I highly recommend it to both new and experienced developers. I hope it helps you as much as it’s helped me.
60 people found this helpful
Report
Reviewed in the United States on September 3, 2012
Pragmatic Programmer touches on many excellent software development practices and design methodologies, although there is not much depth on any one topic. If I had read it much earlier in my career, I think I would have learned a lot more from it. But I've been developing for 12+ years now, and I've already picked up on nearly everything this book had to say. I guess I already was a "Pragmatic Programmer". I found myself skimming a lot of the sections and whispering to myself, "Yeah, yeah, good stuff. I know this already."

The book is very readable, although it lacks personality. Not dry, just impersonal. It has a lot of "We think this, we think that..." but I kept asking myself, who is "we"? What experiences informed these points of views? How long have the authors been developing code, and in what subspecialties? Sure, some of this information about the authors can be looked up. But I'd rather have seen some of these details come out in the text of the book itself, in the course of explaining their points of view.
3 people found this helpful
Report
Reviewed in the United States on February 17, 2014
I have looked at this title in the listings for many years, but for some reason it was never the one I bought. I should have bought this a long time ago! My bad.

Better late than never, they say, and that's definitely true of this title. It bears its age remarkably well. In fact, only minutiae makes it look old by any standard.

The book is a long list of carefully explained sections that are ultimately summarised as a set of tips. If you have ever read Scott Meyers' work on Effective C++ you sorta get the idea. However, where Scott is intimately involved with using C++, Andrew Hunt and David Thomas are concerned with general approaches to development. What to do. What not to do. In general. And specifics. Regardless of your chosen programming language.

The book's age only shows when they talk about concrete technologies; Java was new and shiny at the time. eXtreme Programming was around, but Agile was not. C++ had only just been standardised for the first time. There was no subversion, let alone mercurial or git.

These age symptoms are irrelevant though, because any technology is only used in very short snippets, and only to demonstrate a point.

So, what's in here? You'll find guidelines such as "Learn a new programming language every year," "Keep knowledge in plain text," "Don't program by coincidence," and "Gently exceed your users' expectations." You'll also find a thorough discussion of why these guidelines are important.

The style is informal without getting chatty. The authors exhibit a dry sense of humour that makes the reading go smooth at all times.

Anyway, you gotta love it when the authors' remind you that perl can be used to manipulate text, host web pages, do math and write program source that looks like Snoopy swearing.

This one is going to be a stable. All serious programmers, regardless of language, platform or technology, should read this.
2 people found this helpful
Report

Top reviews from other countries

Translate all reviews to English
Nat
5.0 out of 5 stars Great quality 2nd hand
Reviewed in the United Kingdom on October 3, 2024
Great quality 2nd hand
Daniel G.
5.0 out of 5 stars Must
Reviewed in Mexico on January 6, 2019
Un excelente libro, un Must para programadores sin importar tu tecnología, lenguaje, edad o ideología. Es bastante actual a pesar de los años, de los pocos libros de programación que merece comprar. Es algo así como la biblia de los programadores
2 people found this helpful
Report
Nitin
5.0 out of 5 stars Solid insight
Reviewed in India on May 2, 2020
Though its an old book some of the topics are relevant even today. Must for the one in programming business I would say.
One person found this helpful
Report
Mark
5.0 out of 5 stars Good advice for learners
Reviewed in Germany on November 6, 2019
The book is nice and contains good advice. I think it speaks for the book that a lot of the advice has become more common knowledge in recent years. This does mean that for experienced programmers it might not contains too many surprises, but at the same time it means that it is very solid advice for beginner / intermediary programmers.
Cédric Burceaux
5.0 out of 5 stars Ancien mais toujours très accurate
Reviewed in France on January 24, 2018
Agréalement surpris par le contenu et la véracité par rapport à nos jours.

Il y a plein de bons conseils et de bon sens qui sont diffusés dans ce livre, beaucoup de bons principes sur le comportement à adopter, ou les bonnes pratiques globales de Code, Broken Window, Dry, POC (qu'ils nomment Bullet Tracer),etc.

Une bonne et simple lecture qui touche probablement tous les types de développeurs (et peut potentiellement être adapté à d'autres métiers également)