Resources


OSU CSE Environment: Tool Use, Installation, Configuration

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

Coding Conventions and Good Practices

  • Effective Java, Second Edition, by Bloch. Organized around a series of "best" practices, this book is an excellent resource for coding style, conventions, and idioms. It is widely read and accepted as the definitive guide to good practices in Java programming. [online]
  • Clean Code: A Handbook of Agile Software Craftsmanship, by Martin et al., describes a variety of good practices for writing code that is easy to understood, debug, and maintain. The book has a strong Java flavor, although many of the strategies it presents are language neutral. The last chapter is a concise summary of many "code smells" that signal violations of good practice. [online]
  • Coding conventions from Sun. This document is brief and superficial (but still useful, and universally adopted).
  • Elements of Java Style, by Vermeulen et al., is a small book (140 pages) 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. A white paper by one of the authors, Writing Robust Java Code, is recommended with similar reservations.
  • Geosoft's Java Programming Style Guide provides very good advice on lots of low-level idioms and conventions.
  • Random collection of java practices

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]
  • How to Write Doc Comments for the Javadoc Tool, the style-guide from Sun for Javadoc
  • 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, 5th Edition, 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. Despite the title, this is not the most direct introduction to the language. It is fairly thorough though, so it can be useful as a reference (after you have learned the language). [online]