ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1949 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Learning Java 2ed
Patrick Niemeyer&Jonathan Knudsen
0 596 00285 8
807pp + CD
Ivan Uemlianin
Appeared in:
'Learning Java' is a well-written exploration of Java's features. However, its support for learning the language is poor. Ironically, given the book's history, 'Exploring Java' would have been a better title.

After two chapters introducing Java, chapters 3-8 cover the language basics, chapters 12-14 cover network and Internet programming, and chapters 15-20 cover the Swing GUI toolkit (the Swing chapters take up around a quarter of the book). Other chapters cover various topics like text, i/o, JavaBeans, Applets and XML.

The book is not organised into parts and, apart from the fact that simple topics are generally discussed before complex topics, the course of discussion can feel arbitrary. For example, the XML chapter is the last in the book, 14 chapters away from the text chapter, and 10 chapters away from web programming. This can make progress through the book feel a little haphazard.

It is clear that the reader is assumed to have a programming background, and the basics are covered very tersely (e.g., on p.90, do/while gets, "the do and while iterative statements have the familiar functionality").

There are no exercises. This means that the book cannot be used for self-study, and is of limited use for study with an instructor: instructors will have to use their own ingenuity or find another source for exercises. There are plenty of examples, however, almost all of which work as advertised.

The book is at its best when most discursive, (e.g., chapters 5-7 on Java's style of object-orientation). The authors explain their topics well when they give themselves the space: for example, five pages on internationalisation is not enough space, but I found the section on sockets (15 pages in a chapter on network programming) quite useful.

For its first two editions this book had the title 'Exploring Java'. 'Exploring Java' is still a better title and fits the book better than 'Learning Java'. As a discussion of Java's features, with the reader released from the pressure of having to 'learn', the book works very well. The pitch of the book makes sense: the reader knows a bit of Java and would like a more rounded appreciation. As a book for learners, it is flawed: there are no exercises; the structure is piecemeal rather than progressive; the pitch level is not consistent.

I could perhaps recommend this book for either (a) an experienced programmer who wants to become familiar with the details of Java without bothering too much about the basics (although in this case something more focussed on a problem domain might be preferable); or (b) a learner who has a basic course under their belt and wants to explore the language a bit more.