- Paperback: 352 pages
- Publisher: Addison Wesley; 1 edition (20 October 1999)
- Language: English
- ISBN-10: 9780201616224
- ISBN-13: 978-0201616224
- ASIN: 020161622X
- Product Dimensions: 23.4 x 18.8 x 2.3 cm
- Boxed-product Weight: 599 g
- Average Customer Review: 1 customer review
- Amazon Bestsellers Rank: 26,996 in Books (See Top 100 in Books)
Other Sellers on Amazon
+ FREE Delivery
+ FREE Delivery
The Pragmatic Programmer: From Journeyman to Master Paperback – 20 Oct 1999
There is a newer edition of this item:
Frequently bought together
Customers who bought this item also bought
From the Back Cover
What others in the trenches say about The Pragmatic Programmer...
“The cool thing about this book is that it’s great for keeping the programming process fresh. The book helps you to continue to grow and clearly comes from people who have been there.”―Kent Beck, author of Extreme Programming Explained: Embrace Change
“I found this book to be a great mix of solid advice and wonderful analogies!”―Martin Fowler, author of Refactoring and UML Distilled
“I would buy a copy, read it twice, then tell all my colleagues to run out and grab a copy. This is a book I would never loan because I would worry about it being lost.”―Kevin Ruland, Management Science, MSG-Logistics
“The wisdom and practical experience of the authors is obvious. The topics presented are relevant and useful.... By far its greatest strength for me has been the outstanding analogies―tracer bullets, broken windows, and the fabulous helicopter-based explanation of the need for orthogonality, especially in a crisis situation. I have little doubt that this book will eventually become an excellent source of useful information for journeymen programmers and expert mentors alike.”―John Lakos, author of Large-Scale C++ Software Design
“This is the sort of book I will buy a dozen copies of when it comes out so I can give it to my clients.”―Eric Vought, Software Engineer
“Most modern books on software development fail to cover the basics of what makes a great software developer, instead spending their time on syntax or technology where in reality the greatest leverage possible for any software team is in having talented developers who really know their craft well. An excellent book.”―Pete McBreen, Independent Consultant
“Since reading this book, I have implemented many of the practical suggestions and tips it contains. Across the board, they have saved my company time and money while helping me get my job done quicker! This should be a desktop reference for everyone who works with code for a living.”―Jared Richardson, Senior Software Developer, iRenaissance, Inc.
“I would like to see this issued to every new employee at my company....”―Chris Cleeland, Senior Software Engineer, Object Computing, Inc.
“If I’m putting together a project, it’s the authors of this book that I want. . . . And failing that I’d settle for people who’ve read their book.”―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 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.
About the Author
Andy Hunt is an avid woodworker and musician, but, curiously, he is more in demand as a consultant. He has worked in telecommunications, banking, financial services, and utilities, as well as in more exotic fields, such as medical imaging, graphic arts, and Internet services. Andy specializes in blending tried-and-true techniques with leading-edge technologies, creating novel--but practical--solutions. Andy owns his own consulting business in Raleigh, North Carolina.
Dave Thomas likes to fly single-engine airplanes and pays for his habit by finding elegant solutions to difficult problems, consulting in areas as diverse as aerospace, banking, financial services, telecommunications, travel and transport, and the Internet. Before moving to the United States in 1994, Dave founded an ISO9001-certified English software company that delivered sophisticated, custom software projects throughout the world. Dave is now an independent consultant based in Dallas, Texas.
From the Publisher
Customers who viewed this item also viewed
Review this product
1 customer review
There was a problem filtering reviews right now. Please try again later.
I wouldn’t recommend reading it until you have worked on software “in anger” for a while. Then the tips speak to you more because you can relate a personal situation and you’ll remember it the next time you see that pattern.
Most helpful customer reviews on Amazon.com
- The advice on metaprogramming is probably the strongest part of the book. I really liked the clarity of the examples. The key idea is that you should program the structure and methods in code, and provide the detailed implementation (business rules, algorithms etc.) as data.
- The advice on code generators, little languages and plain text interfaces is solid advice worth reiterating and the sections on these are good. However, I preferred the treatment offered by Jon Bentley in his really excellent Programming Pearls books
- The section on automation is a healthy reminder that programmers should have a "do it once, or automate" philosophy
- The section on contract-driven development is worthy and echoes current practice. Jon Bentley's version is a more theoretical, conceptual approach, less polluted by particular industry practices.
- The sections on test-driven development is fine, but the ideas are much better handled by Kent Beck's books
The not so good:
- The chapters on Pragmatism, Specification, Team Work and Discipline fit nicely with the general themes of the book, but say very little of practical value. If you are interested in operating in a team environment, this isn't the book you are looking for.
- The section on programming methodologies is so wishy-washy it's hard to know what advice if any to take away from it
- References to specific resources are somewhat out of date (the book was written 15 years ago)
The Pragmatic Programmer is worth the price, but if you are thinking of buying this book because you are a relatively new programmer and are looking for advice, I would strongly suggest first reading the much better books:
Jon Bentley's Programming Pearls and More Programming Pearls
Kernighan and Pike's The Practice of Programming
Kent Beck's Extreme Programming Explained
Another book you might be interested in is Susan Lammers, Programmers at Work. Although it is very old (1989), its interesting that most of the programmers interviewed discuss exactly the same themes picked up in The Pragmatic Programmer.
In case you were also thinking about buying a copy of Code Complete, which is also often recommended to new programmers, also hold off - its far too long and a great deal of it feels like a padded-out outline.
There are many classics, like "The C Programming Language," or Knuth's "The Art of Computer Programming" series. Then there are modern classics, such as "Design Patterns," and more recently "Learn Python the Hard Way." But this book excels them all in several ways.
The programming world has long-lacked a normal approach to itself for outsiders. This is why so many programmers are self-taught. We work in a budding field that still hasn't come of age. If the authors continue to revise and improve this work, I would go so far as to say this might the _the_ classic for introducing practical-minded outsiders to the befuddling world of computer programming.
I've always been a geek at heart, but my interests expanded easily past computers to things I can understand better. I found programming books verbose and filled with not enough "why" answers, except when those "why" answers served as rationalization for the author imposing their bias and subjective understanding of various problems onto your entire view of computer science.
The Pragmatic Programmer does not do this. It assumes you are intelligent and can think for yourself about problems, and need help solving them, but not necessarily to be told _how_ to solve them. So much of "teaching" software development is just faulty teachers trying to impose implicit software paradigms on incomplete problems and expecting you, the learner, to be not only satisfied with the completeness of their answer, but to understand why they picked the particular subjective approach that they did.
In truth, this happens in all fields, but it gets especially religious in the field of computer programming. Most people apply the reverse of the sour-grapes fable from Aesop to their own programs. In other words, "My programming grapes are so juicy and sweet that everyone else's in comparison taste quite sour."
Programmers love to take the religious experience of making a computer do something and assume that they should be all-powerful just because they figured out an effective, repeatable way to solve a problem. News flash: There are 1000 ways to tell a computer to do the same thing in 1000 different programming languages. The real test is not whether your software works, but if it works well enough given the constraints you faced in creating it.
So few people understand this and think it's just about the code. It's not about the code, it's about problem solving, and not just formal problem solving, but real-world and practical problem solving. What problem does your software solve, and does it solve it the most effective way you can think of? If you've been frustrated by the approach of most software books, you should give this one a try.
I was surprised at how much information I could relate to, the anecdotes and guidelines it outlines are things that I would have told my younger self when I started programming if I had the chance. Earlier this year I reread the book just to revisit the tips that were being outlined, and they still make perfect sense.
What exactly is this book about? It's series articles containing tips that are meant for programmers who want to be effective and efficient, who program as a profession, who have project risks that need to be evaluated, team-members they need to work with, code that needs to meet quality standards, code that is maintained as legacy the moment it's compiled and shipped, and it's about considering your value as a programmer to the company and updating and grooming your skills to advance your career.
Every single tip and anecdote in the book may not apply to everybody, and you may not agree with all of them, but I believe it's essential reading for anyone who wants a fulfilling career in software development. I'd say the best time to read the book would be about 6 months to 2 years after you've started working professionally; that gives some time to make real-world experiences relevant and understandable to what the book is preaching , but early enough in your career to leverage it's knowledge for the future.