(Disclaimer: I didn't do most of the exercises)
It's not perfect, but in comparison to the two other introductory phonetics/phonology books I've tried - namely Understanding Phonology (Gussenhoven & Jacobs, 2011) and Introductory Phonology (Hayes, 2009) - this is considerably better. There's a clear path laid out through the book, introducing the reader first to core concepts in phonetics, then to supra/autosegmental issues, then it offers a derivational approach to phonology followed by constraint-based phonology. I feel its given me a pretty good base from which to understand most other things in mainstream phonology (and it is slightly heavier on phonology than phonetics), and I'm glad I read it.