Resources
Textbooks
- Head-First Java, by Bates and Sierra.
A light-hearted, and sometimes amusing, introduction to
Java that assumes some programming background, but no
experience with Java.
[online]
- Big Java, by Horstmann.
A good (but expensive) introductory text. It includes useful asides
addressing "common errors", "quality tips", and "advanced topics".
The testing approach it advocates, however, is somewhat rudimentary.
- Absolute Java, by Savitch.
A thorough (but expensive) introductory text. It has less glitz
and takes a more direct approach than Horstmann's book.
- Java by Dissection, by Pohl and McDowell.
This inexpensive book is a basic introduction that thoroughly
covers fundamentals for novice programmers.
Language Reference Material
- The Java Programming Language, by Arnold, Gosling, and Holmes.
This book is a classic and definitive reference for Java.
- Core Java, Volumes I and II, by Horstmann and Cornell.
Two book series similar in content to the "Big Java" textbook, but less glitz.
[vol I online,
vol II online]
- Java 2 SE v.5 API,
Java 2 SE v.6 API,
- Trails, Sun's online Java tutorials
- Setting the classpath in
Windows
and
Solaris
- Introduction to Programming Using Java,
a free on-line textbook by D. Eck
Coding Conventions and Good Practices
- Effective Java Programming Language Guide, by Bloch.
Organized around a series of "best" practices, this book is an excellent resource
for coding style, conventions, and idioms.
Although some of the advocated practices are no longer relevant
given the features introduce in Java 5 (e.g., typesafe enumerations),
many chapters are still relevant today.
[online]
- Talk
by Joshua Bloch at a recent JavaOne Conference on his upcoming
revision, "Effective Java Reloaded"
- Interview
with Joshua Bloch on the topic of design
- Coding conventions
from Sun. This document is brief and superficial (but still useful, and
universally adopted).
- Elements of Java Style, by Vermeulen, is a small book that expands on
Sun's coding conventions. It is recommended but with reservations:
the book is out dated (published in 2000) and some of its style
rules are bogus. On the whole, however, it is generally relevant.
- Geosoft's Java
Programming Style Guide provides very good advice on lots of low-level
idioms and conventions.
- Random collection of java practices
- How to Write
Doc Comments for the Javadoc Tool, the style-guide from Sun for Javadoc
Tools
- Eclipse Tutorials,
a step-by-step introduction to Eclipse, along with video. This is not the
fastest introduction to the Eclipse IDE, but it is simple to follow. The
tutorials include a series of lessons for complete beginners, as well as
a series of lessons on using the debugger.
- Eclipse Distilled, by Carlson.
This thin tutorial is the classic introduction to Eclipse.
After presenting Eclipse's basic functionality,
the book focusses on how to use Eclipse to support
an agile development methodology.
[online]
- An
Early Look at JUnit 4, from IBM developerWorks, gives a nice overview.
It is written for an audience with JUnit 3.8 experience, but it is still
accessible for JUnit novices.
Books to Avoid
- Java in a Nutshell, by Flanagan.
This book used to be the canonical concise reference. With each
release, however, the nutshell has become larger and larger.
[online]
- Thinking in Java, by Eckel.
The popularity of this reference is partly due to it having been
freely available in electronic format. The most recent edition,
however, is not free and older editions do not cover version 5.
- Learning Java, by Knudsen and Niemeyer.
This is not the most direct introduction to the language.
[online]