In general, I think the ability to recognize code smells boils down to Knowledge, Understanding, and Practice. You have to know what you are looking for and understand the implications of what you see when it's there. Only practice, and lots of it, will allow you to effectively deal with problems that you detect though.
Still, it's a good question. If the book has any specific discussion around code smells and how to deal with them, I'd be interested to know what they are.