Books are good, but the best books for me are the ones that guide you through hands-on coding exercises; and online learning systems are a better way to do that.
What I'm really saying is this will remain a personal question with no right and wrong answer. Some people learn best from books, others from tutorials, others from pairing. Most important thing is to find your learning style.