This is a very good book, to the right audience. It is first and foremost an introduction to programming, second an introduction to programming in an object-oriented language, and third, an introduction to Java.
So, the keys to liking this book are:
1. You have not programmed before, or only a little
2. You want to learn to program in an object-oriented language
3. You want solid skills, not to add Java to your resume
If your main goal is to learn Java, or to learn enough Java to apply for a Java programming job, there are better books. In this book Java is a means to an end, that of learning to write software. You'll learn a fair amount of Java -- nothing to sneeze at, definitely -- but it's only the first step of many towards mastery of the Java platform (which is *huge*, no one book will tell you all you need to know).
If, on the other hand, you don't know how to program, and think you might like to learn, this is a pretty good book, and you'll learn enough Java to be ready for the next level.