book cover

Title : Learning Java 2nd Edition
Author : Patrick Niemeyer and Jonathan Knudsen
Pages : 700
Publisher : O'Reilly
ISBN : 0-596-00285-8
Review by : Joe Haynes (jhaynes -
Date: 25 Sep 2002 20:35:13 -0600

Learning Java by Patrick Niemeyer and Jonathan Knudsen, Second Edition

I've recently started a project that called for parts to be developed in Java. Having no experience in Java, I decided to start by reading through several introductory books. Most of these were pretty straightforward. They started describing the simple semantics and object oriented structure of the language. But, as I read on, it seemed to take forever for the books to teach anything useful. The first chapters covered the creation of a simple web browser based "apps" but didn't cover creating a full stand-alone application.

In other words, I longed for a deeper explanation and a book that taught Java without holding my hand or insulting my intelligence with feeble applications.

Luckily, "Learning Java" is a book that takes a more direct approach. The first chapter includes the usual history of java along with a quick dose of java's philosophy. But the second chapter begins by introducing almost every large component that can be used in a Java application. The example programs include swing components, graphics objects (used for rendering graphics), threading and catching exceptions (using Java's internal mechanisms for recovering from run-time errors).

Chapter two answers the question, what's the best way to start creating an application? How do I compile my first program? And, how do I start to make use of Java's object orientation by adding classes?

In a short span, the authors provide the answers to these questions with examples. Even better, these examples are explained so that the user understands a concept before being saddled with a label (I found this approach to be helpful when learning about the facets of object oriented programming).

After the first two chapters, the books follows a path of learning laid out in the examples of chapter two. The basics of the language are followed by a broader explanation of working with objects and classes. The rest of the book covers broader subjects such as text processing, network programming, web based applications, screen layout components, graphics programming, javabeans, web applets, and XML (new to this edition). In general, I found these chapters be well written and a great resource for tackling problems within my own project.

This book isn't for a user just learing how to program. Users should have at least some background in programming like C or PERL to understand the authors comparisons between Java and other languages (which I found to be helpful even though I do not have experience with C).

The most enjoyable aspect of this book is that it doesn't follow a cookie-cutter approach to teaching Java. Explanations of complicated subjects are spread throughout instead of being crammed into dedicated chapters. Best of all, the authors demonstrated some of Java's advanced utilities while teaching the fundamentals of the language.