Off the Shelf:
Learning Java from Books

By Beth Tibbitts, IBM Global Services

With the sophisticated and much-lauded learning techniques of today's wired world, some concerns have been raised over teaching Java with "old-fashioned" books. After all, Java is changing traditional technology paradigms, so shouldn't its teaching methods change as well? Holger Opderbeck, in "Using Next Generation Technology for Java Education" (Java Report, July/August 1997) says, "Java's development is tied to the rise of new communication technology, but we still rely on the same old learning technology to teach it: the printed book."

The bottom line is: If you need to learn Java, one or more books will enter the picture in some way. Other methods for teaching Java--traditional stand-up classes, self-paced multi-media instruction, etc.--will fill in additional information and often jump-start your Java education, but books remain a vital component of Java education.

The History of Java Education Books

First, let me say that I love books. A librarian once told me: "The one that dies with the most books, wins." There is something tangible about a book. You can pick it up and hold it. You can read it cover-to-cover and know you have covered all the points the book has to make. Or, a well-indexed and cross-referenced book can allow you to skip around. You can put notes in a book, scribble in the margins and underline, and easily find things later. You can carry a book almost anywhere and read it. You can bring a book to bed and it doesn't get the same icy stares as does the laptop :-) . And, probably one of the most vital characteristics I have found--you don't have to close the book during takeoff and landing.

When I began studying Java in late 1995, there was literally only one book available: Hooked on Java, by Arthur Van Hoff, Sami Shaio, and Orca Starbuck. Although it whetted my appetite for Java, it didn't focus very much on programming. Next came Laura Lemay's classic, Teach Yourself Java in 21 Days (with Charles Perkins). This was the first complete book for the programmer, and I devoured it. Lemay's casual style doesn't offend the knowledgeable programmer, yet it doesn't intimidate the novice. I guess you could say I cut my teeth on her first Java book. (Lemay is well-known for her earlier works, particularly her HTML books.)

The original Java in a Nutshell: A Desktop Quick Reference for Java Programmers by David Flanagan came next. Published by O'Reilly, it was the first real reference book for Java programmers; it was concise, and, in addition, its introductory information seemed just right for C++ programmers who wanted a quick, no-nonsense approach to learning Java. Other books surpass it now in reference quality, but at the time it was really handy, cheap, and portable. I ordered boxes and boxes of these books to hand out at seminars and classes I taught. (People still appear at my door asking if I have any more to give away.)

At about this time I attended my first JavaOne Developer Conference, a mecca for Java programmers that's sponsored by Sun Microsystems. I came away with a copy of Core Java by Gary Cornell and Cay S. Horstmann. I took the red-eye flight back east, and I was engulfed by this book. It was the best book yet, and still seems to be a favorite for the "hard-core" (no pun intended) programmer. No fluff. No applet and Internet hype. This book was and still is terrific three editions later. (I have them all.)

Different emerging Java books proved to be useful for different purposes, though, whether for language reference, API reference, a particularly good description of packages, javadoc, AWT, or GridBagLayout. (The best API reference is The Java Class Libraries: An Annotated Reference, by Patrick Chan and Rosanna Lee.) The "examples" books started to appear, too, that didn't provide Java instruction, but lots of code to read or applets to imbed in your very own Web page. (These are also useful for the non-programmer, because they usually contain CD-ROMs of ready-to-use applets.)

Applets. While most people would expect this to be the focus of every Java book, and they are to some extent, their coverage usually provided a "make or break" difference for me. Java consists of much more than "applets on a Web page" -- I create Java applications more often than applets, so books that tend to ignore applications in favor of applets or even to claim that the AWT could only be used in applets and command-line interaction only in applications (book title and authors omitted--the lawyers made me do it) quickly made it to the "Mediocre" heading of my by-then growing Java book Web page within the IBM firewall. Java is a wonderful, well-thought-out, simple, usable, and portable language, not to mention its run time freedom from operation system dependencies (well, that's the intent anyway).

Of course sooner or later we all expected a "Java for Dummies" book, and it faithfully appeared, along with "Java Programming for Dummies" -- an interesting acknowledgment that Java was not just for us Dilbert nerd programmers, but could be used and exploited by non-programmers by dropping in prefabricated, customizable applets.

Books that truly cover Java 1.1 are undergoing a similar history, and the good ones are slowly showing up.

What Makes a Good Java Book?

A good Java Education book must be accurate-for me, that means applet/application focus problems. (I'm talking about Java books for programmers here.) It must describe the Java language and only then move on to applets and applications. The index must be good (many early ones were really terrible) because, the reason a book is worth buying is probably because of its reference value. The style should be easy to read (your taste here varies depending on your experience) and not too chatty. And for me, a really good Java book must be engaging. I still pick one up every once in a while that, when I flip to something in the middle and start reading, I have trouble putting down.

Many Java books include a URL for a Web site with errata, discussion, supplementary material, and code fragments from the book. Now most books include a CD-ROM as well, but these are usually outdated by the time you buy the book. A book's companion Web page is usually more up-to-date. However, if you do not have Web access, a CD-ROM would be useful.

At least one Java book claims to be "interactive" with its companion Web site: Laura Lemay's 1.1 Interactive Course, by Lemay, Perkins, Morrison, and Groner. (Waite Group Press, ISBN: 1-57169-083-2, $49.99, 1192 pages). The Web site assists the student in working through the book, provides interactive quizzes, etc. This initial version of the book incorrectly advertised itself as teaching Java 1.1 and has many other glaring errors besides, so it's not a good example.

Using Java Books with Other Media

Opderbeck says, "The author of a traditional book is limited to a sequential presentation of concepts and ideas," but that can be an advantage: The material must be presented in a well-defined, logical, easy-to-follow order.

I have used much HTML reference material for Java, and frankly, while it's invaluable for just that-reference-I tend to get lost if I start reading it as a tutorial. Besides, now I always use the Sun HTML API pages as reference material.

Anyone learning Java is best served by using a variety of education media. David Moskowitz, in "Java Training Without Getting Soaked" (also in Java Report, July/August 1997), covers a variety of considerations for planning Java training. If you are fortunate enough to be able to schedule a class for your team, a stand-up class is probably a great way to start off. Get the group centered, and allow them the give-and-take during the class to find some common ground. Invariably, though, the timing never works out for everyone. Self-paced instruction, including the multi-media CD-ROMs that are now becoming available, will help. But some people just don't like this kind of education. They prefer a "do it yourself" approach, in which they get a good book and try out the examples themselves.

Many good classes include textbooks. If they don't, please plan on investing in a good Java book-at least one, and I suggest more than one. You'll supplement what you learn in class, filling in the details missed in the class as well as gaps in your prerequisite knowledge, and you can follow an interest and find out more about a particular topic. After the class, a book is easier to use to refresh your memory of what you learned than class notes usually are.

If planning formal Java education, please heed what I feel is Moskowitz's most important caveat: Schedule Java classes so that programmers work with Java right after the class. New knowledge gets stale quickly if it's not used.

Opderbeck also criticizes printed books for their lack of detail at critical points and for the fact that different readers have different backgrounds. This is true. Motivated readers will flip through the book (or some other book) to find what they need to know. Opderbeck and Moskowitz both emphasize the importance of being able to ask questions-if your book, CD, classroom instructor, or Web site doesn't provide the answer, find a person to ask. Having "Java mentors" handy is invaluable. Show up at their doors. Catch them in the hallway. Send them email. In a less personal vein, post to newsgroups or other online discussions. (The noise level is a little high, however.)

Opderbeck also says, "Many readers buy multiple books because they can't find all the information they need in one source." So? (But remember, I'm addicted.) I also doubt that any single medium will cover everything, so, as in the stock market, it's best to diversify. Buy (or borrow) a book!

Although more "modern" forms of instruction will invariably make inroads into the learning process, I don't believe the book will ever truly be replaced. Perhaps it will be supplemented by other things, but that tactile sense that a book gives can never be completely replaced (not for me at least) by looking at a monitor screen.

For more information on Java books see

Beth's extensive library of reviews on this site.



Comments: Send your comments about this White Paper to Beth Tibbitts - btibbitts@vnet.ibm.com



JavaTM is a trademark of Sun Microsystems, Inc.

Other companies, products, and service names may be trademarks or service marks of others.

Copyright    Trademark



  Java Feature Java Education Java Home  
IBM HomeOrderEmployment