Books

This page is an adaptation of what used to be the "Books"
section of the FAQ. As a convenience to visitors, you can order these
books online (using the [Order] links), due to our association with Amazon.com. The funds will be used to help support the continued
operation of these pages. You can also get the publisher's
information on most of these books through the [Publisher's Info]
links.

If your local independent bookstore (like Square Books where I live)
carries computer books, I recommend giving them your business (instead
of ordering here).

Linux Books

There are a gazillion Linux books on the market these days. In my
opinion, you can't go wrong with the books published by SSC and O'Reilly: they are two "class
acts" in the Linux and Unix community. The flip side of this is
that Linux users should be wary of books from PC-oriented publishers,
which tend to focus exclusively on PCs. Accordingly, with a few
exceptions, SSC and O'Reilly books dominate this list.

A few particular selections (many of which are on my bookshelf or
desk):

This book is probably the definitive book for new Linux users. It
includes extensive coverage of virtually every topic under the sun,
including installation, Unix commands, Emacs, an introduction to
LaTeX, X11, networking (including SLIP, PPP and Ethernet), and much
more. [Financial interest disclaimer: This edition of the book
includes an appendix written by yours truly.]

This book, a revised edition of Matt's original LI&GS, is also
good, and has the advantage of being free (if you get it from the LDP
web site), which helps if you're a starving college student like me;
on the downside it covers a lot less material than Running
Linux does.

The Network Administrator's Guide is a good companion to
Running Linux (or LI&GS). The title is something of
a misnomer, as it is handy even for single-user workstations connected
by Ethernet or a serial link. (The O'Reilly edition is more
professionally presented than the SSC edition, which is why the prices
differ.)

This book is aimed at the Linux user who wants to know more about
the history of Linux and the internals of Unix in general. It is also
interesting because it probably contains the only copy of the
"CREDITS.m68k" file that used to be distributed with the
Linux/m68k kernel tree back in the dark ages.

This book is big; no, correction, it's huge. It includes
hard copies of Linux Installation and Getting Started,
The Linux Network Administrator's Guide, other LDP manuals
and a selection of HOWTO's. An accompanying CD-ROM contains all these
documents and more. A very cost-effective (if intimidating) way to
get started with Linux.

This book is similar in concept to The Linux Bible,
except it's a hardcover and it's newer. That and it was edited by
free software guru Eric S. Raymond (author of fetchmail and
"The Cathedral and the Bazaar").

This is a practical guide to programming in C (and other languages
with C bindings) within the Linux environment; it's particularly aimed
at people who already know C and/or Unix programming and want to learn
more about how to get the most out of Linux.

A useful guide to programming GUIs in Linux, using the GTK+
toolkit. Particularly valuable if you don't want to slog through
source code to learn how to code for GTK+, although a lot of the book
is filled with source code for the programs (which you can download
from their web site). Probably very useful if you're migrating from
MacOS, TOS or AmigaOS (particularly if you've used MUI on the Amiga,
as a lot of GTK+'s ideas seem to come from there).

Programming

Regular Expressions

Regular expressions (regexes) are widely used in text parsing
applications; most languages (including Python, Perl, sed, awk and C)
include ways to use regexes. This book is probably the definitive
guide to regular expressions; I never understood the things until I
read it. An example of what you can do with regexes: I use custom
regexes (in Python scripts) to parse the output of the United States
House of Representatives'
electronic voting machine for use in statistical analysis.

Python

The comprehensive guide to Python programming, starting from the
ground up. Python is an
object-oriented, interpreted programming language with excellent
bindings to system libraries; it combines clean syntax with the power
of Java, Perl and Tcl.

The granddaddy of all Python books, IPwP is probably a better
introduction to the language than Programming Python.
However, it is slightly more Windows-oriented, and discusses the
WPY GUI package instead of Tkinter, even though the
latter has since become more "standard." Nonetheless a
great Python book.

The new edition of Programming Perl; it's bigger than the
first edition, but a lot of the more useful sections (like the cookbook) have been spun off. Still, if you have to use Perl,
this remains the book to get.