Although I think Horton's book is excellent for somebody with a firm background in C++, he attempts to teach abstract content with more abstracts, yet only to pile more abstrats on later! For example, he uses math too often in his logic, when other content will do.Other authors do a much better job at teaching the Java language by example, rather than boring the reader with meaningless math operations. (If you are hung up on math, why not use something that is "real world" since Java is a real world computer language.)I just can't recommend this book.