The Pragmatic Programmer
Subtitle: From Journeyman to Master
Publisher: Addison-Wesley
Published: 1999
Language: eng
Number of pages: 352
ISBN-13: 9780201616224
Description: 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.
Table of contents: title: Foreword
pagenum: xiii; title: Preface
pagenum: xvii; label: 1
title: A Pragmatic Philosophy
pagenum: 1; label: 1
title: The Cat Ate My Source Code
pagenum: 2; label: 2
title: Software Entropy
pagenum: 4; label: 3
title: Stone Soup and Boiled Frogs
pagenum: 7; label: 4
title: Good-Enough Software
pagenum: 9; label: 5
title: Your Knowledge Portfolio
pagenum: 12; label: 6
title: Communicate!
pagenum: 18; label: 2
title: A Pragmatic Approach
pagenum: 25; label: 7
title: The Evils of Duplication
pagenum: 26; label: 8
title: Orthogonality
pagenum: 34; label: 9
title: Reversibility
pagenum: 44; label: 10
title: Tracer Bullets
pagenum: 48; label: 11
title: Prototypes and Post-it Notes
pagenum: 53; label: 12
title: Domain Languages
pagenum: 57; label: 13
title: Estimating
pagenum: 64; label: 3
title: The Basic Tools
pagenum: 71; label: 14
title: The Power of Plain Text
pagenum: 73; label: 15
title: Shell Games
pagenum: 77; label: 16
title: Power Editing
pagenum: 82; label: 17
title: Source Code Control
pagenum: 86; label: 18
title: Debugging
pagenum: 90; label: 19
title: Text Manipulation
pagenum: 99; label: 20
title: Code Generators
pagenum: 102; label: 4
title: Pragmatic Paranoia
pagenum: 107; label: 21
title: Design by Contract
pagenum: 109; label: 22
title: Dead Programs Tell No Lies
pagenum: 120; label: 23
title: Assertive Programming
pagenum: 122; label: 24
title: When to Use Exceptions
pagenum: 125; label: 25
title: How to Balance Resources
pagenum: 129; label: 5
title: Bend, or Break
pagenum: 137; label: 26
title: Decoupling and the Law of Demeter
pagenum: 138; label: 27
title: Metaprogramming
pagenum: 144; label: 28
title: Temporal Coupling
pagenum: 150; label: 29
title: It's Just a View
pagenum: 157; label: 30
title: Blackboards
pagenum: 165; label: 6
title: While You Are Coding
pagenum: 171; label: 31
title: Programming by Coincidence
pagenum: 172; label: 32
title: Algorithm Speed
pagenum: 177; label: 33
title: Refactoring
pagenum: 184; label: 34
title: Code That's Easy to Test
pagenum: 189; label: 35
title: Evil Wizards
pagenum: 198; label: 7
title: Before the Project
pagenum: 201; label: 36
title: The Requirements Pit
pagenum: 202; label: 37
title: Solving Impossible Puzzles
pagenum: 212; label: 38
title: Not Until You're Ready
pagenum: 215; label: 39
title: The Specification Trap
pagenum: 217; label: 40
title: Circles and Arrows
pagenum: 220; label: 8
title: Pragmatic Projects
pagenum: 223; label: 41
title: Pragmatic Teams
pagenum: 224; label: 42
title: Ubiquitous Automation
pagenum: 230; label: 43
title: Ruthless Testing
pagenum: 237; label: 44
title: It's All Writing
pagenum: 248; label: 45
title: Great Expectations
pagenum: 255; label: 46
title: Pride and Prejudice
pagenum: 258; title: Appendices; label: A
title: Resources
pagenum: 261; title: Professional Societies
pagenum: 262; title: Building a Library
pagenum: 262; title: Internet Resources
pagenum: 266; title: Bibliography
pagenum: 274; label: B
title: Answers to Exercises
pagenum: 279; title: Index
pagenum: 309