Learning Java? Some Hints for Developing Web Software

A good book and a decent development environment are staring points.

All products featured on WIRED are independently selected by our editors. However, we may receive compensation from retailers and/or from purchases of products through these links.

OK, OK. So everyone tells me I need to learn Java, but what should I do to learn it? I went to get a book. There are 200 of the things ... which one should I get? Also, the JDK is kludgy. What's a good GUI interface for working up to speed? Visual J++ from MS?

- Brett Breitwieser


Learning Java is definitely the right way to go if you're planning to develop software for the Web. It will probably be another six months before it displaces Microsoft Visual Basic or Borland Delphi as the tool for building standalone applications, but you might as well start learning now.

As your question indicates, you've identified the two starting points for learning Java: a good book and a decent development environment. There is a wide variety of good texts for learning Java. Your choice should depend largely on your programming experience. If you've done a lot of development in C or C++, you might want to use Sun's Java Series of books published by Addison Wesley. Ken Arnold and James Gosling's The Java Programming Language is the definitive reference for the language, and Gosling is one of the creators of Java, so he knows his stuff. Many people swear by Laura Lemay's Teach Yourself Java in 21 Days as a good introductory book. I'll risk conflict of interest and point out that my Java Sourcebook, published by J. Wiley and Sons, isn't bad either. In any event, new programmers will want to look for the following in a Java book:

  1. A thorough discussion of object-oriented programming

  2. Coverage of the language with lots of examples

  3. An explanation of the Java class libraries (packages), which provide the building-block objects you'll use to construct Java applets

  4. An in-depth look at the AWT (Abstract Windowing Toolkit), which is Java's user interface library

In addition, you'll probably want to look for a book that talks about:

  1. Network programming

  2. Multimedia and animation

  3. Integrated Development Environments (IDEs) like Symantec Cafe and Microsoft J++

  4. Writing standalone applications

I recommend that you go to a bookstore with a good technical section and thumb through the table of contents of various Java books. Look for one that covers as many of the above topics as possible. If you've got the money to spare, pick up a good tutorial and a thorough reference, since it's rare to have both in one book.

Your choice of a development tool is going to depend on which platform you use. If you're on a Mac or PC, make sure you get an integrated development environment. Mac people should check out Metrowerks or Symantec Cafe.

Windows people have a choice of tools from Microsoft, Symantec, Sun, Borland, and others. My current favorite is Symantec Cafe, although Microsoft Visual J++ isn't bad either. Cafe has been on the market the longest, and it works the best. The GUI builder is fine for small projects, but if you're going to do anything serious, user-interface-wise, I recommend that you use Marimba's Bongo for the UI.

Microsoft Visual J++ has the fastest Java implementation on the market, and it's the only choice if you're trying to write ActiveX controls in Java, but it still has some bugs in it that sent me back to Cafe. If you use it, make sure you've got the latest version from Microsoft's Web site. An added bonus to J++ is that it comes with a pretty good book, Learn Java Now, included in the box. Both Cafe and J++ have decent debuggers - a must if you're building large applets.

Unix people will probably be happy using EMACS and the command line tools. Sun's Java Workshop isn't bad, but it's a little clunky in places. It's the best choice if you're running Solaris and want a graphical IDE.

Hopefully this will help you get started programming with Java. Best of luck!