Starting Page

click for table of contents

Front Matter
Table of Contents
About the Author

Pragmatic Programmer, The: From Journeyman to Master

Andrew Hunt
David Thomas
Publisher: Addison Wesley
First Edition October 13, 1999
ISBN: 0-201-61622-X, 352 pages

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 youll 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 youre a new coder , an experienced programmer, or a manager responsible for software projects, use these lessons daily, and youll quickly see improvements in personal productivity, accuracy, and job satisfaction. Youll learn skills and develop habits and attitudes that form the foundation for long- term success in your career. Youll become a Pragmatic Programmer.

Pragmatic Programmer, The: From Journeyman to Master


     Who Should Read This Book?
     What Makes a Pragmatic Programmer?
     Individual Pragmatists, Large Teams
     It's a Continuous Process
     How the Book Is Organized
     What's in a Name ?

1. A Pragmatic Philosophy
     The Cat Ate My Source Code
     Software Entropy
     Stone Soup and Boiled Frogs
     Good-Enough Software
     Your Knowledge Portfolio

2. A Pragmatic Approach
     The Evils of Duplication
     Tracer Bullets
     Prototypes and Post-it Notes
     Domain Languages

3. The Basic Tools
     The Power of Plain Text
     Shell Games
     Power Editing
     Source Code Control
     But My Team Isn't Using Source Code Control
     Source Code Control Products
     Text Manipulation
     Code Generators

4. Pragmatic Paranoia
     Design by Contract
     Dead Programs Tell No Lies
     Assertive Programming
     When to Use Exceptions
     How to Balance Resources
     Objects and Exceptions
     Balancing and Exceptions
     When You Can't Balance Resources
     Checking the Balance

5. Bend or Break
     Decoupling and the Law of Demeter
     Temporal Coupling
     It's Just a View

6. While You Are Coding
     Programming by Coincidence
     Algorithm Speed
     Code That's Easy to Test
     Evil Wizards

7. Before the Project
     The Requirements Pit
     Solving Impossible Puzzles
     Not Until You're Ready
     The Specification Trap
     Circles and Arrows

8. Pragmatic Projects
     Pragmatic Teams
     Ubiquitous Automation
     Ruthless Testing
     It's All Writing
     Great Expectations
     Pride and Prejudice

A. Resources
     Professional Societies
     Building a Library
     Internet Resources

B. Answers to Exercises