Positives Many reviewers praise this book as a comprehensive and detailed resource, particularly for absolute beginners entering the world of programming or learning Java for the first time. It is frequently described as didactic, easy to understand, and packed with numerous code examples and exercises, which are considered crucial for practical learning. For those reviewing Java concepts, the book is also seen as a valuable and worthwhile investment of time. Several readers consider it an excellent and essential text for aspiring software engineers, noting its clear structure and the benefit of color-printed pages that enhance syntax highlighting in examples. Specific editions were also lauded for their in-depth coverage of underlying technologies such as networking and concurrency.
Negatives Despite its strengths, the book receives criticism for its style and approach. Some readers found it boring, verbose, and tedious, comparing it to a "lifeless professor" lacking passion. Concerns were raised about the organization of topics, with some finding it haphazard and lacking a clear overview of how programming constructs integrate with object-oriented concepts. Critics also pointed out that the examples could be unnecessarily complex, overwhelming beginners with details rather than focusing on core concepts, and that the book often presents "how-to" instructions without sufficient explanation of the "why" or "when." Its coverage of object-oriented philosophy is frequently deemed inadequate, and some editions are noted as being outdated. Additionally, some specific editions were criticized for introducing complex topics like GUI elements too early, potentially confusing absolute beginners, and quality issues in non-English translations were also mentioned.
Conclusion Overall, this book appears to be a strong foundational text best suited for absolute beginners to programming or those entirely new to the Java language, offering a thorough and example-rich introduction. It can also serve as a useful reference or review tool for those looking to refresh their Java knowledge. However, more experienced programmers seeking a quick grasp of Java, or those looking for a deep dive into object-oriented philosophy, might find the pace too slow and the explanations insufficient in those specific areas. While comprehensive, potential readers should be prepared for a dense style and potentially complex examples, which may necessitate dedication to fully engage with the material.