Feineigle.com - The Pragmatic Programmer

Home · Book Reports · 2017 · The Pragmatic Programmer

Published: January 4, 2017 (7 years 3 months ago.)
Tags:  Programming



The book in...
One sentence:
High-level overview of techniques for improving the process of software design and implementation.

Five sentences:
As a programmer you should always be on the lookout for new technologies, improved techniques, and opportunities to refactor your source. Since user requirements are usually not be set in stone, your abstracting away from a specific 'requirement' may produce a simpler or more robust system. Code should not be duplicated as per the DRY methodology and functionality should be sufficiently delegated via modularity (including teams). The model-view system assists in DRY avoidance, especially when drawing from universal data sources like plain-text files for things like configuration or schema. A version control system and automated tests can help locate and remedy a bug as soon as it becomes a bug.

designates my notes. / designates important.


Thoughts

A “classic” from 1999. Lots of interesting “roots” of some now commonly known programming principles. I was particularly gleeful to hear the lauding of plain text files - my preferred way of storing almost everything. I think even JSON is mentioned alongside the more ubiquitous XML in 1999.

Source control, particularly since git/github, is now defacto. The authors were way ahead of this fact. Similarly they mention something dangerously similar to test driven design, modern buzzwords sure, but still a great way to work. There are also a lot of general how to deal with day-to-day problems programmers face, like customer spec sheets, deadlines, and communication.

Interesting and breezy read, would recommend as light reading to any programmer.


Table of Contents


· Chapter 1 - A Pragmatic Philosophy

page 33:
page 37:

· Chapter 2 - A Pragmatic Approach

page 49:
page 54:
page 55:
page 57:
page 59:
page 60:
page 61:
page 62:
page 64:
page 66:
page 70:
page 74:
page 76:
page 78:
page 85:

· Chapter 3 - The Basic Tools

page 98:
page 99:
page 100:
page 111:
page 114:
page 115:
page 125:
page 126:
page 137:

· Chapter 4 - Pragmatic Paranoia

page 139:
page 144:
page 146:
page 147:
page 148:
page 153:
page 156:
page 169:

· Chapter 5 - Bend or Break

page 182:
page 183:
page 187:
page 193:
page 203:
page 204:
page 210:

· Chapter 6 - While You Are Coding

page 215:
page 219:
page 221:
page 222:
page 226:
page 228:
page 233:
page 237:
page 238:
page 240:

· Chapter 7 - Before the Project

page 243:
page 244:
page 250:
page 251:
page 256:
page 261:

· Chapter 8 - Pragmatic Projects

page 267:
page 268:
page 269:
page 270:
page 272:
page 275:
page 278:
page 285:
page 286:
page 290:
page 299:

· Appendix A: Resource