It really depends what book you buy. If your a newbie at it and buy Dummies, it will help you understand it a little better. After you do the Dummy, go for the hard ones and you will learn.
Obviously, but can you become an effecient programmer strictly through books. I'm not doubting that you can learn through them, I'm asking can you become good at it.
Honestly, you could become a good programmer, but without actually coding stuff, your bound to make mistakes a lot. You need to use the code along the way to get used to the style and such.
But than again, it can come down to who you are, some people need 'hands on experience'(in this case, actually coding on the pc as they learn) and some people can just read and understand the new information without ever messing around with it. So I believe you can program effeciently without testing and fooling around with the program code on a pc. Just the experience working with the code could help you understand the language quicker and better since your using it.