If you are an intermediate player I suggest Speed mechanics By Troy Stetina.
That book helped me a lot. For beginners, I really don't know. I personnaly learned by myself.
I think the best thing for beginner is always a great teacher, but not everyone can afford it :(