This book is the best introduction to TDD I've seen, and for such a tiny book, has a surprising amount of depth. The examples are in Python, but are simple enough that they'd be easily translated into any language. I've gotten new things out of it every time I've reread it, and it's one of the few tech books I have actually gone back and reread.
A classic, and with good reason. It's a great reference to have around, but it also includes some more general chapters that are well worth reading. If you like this book, I also recommend 'Refactoring to Patterns', by Joshua Kerievsky, which is a similar catalog of refactorings, but to (and equally importantly, away from) some of the design patterns in the Gang of Four book.
A neat collection of common code level problems and their solutions. A great book for intermediately experienced developers, but there's still some things there for senior folks too.
I'd recommend this to beginners and more advanced Vim users, as well as people who are just curious about what makes Vim special. It's a collection of short, one or two page recipes, that build on each other, to the point where you'll be getting a lot more out of Vim than you were before. I'd been using Vim for some years by the time I read it, and I learned a bunch.
The best book about Python I've encountered. I think it'd be a good book for experienced developers whether they'd done a lot of Python before or not.
Inheriting technical debt can be disheartening, but this book provides great strategies to incrementally improve existing code bases that are not very well tested.
- Growing Object-Oriented Software, Guided by Tests, Steve Freeman & Nat Pryce
- The Thoughtworks Anthology, Various Artists
- Practical Object Oriented Design in Ruby, Sandi Metz
- Effective Python, Brett Slatkin
- Domain Specific Languages, Martin Fowler
- Type Driven Development with Idris, Edwin Brady