The Pragmatic Programmer: From Journeyman to Master

Cover Image For The Pragmatic Programmer...

        Foreword
        Preface
1. A Pragmatic Philosophy
        1. The Cat Ate My Source Code
        2. Software Entropy
        3. Stone Soup and Boiled Frogs
        4. Good-Enough Software
        5. Your Knowledge Portfolio
        6. Communicate!
2. A Pragmatic Approach
        7. The Evils of Duplication
        8. Orthogonality
        9. Reversibility
        10. Tracer Bullets
        11. Prototypes and Post-it Notes
        12. Domain Languages
        13. Estimating
3. The Basic Tools
        14. The Power of Plain Text
        15. Shell Games
        16. Power Editing
        17. Source Code Control
        18. Debugging
        19. Text Manipulation
        20. Code Generators
4. Pragmatic Paranoia
        21. Design by Contract
        22. Dead Programs Tell No Lies
        23. Assertive Programming
        24. When to Use Exceptions
        25. How to Balance Resources
5. Bend, or Break
        26. Decoupling and the Law of Demeter
        27. Metaprogramming
        28. Temporal Coupling
        29. It’s Just a View
        30. Blackboards
6. While You Are Coding
        31. Programming by Coincidence
        32. Algorithm Speed
        33. Refactoring
        34. Code That’s Easy to Test
        35. Evil Wizards
7. Before the Project
        36. The Requirements Pit
        37. Solving Impossible Puzzles
        38. Not Until You’re Ready
        39. The Specification Trap
        40. Circles and Arrows
8. Pragmatic Projects
        41. Pragmatic Teams
        42. Ubiquitous Automation
        43. Ruthless Testing
        44. It’s All Writing
        45. Great Expectations
        46. Pride and Prejudice
A. Resources
        Professional Societies
        Building a Library
        Internet Resources
        Bibliography
B. Answers to Exercises
        Index