More and more universities, colleges, and technical schools are adopting Java as the instructional language in their computer science curricula—and more and more Java-native developers are being turned out into the workplace. One day, your career may hinge on your knowledge of this popular, powerful language. But what if you don’t want to go back to school or buy training to learn Java?
You’re in luck. A wealth of free Java tutorials exists on the Web, although they vary in quality. The trick is sifting the wheat from the chaff in order to find the really good resources. We’ve compiled a list of sites offering some of the best tutorials and information available on the Web for Java programmers and grouped the sites according to skill level.
Regardless of your degree of expertise, the first thing you’ll want to do is download and install the Java development environment, variously referred to as JDK, J2SE, or J2SDK. You can download it from Sun here, and you’ll find installation instructions for Windows here.
For those totally new to programming, there are online textbooks and interactive classes available to teach computer programming with Java. Although these are aimed at beginner programmers, experienced developers could get some mileage by simply skipping the first several chapters.
Introduction to Programming Using Java Version 3.1, February 2001
This is a free, online, introductory programming textbook that includes end-of-chapter quizzes, programming exercises, and a full-text search. Previous versions of this book have been used in college-level computer science courses.
Some experience required
These resources should be useful for experienced developers attempting to transplant their skills from another language.
If you want Java information, you might as well get it from the source. Language information, documentation, and white papers, as well as Java development tools and a developer community, are all available at Sun’s Java portal.
Brewing Java: A tutorial
This site covers basic Java syntax, creating applets, classes, interfaces, and object-oriented programming (OOP). The author assumes the reader has some programming knowledge. Exercises and real examples with source are included.
IBM developerWorks Java Tutorials
IBM offers an extensive menu of free Web-based tutorials covering a wide variety of topics and skill levels, including:
- Building a Java Applet
- Java Language Essentials
- Introduction to Java for C and C++ Programmers
- Introduction to Java for COBOL Programmers
- RMI, CORBA, and Distributed Objects
About.Com Focus on Java
This site features glossaries, online documentation, very active discussion forums, and sample code. I have found these discussion forums to be particularly useful on many occasions.
These links are for those developers who have already mastered the basics and are looking to expand their Java skills.
Programming User Interfaces using the AWT and Swing/JFC (three parts)
Basic GUI Programming with AWT/JFC Part 1
Basic GUI Programming with AWT/JFC Part 2
Programming user interfaces with the JFC
This is a good introduction to Abstract Window Toolkit (AWT) and Swing programming that is intended for developers familiar with Motif or a similar X Windows System widget library. However, there are plenty of fairly general examples that should be understandable by anyone with some Java familiarity.
Developers interested in Swing might also have a look at Fundamentals of JFC/Swing, hosted on Java.Sun.Com.
Introduction to CORBA
This site features a rather in-depth introduction to using Common Object Request Broker Architecture (CORBA) from Java. It includes information on reading Interface Definition Language (IDL) and converting IDL data types to Java equivalents. A sample application with source is available for download.
Java Network Programming FAQ
While not a tutorial per se, this document has answers to many of the questions you will likely have when you attempt to create a networked or distributed application using Java.
It’s out there
One nice thing about Java is the wealth of good information available for programmers on the Web, making it easy to learn. Unlike with many other languages, you can get started without classroom training or big cash outlays. Hopefully, Java will be just the first of a new wave of languages “growing up” on the Web, offering such low barriers to entry for new programmers.