This is a book about doing.
- Programming is a craft. At its simplest, it comes down to getting a computer to do what you want it do to.
- Pragmatism
- You shouldn’t be wedded to any particular technology, but have a broad enough background and experience base to allow you to choose good solutions in particular situations
- background stems from basic principles of CS, and experience from a wide range or practical projects
What makes a Pragmatic Programmer
- Over time, each dev will craft their own personal environment, which will reflect their individuality.
- But if you’re a pragmatic programmer you will share these characteristics
Characteristic | Description |
---|---|
Early Adopter | - You have an instinct for technology and techniques, and you love trying things out. - When given something new, you can grasp it quickly and integrate it w/ the rest of your knowledge. Your confidence is born of experience. |
Inquisitive | Ask questions |
Critical thinker | You rarely take things as given without first getting the facts |
Realistic | You try to understand the underlying nature of each problem you face (how difficult things are, how long things will take) |
Jack of all trades | You try hard to be familiar with a broad range of tech and environments, you will always be able to move on to new areas/challenges |
Care about your craft | You feel that there is no point in developing software unless you care about doing it well |
Think! about your work | - You think about what you’re doing while you’re doing it - It’s not a one time thing but an ongoing critical appraisal of every decision you make every day and on every project - Never run on autopilot! always THINK! |
- Long term, the reward is a more active involvement with a job you love, a feeling of mastery over an increasing range of subjects, and pleasure in a feeling of continuous improvement
Individual pragmatists, large teams
- software engineering in large teams does NOT exclude personal craftsmanship
- within the overall structure of a project there is always room for individuality and craftsmanship
- “Kaizen”
- continuously making many small improvements
- everyday, work to refine the skills you have and to add new tools to your repertoire