I am including a detailed (and useful) review of this book that somebody posted at amazon.com
"I'm not a professional programmer---just someone who enjoys writing programs as a hobby. I signed up for John Smiley's Java Study Group, which is a Blackboard.com based learning environment. The Study Group used this book as the course textbook, and I found it to be a wonderful vehicle to learn Java---which I think is a more difficult language to learn than Visual Basic.
First off, I should tell you that I'm a big fan of John Smiley and his books. I have all four of his Visual Basic programming books, and I used them to learn how to write my first computer program. I've also participated in many of his on-line courses, and subscribe to his Visual Basic mailing list. When John Smiley writes a book, he builds a community around it, with a support structure consisting of a web page and mailing list. If you need help, you can also email him--and he'll actually write back to you, although not necessarily the same day or with a
direct answer (he is a teacher after all!)
Here's my evaluation of Learn to Program with Java:
WHAT I LOVE ABOUT THE BOOK:
1. It's written so that anyone can understand it, in other words, you don't have to be a nerd to understand it. My husband is a computer programmer, and if I want to be spoken to in 'geek-speak', I would have let him teach me Java. I needed a book that patiently explained, in detail, the fundamentals of Java programming, not only the how-to-do but the 'why's' behind the language. This book did exactly that.
2. In each chapter he presents a demonstration program to illustrate the points he is trying to make.
3. Each chapter has a series of exercises for the reader to complete, with detailed instructions to guide you in completing it. By my count, there are about 100 of these exercises which contribute greatly to your learning experience.
4. During the course of the book, a real-world working Java program is developed. Each chapter has a series of exercises in which the reader is given instructions to complete the project, so that by the end of the book, you'll have developed your very own Java program. Many books concentrate on developing lots of small programs---with the result being that at the end of the book all you really know how to do is write small programs. At the end of this book, you'll feel capable of tackling your own real-world program.
5. There are lots of screen shots (hundreds) to help make learning Java easier.
6. I found the book very well organized and laid out. it starts out dealing with fundamental programming concepts like variables, If statements, and loops, and then progresses to the more difficult topics of Objects, the essence of Java programming. By the way, his coverage and explanation of Objects is the best I've ever seen--and my husband the Java programmer agrees
7. The book is written in the context of an actual classroom using fictional students. I feel this approach is one the books greatest assets, although I recognize that some readers may not feel the same way (see below under 'What you may not like'). 'Students' ask questions, and the author answers them. Just like a real classroom, some students ask 'good' questions and other students ask 'dumb' questions. I must admit that many of the 'dumb' questions are those I would have had myself (but been too timid to ask) if I had learned Java at an actual school. I actually found myself growing to 'like' some of these 'students'---and anxiously waiting for one of them to ask their next question.
8. The style of the book makes it OK to be technically challenged. I can't recall a single phrase such as 'of course', 'obviously' or 'it goes without saying' like I find in so many other computer books. If the author has an
ego, he isn't using his books to stroke it.
9. The author has an uncanny way of answering questions in the text just about the time they pop into your head. Not surprisingly, he does this by having one of his fictional students ask the question. This is an amazingly effective learning technique.
WHAT YOU MAY NOT LIKE
1. The style of the book which I like so much, a conversational style built around a fictional classroom, can bother some people, especially those people looking to get right to the 'meat' of the subject. This style probably inflates the page count of the book by a few pages, and there is a bunch of 'he said', 'Rhonda asked' type comments scattered throughout. However, I found the style amazingly effective---imagine Mr. Rogers teaching your High School Physics or Calculus class.
2. The book doesn't jump right into Java--instead, there's an initial chapter on the Systems Development Life Cycle and how to develop a Requirements Statement to work from. Some readers might find this a 'turn off', but personally, I found it very useful, and use the methodology in the programs I write.
3. The book is definitely introductory. It doesn't cover advanced Java topics, but the topics it does deal with it covers better than any other book I've seen. Let's put it this way--after you're done with this book,
you should feel comfortable in writing your own Java program.
If you need to move onto advanced Java concepts, you'll have no problem reading some of those other books.
4. The book doesn't cover Applet creation, something I really wanted to learn, but the author has posted a chapter on Applet creation on his website at:
http://www.johnsmiley.com/java/chapter14.htm In summary, I highly recommend this book to anyone wishing to learn Java."