Java can be particularly problematic for experienced programmers. If you have a background in some other language with a C-like syntax, it is tempting to assume that Java works just the way those other languages do. But you’ll soon run into problems. A C programmer will have to learn Java’s Object Orientation from scratch. C++ and Objective-C users will discover numerous substantial differences. And C# users will find that, in addition to syntactic differences, the Java libraries are quite unlike .NET.
This month I’ve been looking at three books that should, in principle, help programmers get over the hurdles of learning top program in Java. Two of these books ‘The Java Tutorial’ and ‘Learning Java’ provide graded lessons which aim to teach you all the important features of Java. The third book, ‘Java 7 Pocket Guide’ is a slim reference to the Java language and libraries.
The Java Tutorial $49.99
A Short Course On The Basics 5th Edition
by Sharon Biocca Zakhour, Sowmya Kannan, Raymond Gallardo
Written by three technical authors from Oracle, this book that covers the major features of release 7 of the Java language including new features such as NIO.2, the new file IO API. In spite of its claim to be a ‘short course’, this is a fairly weighty book that runs to over 700 pages. While Java programs can be written using a variety of different editors and IDEs, this book assumes that the NetBeans IDE will be used (NetBeans would my own choice for cross-platform Java development too) and the introductory section explains the details of setting up this IDE. Thereafter, the book does not make much reference to specific IDEs so if you are looking for a keystroke-by-keystroke, menu-item by menu-item guide, this is not the book for you.
The book comprises nineteen chapters plus an appendix that gives guidance on preparing for Oracle’s Java Programming Certification examinations: level 1, 2 and Java SE 7 Upgrade exam. This focus on certification will have obvious appeal for anyone preparing to take these exams. It may also explain the structure and tone of the book itself which, I have to say, I found pretty dry and academic. This is not a book that leads the reader into Java programming in a gentle or discursive way. On the contrary, it introduces topics in strictly logical groups – so, for example, when control-flow statements are discussed in Chapter 3, you get the whole bunch of them, one after the other: if-then, if-then-else, switch, while, do-while, for, break and so on. Often the book reads more like a reference guide than a ‘course’ on Java.
Still, to give credit where it’s due, it does cover a lot of ground – everything from interfaces and inheritance to collections and concurrency. It’s not an easy read, though, the layout is quite basic with pages of text broken up with code samples but very few illustrations and hardly any other layout niceties such as margin-notes or box-outs.
Overall, this is an information-dense guide to Java which may certainly be of use of experienced programmers who want to get up to speed with Java. I wouldn’t recommend it to novice programmers, however, or to anyone who wants an easy or fun way of learning the language.
Learning Java $49.99
by Patrick Niemeyer and Daniel Leuk
This is an even bigger book than ‘The Java Tutorial’. In over 970 pages and 24 Chapters, this book covers the core Java programming topics from the basic syntax and object orientation to file IO and concurrency. I also covers the graphical user interface tools and components in considerable detail (something that is barely mentioned in the last book).
In fact, on the whole, I’d say that this book forms a more satisfactory tutorial than ‘The Java Tutorial’. It may not be quite as well structured for anyone who needs to study towards Java certification, but it covers a broader range of ‘general interest’ programming topics including; for example, the fundamentals of drawing and graphics. While it does not require a specific IDE, Eclipse is described in more detail than any other – and some basic information on setting up and using NetBeans is also given.
Once again, I wouldn’t recommend this book for programming novices. For anyone with some programming experience under their belt, however, it provides a very decent guide to the Java language, libraries and tools and it comes with a good range of code samples.
As with the last book, the layout and design is functional rather than aesthetic. There is lots of text interspersed with code but relatively few screenshots, boxouts or other design elements. This new edition has been update for Java 7 and, while it would take a Herculean effort to start at page 1 and continue reading right through to the end, I generally find it’s a good book to dip into and it bridges the gap between a graded step-by-step course and a plain reference work.
Java 7 Pocket Guide $14.99
by Robert Liguori and Patriccia Liguori
If weighty tomes are not your thing, this book might be more appealing. This slim 200-page book is about the size of an Ed McBain novel. In 17 short chapters, it describes everything from the very elementary features (naming conventions, keywords, operators and so on) through to IO, concurrency and generics. As you would expect in such a short book, the topics are not described in great detail and code examples are fairly short.
Even so, this little book provides a useful overview of the fundamental features of Java. It would be a useful book to have close at hand as a short reference guide or to jog your memory. Far from comprehensive, this is nonetheless a handy book to keep around.