The Pragmatic Programmer: Your Journey To Mastery, 20th Anniversary Edition

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

“One of the most significant books in my life.” —Obie Fernandez, Author, The Rails Way “Twenty years ago, the first edition of The Pragmatic Programmer completely changed the trajectory of my career. This new edition could do the same for yours.” —Mike Cohn, Author of Succeeding with Agile, Agile Estimating and Planning, and User Stories Applied “. . . filled with practical advice, both technical and professional, that will serve you and your projects well for years to come.” —Andrea Goulet, CEO, Corgibytes, Founder, LegacyCode.Rocks “. . . lightning does strike twice, and this book is proof.” —VM (Vicky) Brasseur, Director of Open Source Strategy, Juniper Networks The Pragmatic Programmer is one of those rare tech books you’ll read, re-read, and read again over the years. Whether you’re new to the field or an experienced practitioner, you’ll come away with fresh insights each and every time. Dave Thomas and Andy Hunt wrote the first edition of this influential book in 1999 to help their clients create better software and rediscover the joy of coding. These lessons have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology, and the Pragmatic philosophy has spawned hundreds of books, screencasts, and audio books, as well as thousands of careers and success stories. Now, twenty years later, this new edition re-examines what it means to be a modern programmer. Topics range 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 • Learn continuously • Avoid the trap of duplicating knowledge • Write flexible, dynamic, and adaptable code • Harness the power of basic tools • Avoid programming by coincidence • Learn real requirements • Solve the underlying problems of concurrent code • Guard against security vulnerabilities • Build teams of Pragmatic Programmers • Take responsibility for your work and career • Test ruthlessly and effectively, including property-based testing • Implement the Pragmatic Starter Kit • Delight your users Written as a series of self-contained sections and filled with classic and fresh anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best approaches 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.

Author(s): David Thomas, Andrew Hunt
Edition: 2
Publisher: Addison-Wesley Professional
Year: 2019

Language: English
Commentary: Vector PDF
Pages: 352
City: Upper Saddle River, NJ
Tags: Software Engineering; Concurrency; Best Practices; Refactoring; Programming Style; Software Architecture; Prototyping; Shell Scripting; Version Control Systems; Self-Improvement

Cover
Title Page
Copyright Page
Table of Contents
Foreword
Preface to the Second Edition
How the Book Is Organized
What’s in a Name?
Source Code and Other Resources
Send Us Feedback
Second Edition Acknowledgments
From the Preface to the First Edition
Who Should Read This Book?
What Makes a Pragmatic Programmer?
Individual Pragmatists, Large Teams
It’s a Continuous Process
1. A Pragmatic Philosophy
Topic 1. It's Your Life
Topic 2. The Cat Ate My Source Code
Topic 3. Software Entropy
Topic 4. Stone Soup and Boiled Frogs
Topic 5. Good-Enough Software
Topic 6. Your Knowledge Portfolio
Topic 7. Communicate!
2. A Pragmatic Approach
Topic 8. The Essence of Good Design
Topic 9. DRY—The Evils of Duplication
Topic 10. Orthogonality
Topic 11. Reversibility
Topic 12. Tracer Bullets
Topic 13. Prototypes and Post-it Notes
Topic 14. Domain Languages
Topic 15. Estimating
3. The Basic Tools
Topic 16. The Power of Plain Text
Topic 17. Shell Games
Topic 18. Power Editing
Topic 19. Version Control
Topic 20. Debugging
Topic 21. Text Manipulation
Topic 22. Engineering Daybooks
4. Pragmatic Paranoia
Topic 23. Design by Contract
Topic 24. Dead Programs Tell No Lies
Topic 25. Assertive Programming
Topic 26. How to Balance Resources
Topic 27. Don't Outrun Your Headlights
5. Bend, or Break
Topic 28. Decoupling
Topic 29. Juggling the Real World
Topic 30. Transforming Programming
Topic 31. Inheritance Tax
Topic 32. Configuration
6. Concurrency
Topic 33. Breaking Temporal Coupling
Topic 34. Shared State Is Incorrect State
Topic 35. Actors and Processes
Topic 36. Blackboards
7. While You Are Coding
Topic 37. Listen to Your Lizard Brain
Topic 38. Programming by Coincidence
Topic 39. Algorithm Speed
Topic 40. Refactoring
Topic 41. Test to Code
Topic 42. Property-Based Testing
Topic 43. Stay Safe Out There
Topic 44. Naming Things
8. Before the Project
Topic 45. The Requirements Pit
Topic 46. Solving Impossible Puzzles
Topic 47. Working Together
Topic 48. The Essence of Agility
9. Pragmatic Projects
Topic 49. Pragmatic Teams
Topic 50. Coconuts Don't Cut It
Topic 51. Pragmatic Starter Kit
Topic 52. Delight Your Users
Topic 53. Pride and Prejudice
10. Postface
A1. Bibliography
A2. Possible Answers to the Exercises
Index
– SYMBOLS –
– A –
– B –
– C –
– D –
– E –
– F –
– G –
– H –
– I –
– J –
– K –
– L –
– M –
– N –
– O –
– P –
– Q –
– R –
– S –
– T –
– U –
– V –
– W –
– X –
– Y –