|New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About| |
Keywords: Java, UML, OOD, Design Patterns, JDBC, JSP Title: Java How To Program (5e) Author: Deitel and Deitel Publisher: Prentice Hall ISBN: 0131016210/0131202367 International Edition)
Media: Book, CD Level: Introductory Verdict: Probably the best single volume introduction to Java, programming and design |
It's big. It's heavy. It's got more type faces than a ransom note. It promises everything. Well, it promises plenty on the cover: OOD, design patterns, UML, JDBC, JSP and a whole lot more. Just about the only acronym not on the cover is XML? So, does this fifth edition of Java How To Program deliver the goods? And how does it compare to some of the other weighty introductory Java texts, such as Ivor Horton's Beginning Java 2 or Bruce Eckel's Thinking In Java?
This is an annoying book in many ways. For a start it really is too big. I'm sure there are sound commercial reasons for the bulk, but the fact is that there should be better ways of attracting the reader than page count and pure physical mass. The book feels padded out with material that could easily be skipped without loss of informational value. Each of the 25 chapters concludes with a lengthy summary, self-review exercises, terminology (a simple list of keywords mentioned in the chapter), answers to self-review exercises, additional exercises and projects? There's a lot of useful material there, but a good part of it could be usefully migrated to the CD and/or web site. If nothing else, reducing the size of the book would make it more bath-friendly, as it is there's no easy way to enjoy a soak and this book at the same time (whaddya mean you don't read computer books in the bath?). Those quibbles aside, this is a book that really takes its job seriously. The aim is to teach Java, programming and some elements of design. This is a task that the authors take extremely seriously. The design of the book is excellent. The layout is superb, and the use of colour is exemplary. The code listings, for example, are colour coded in such a way as to draw the eye to the interesting features, and the syntax colouring helps to navigate through code, comments, and text. The text itself uses different type faces to flag different items, and again the design aids rather than hinders the reader. Aside from the design, the content itself is generally of a very high quality. This a book that's been honed over four previous editions, through countless courses and online activity, and it shows. This a text that is designed to teach and it works. There's some repetition, but then repetition is a core teaching practice that helps the student. The selection and ordering of topics sometimes feels odd, but I guess there's a method to the madness, because overall this is one of the best introductory Java books we've seen to date. For example, rather than dive straight into the mechanics of object orientation and classes, the book starts with a look at the concepts of structured programming. This is how programming developed of course, and it really makes sense to emphasis the use of structure, organisation and methodology before launching into objects. Another difference between this and a book like Horton's, for example, is the emphasis on design. The promise of UML is delivered using a single project that is followed through from initial concept through to coding and implementation. In the process the different UML diagrams and concepts are explored, and of course the translation from design to coding is also illustrated. This single project is an optional extra that is tacked on to different chapters, and the book can be read without once having to look at these sections. But if you do, then this is a good first introduction to UML (though it's that, an introduction and nothing more). In contrast, the optional sections on Design Patterns are less useful, though still of some interest. Other optional material include projects (such as a building a compiler), which are clearly targeted at the formal classroom environment. Finally, the book also includes a CD that includes a copy of the Sun JDK (1.4.1), Sun ONE Studio Community Edition, Apache Tomcat v4.1.12 and an evaluation copy of IBM's Cloudscape Server (for the section on JDBC, JSP and Servlets). It's a single source of everything you need to get up and running with Java development. Overall, despite some quibbles, this is without doubt one of the strongest introductions to Java available today. Hand on heart, if asked to chose one book for the would-be Java programmer, it would have to be this one above all others.