You can only learn how to practically use the language by...practicing it in the real world. No book can teach you that because the real world is too complex.
Disagree.. A book could easily show you some basics for project/directory structure, basic code organization, documentation, simple defaults that can really make life easier for a noob. With that he can get used to it and compare code he has to work, or is reading, with what he has already been taught.
I think it's undeniable that we spend most of our time by debugging and fixing the existing code structure, bugs, defects and sometimes adding new features. I highly doubt of existence of a book that can teach how to effectively do that.
It's a luxury and real pleasure if you are asked to create the project from scratch in a real job.