Yup, I’m just over the middle of it but it has been most interesting. I like how they approach programming as a craft to be mastered; the carpenter metaphor is imbued implicitly and explicitly all over the book. So far, they’ve convinced me of the importance of having a versioning system, the value of plain text and of tracer bullets (and its difference with prototyping), the convenience of having the one editor to rule them all, and lots of other simple, valuable things. I loved the “Broken Windows” tip, the “DRY” one, and the one on orthogonality. In fact, that section—the one on the evils of duplication, orthogonality, and reversibility—was particularly subtle, yet deep: it makes it seem obvious that the key issue of programming as a craft is to keep things malleable.