1.8 Using This Book
In this section, I suggest how, in my opinion, you'll get the most out of this book.
1.8.1 Navigating the Material
I've tried to introduce topics in a logical order, but also to accommodate those readers who will want to skip directly to topics that are of interest. While I'd recommend taking everything in the order presented, you should be able to jump to any chapter, or any major topic within a chapter, and find what you need in that fashion. Within individual topics, you'll find that reading from top to bottom and left to right is absolutely essential for comprehension.
I've tried to make liberal use of tables and boxed material, especially near the beginning of each chapter to call out summary information about the material covered in each chapter.
1.8.2 Exercises
Most chapters have exercises provided at the end of the material. These exercises range from fairly simple to cruelly complicated. The exercises are intended not so much as a review of previous material, but rather as a jumping-off point to explore the material further. In many cases, you'll find that if you attempt the exercises, the material provided in the chapter won't be sufficient. The Further Reading links that are provided conveniently nearby should provide any additional information you need for completing the exercises.
1.8.3 Design Centers
One of the occasional features that will pop up in various chapters is a boxed item called a Design Center. In the Design Centers, I try to summarize the decision criteria that come into play in deciding between two or more technologies that are somewhat similar, where it might be unclear which one is better-suited for a particular task. Some of the Design Centers you'll find include when to use XML Attributes versus XML Elements; when to use DOM, SAX, and JDOM to parse XML documents; and choosing between SOAP Messaging and SOAP RPC models for designing Web Services.
1.8.4 API Reference Material
This book is intended to be instructional in nature. Many of the topics covered here in a single chapter could easily be expanded to full book length. Because of the amount of material covered, it's impossible to provide exhaustive reference material for every API and product that is touched upon.
I've tried to strike an appropriate balance between instructional content and reference material. For the most part, I favored the instructional material, but I also tried to pay close attention to how I do development work. If you're going to always be sitting in front of your computer, then it is simple enough to just open a window to the javadoc API guide for whatever packages you're using. But since I tend to write a lot of code sitting at the kitchen table or sprawled on the family room floor, I like to have at least enough reference documentation close at hand to let me scope out the basic flow of each method I develop. I can always dig deeper into the exact details of an API when I'm actually entering the code back at the computer.
If this isn't your working style, then this is of little interest to you. But if you do something similar, I've tried to selectively include API documentation for those classes in each package that you're most likely to need. In servlets, for example, I include full API documentation for the HttpServlet, HttpServletRequest, and HttpServletResponse classes. I don't include the various superclasses they extend, or the details of the exception classes, or the stream classes that they utilize, since these are all pretty much what you'd expect them to be.
I've also placed the API documentation inline in the chapters where they are discussed, rather than collecting them separately into an appendix. I feel that this is where you're most likely to want them, and the intent is to optimize the experience you're having as you read the material sequentially. For coming back later to refer to something, you're either going to be more likely to grab another book that is more reference-oriented, or be willing to make the extra stop by the index on the way to your destination.