 |

Date: May 11 2000
From: Ron Arnett
To: Frankly Speaking
Subject: Learning Programming
I have been trying to locate a copy of
Learning Python
by Mark Lutz. The local bookstores have been unable to get it for weeks now.
One online bookstore indicated delivery usually within 24 hours.
Another said 3 to 5 weeks. My concern was that if I ordered from the
purported overnight delivery and they actually were as out of stock as
everybody else, then I would be locked in to a long wait since I would have
already paid for the delivery. So I decided to go to the O'Reilly Web site
as they are the publishers to see if there were any clues if the book really
was available.
Imagine my surprise to see the publisher's column saying that not only is
Learning Python not really suitable for beginning level programmers,
nor any of the other books put out by O'Reilly, but it's his opinion there
is no such book period and there may never be.
Like millions of users I am becoming concerned about the security of my
computer. Virtually every commentator on computer security says that if I
want to get serious about it I should really understand programming
principles. They also say that the best way to understand such material is
to learn to actually program. Many recommend Python for a number of reasons
that I won't go into here. These reasons are especially compelling for
non-programmers like myself.
The Web site discussion seems to say that if I want to learn how to race
sports cars or drive 18 wheelers down the highway, I should first take a
defensive driving course. Of course, one should actually know how to drive
if you want to get the benefit of defensive driving. The learning programming
discussion seems to feel that there is no genuine learning to drive course
available and the defensive driving course must take its students from those
people who have run farm tractors, bicycles and snow mobiles etc. and who
are backing into operating a motor vehicle.
Surely, there must be a market that publishers want to fulfill that consists
of people who want to learn programming in a systematic, focused way. As for
using Designing with
JavaScript as a way to get started, I tell everybody to turn off
JavaScript as much as they can for security reasons. Understand, I'm not
saying it would be easy to go after that market but it's hard to believe that
there are very few of us. I believe that Sams is coming out with Learn
Python in 24 Hours which I hope will be directed to novices.
Since O'Reilly publishes Learning Python and Python is held out as
a beginning type language, it would be nice if a warning was included in the
advertising and placed on the cover that this particular book is not actually
for beginners and really is intended for those who already know how to program.
Thank you,
Ron Arnett
Dear Ron:
Thanks for your thoughtful letter to
Ask Tim. I've volunteered
to reply because I'm the editor of
Learning Python
and I'm also very interested in the questions your letter raises.
First, let me address the issue of the book's availability. I can't imagine
why you had such difficulty finding a bookstore with stock on hand. When I did
a quick check on the Web, I found it in stock at the first five bookstores I
checked:
Amazon,
Softpro,
Wordsworth,
Quantum Books,
and Fatbrain.
Let me assure you that it is still in print and will remain in print. It is
selling quite well, due in no small part to the growth of interest in Python
from people like yourself. I'd be very grateful if you'd
let me know, rivately, which
bookstores could not deliver copies immediately. There may have been a
temporary distribution problem or some other explicable event; but I'd like to
investigate the problem a little more. If our books aren't on the shelves when
our customers want to buy them, we're concerned.
Nevertheless, your story illustrates the importance of our ability to sell our
own books from our Web site. It's conceivable (although not the case with
Learning Python, of course) that we will want to publish a book that
we think is important, but bookstores don't want to stock. Being able to
provide our own fulfillment allows us to do that. We can be, as we were in
your case, the bookseller of last resort for our books. That's one of the
reasons that we tend to keep books in print longer than other publishers do.
As for the larger question of whether our books are suitable for learning how
to program: I was first going to contradict what "the publisher" said in
his
article, but then I noticed that he was quoting me. I quickly changed
my strategy.
It is true: with Learning Python, as with
Learning Perl, we
don't attempt to teach people to program; we teach people who already know
how to program about these new languages. In your letter, you use a driving
metaphor; let me use a language metaphor. When a student takes a foreign
language in school, the teacher and the textbook assume the student already
has a native language. Similarly, our Learning books assume the reader
already knows how to program in a language and is interested in learning the
characteristics of the new language.
We take this approach because our readers tend to be computer professionals.
They look for books that speak to them at their level, books that don't tell
them a lot of information that they already know. The best example of this
approach, and one of our best-selling books of all time, is
Java in a
Nutshell. This book provides a short introduction to Java that assumes
that the reader is a computer professional who probably already knows C or
C++ (and probably both). The bulk of the book is a terse but clear and
complete reference. A large readership loves this book for using this
approach. They don't want to read about inheritance and operator overloading;
they know what those terms mean, and they simply want to know how Java
handles them.
(As for Teach Yourself Python in 24 Hours: it appears to have been
recently published and is available. I haven't read it yet, but I know the
author, Ivan Van Laningham, from a presentation he made at a Python Conference. He's very knowledgable, well-respected by his Python peers, and an engaging
speaker, so it may well be a good introduction. But if it attempts to teach
you Python and programming in the same 24 hours, it has the wrong title:
it should be called The Longest Day.)
Note: We tried to link directly to Teach Yourself Python in 24 Hours, but Sams' Website does not allow for direct linking to
catalog pages.
We know that there are lots of people who want to learn how to program. (I
happen to believe, not surprisingly, that Python is a good language for people
who want to learn programming. Today, in our Cambridge office, an O'Reilly
editor is launching a 10-session Introduction to Programming class for 18
non-programming employees. He's using Python.) We don't yet offer much in the
way of books for them.
Books for beginners tend to fall into one of the following categories:
- Textbooks. Many people learn programming by taking a class. Some
schools use
Learning Python,
Learning Perl, and
Exploring Java
(soon to be re-released as
Learning Java)
in their classes, but standard textbooks, written by professors, are more
common. In Editorial, we've begun to look at what it takes to write books
that can be used as textbooks, but it's not yet a major business for us.
- Watered-down introductions. I have always found such books to be
the least satisfying technical books. These books tend to take a jocular and
friendly tone, but they still need to convey technical information; so they
often bounce between homely metaphors and highly technical concepts. The
tone of the book is, "See, this is easy," but the content says, "Whoa, this
is hard."
- Application-focused books. This is the kind of book Tim was
talking about when he described how people "back in" to programming. As he
noted, Designing with
JavaScript uses this technique. It tells people how to use certain
scripts to accomplish certain tasks on their Web page, and tells the readers,
parenthetically, the programming concept they're using. It describes
associative arrays, for example, in the context of displaying formatted dates.
Some people have used
CGI Programming on the
World Wide Web in the same way. (Though this book is currently out of
print, we have made it
available online.
A second edition, titled
CGI Programming with
Perl, will release this summer.)
Because of the intense interest in using CGI, people learned enough Perl to
accomplish CGI tasks. There are many people, including me, who believe that
lots of people will "back in" to learning Python because of their desire to
use Zope, a leading
open source web application server. Given sufficient motivation, people don't
even need a book; I
interviewed a
high school student who wanted to know PHP so much that he didn't
even care that there were no good books on that technology. He learned the
language from the online examples.
We at O'Reilly are always interested in publishing application-focused books.
They are specific and can be sufficiently meaty that our readers want to read
them. We haven't done much in the textbook area, but we will. And we'll never
intentionally publish a watered-down introduction.
We are making some changes, however, to accommodate serious potential O'Reilly
readers like you. In the second edition of
Learning Perl,
for example, we took out a lot of the references to Perl similarities with C.
We no longer consider it sufficient to say, "This Perl feature works just as
it does in C." I've spoken with the editor of the third edition, now
underway, and she tells me that it is her goal and the goal of the author,
Randal Schwartz, to make the third edition more accessible to people whose
background doesn't include formal programming languages. We know that there
are a lot of people who have good reasons for learning Perl but who don't
consider themselves programmers. The Web has created a great number of such
readers, and we want Learning Perl to work for them.
We are also looking into writing a book that teaches programming, using
Python as the instructional language. This won't be a book for learning
Python, although readers will clearly learn a lot of Python. It will be a
book for learning about programming, especially object-oriented programming.
Frank Stajano from Cambridge University gave
a great talk
at the January Python Conference about the expressive possibilities of
programming. That's the spirit we hope to capture in our book.
In the meantime, you might want to look at the freely available materials for
learning Python. Check out the
Introductions
to Python page of the official Python site. There is a lot of
interesting material there.
You can learn more about Python and other programming languages at the
O'Reilly Open Source
Software Convention, July 17-20, 2000 in Monterey, California.
Good luck to you. I'm sorry we can't be of more help right now. You might want
to look at the
sample
chapters on our Web site from Learning Python. If its coverage
and tone seem accessible to you (remember, they are two of the later chapters
in the book), you might want to look at the
table of
contents also. You could then page through a copy at a local
bookstore (if they've finally gotten the book in stock!). You might find that
you have the motivation and sufficient technical background to find
Learning Python a good book for you. Just don't settle for a
watered-down introduction if you can handle more.
Thanks again,
Frank Willison
Return to: Frankly Speaking

|
 |