<ppdoc>
<copyright>
    Copyright (c) 2001 by Addison Wesley Longman.  This
    material may be distributed only subject to the terms and
    conditions set forth in the Open Publication License, v1.0 or
    later (the latest version is presently available at
    http://www.opencontent.org/openpub/).
</copyright>
<chapter  ref="xref-000001" name="Roadmap">
<p/>
The main text of this book has four separate parts, each with its own
personality, and each addressing different aspects of the Ruby
language.
<p/>
In Part I, <em>Facets of Ruby</em>, you'll find a Ruby
tutorial. It starts off with a short chapter on some of the terminology
and concepts that are unique to Ruby. This chapter also includes
enough basic syntax so that the other chapters will make sense. The
rest of the tutorial is a top-down look at the language.  There we
talk about classes and objects, types, expressions, and all the other
things that make up the language. We even end with a short chapter on
digging yourself out when trouble strikes.
<p/>
One of the great things about Ruby is how well it integrates with its
environment. Part<nbsp/>II, <em>Ruby in Its Setting</em>, investigates this.
Here you'll find practical information on running Ruby, and using Ruby
with the Web. You'll learn how to create GUI applications using Tk,
and how to use Ruby in a Microsoft Windows environment, including
wonderful things such as making native API calls, COM integration, and
Windows Automation. And you'll discover just how easy it is to extend
Ruby and to embed Ruby within your own code.
<p/>
Part<nbsp/>III, <em>Ruby Crystallized</em>, contains more advanced material.
Here you'll find all the gory details about the language, the metaclass
model, tainting, reflection, and marshaling. You could probably
speed-read this the first time through, but we found ourselves using
the tables in this section even as we were writing the rest of the
book.
<p/>
The <em>Ruby Library Reference</em> is Part<nbsp/>IV.  It's big. We document
over 800 methods in more than 40 built-in classes and modules. On top
of that, we have another 70 pages describing some of the more useful
library modules that come with Ruby.
<p/>
So, how should you read this book? Well, it depends on you.
<p/>
Depending on your level of expertise with programming in general, and
OO in particular, you may want to read just a few portions of the
book to start with.  Here are our recommendations.
<p/>
If you're a beginner, you may want to start with the tutorial
material in Part<nbsp/>I.  Keep the library reference close at hand as you
start to write programs. Get familiar with the basic classes such
as <classname>Array</classname>, <classname>Hash</classname>, and <classname>String</classname>.  As you become more
comfortable in the environment, you may want to investigate some of
the more advanced topics in Part<nbsp/>III.
<p/>
If you're already comfortable with Perl, Python, Java, or Smalltalk,
then we'd suggest reading the introduction in Chapter 2
first.  From there, you may want to take the slower approach
and keep going with the tutorial that follows, or skip ahead to the
gritty details starting in Part<nbsp/>III, followed by the 
library reference in Part<nbsp/>IV.
<p/>
Experts, gurus, and ``I-don't-need-no-stinking-tutorial'' types can
dive straight into the language reference in Chapter
18, which begins on page 199, skim the
library reference, then use the book as a
(rather attractive) coffee coaster.
<p/>
Of course, there's nothing wrong with just starting at the beginning
and working your way through.
<p/>
And don't forget, if you run into a problem that you can't figure out,
help is available.  See Appendix C beginning
on page 525 for more information.
</chapter>
</ppdoc>
