With a mighty <firstname.lastname@example.org>,
email@example.com uttered these wise words...
> Some of these Dummies books are unfortunately, not very good. Some
> authors think that if you use "cool" language and sound hip, you are
> talking to a dummy, even as they explain a fairly difficult concept.
Being "good" is not really the issue. I wish it was, but then we could
just recommend books like SICP. It might help just to get a book about
Lisp onto the bookshelves that talks the same language as the mass of
books about C++, VB, etc.
Not that I'd want to assume that _anyone_ was a dummy. If they've
bothered to read your book, at least credit them with _something_. ;)
> But the nice thing is that the author writes the book with the dummy
> in mind. Take Stroustrup's book on C++. For a long time, I've said
> it's not a good book for dummies, but I hadn't seen the book in a long
> time, so I had forgotten what kind of things is said. Having reread
> just the first few pages recently, he makes comments that only an
> experienced programmer would understand.
I fully agree with you about this. Most programming books make this
mistake, IMHO. I've been very impressed by the functional programming
tutorials that I've read. I guess it's because they start from the
absolute basics, assuming no prior programming knowledge and
experience. There are many other books which assume that you already
know how to program, and I think that Stroustrup's book on C++ is one
To be fair, I don't think that he hides this. It's a reasonable way to
write a tutorial, providing that you make it clear enough who the book
is targetting. In this sense, it's like everything else: know your
audience or you a failure to communicate.
There are some Lisp books that go to the other extreme, but I think
that SICP's only failing in this respect is that it covers a heck of a
lot of material, and moves _very_ fast. Too fast for "dummies", I bet.
In my collection of programming language tutorials, I have a number
for Prolog. One is very thin, and apallingly bad at explaining
anything, never mind Prolog. I bought it and keep it as an example of
how _not_ to teach anything.
There are many ideas that need more than a single page, and some that
could use several _chapters_. SICP could be looked at as a book that
communicates a single very important idea, which is that code is also
data, and data may be used as code. It teaches a lot more than that,
but it's an idea that most tutorials don't even mention, never mind
devote entire chapters to it.
OOP is also worth an entire book, esp if the language is supposed to
be OO. I'd hope to see at least a single chapter focusing excusively
on it, in a tutorial for an OO language. On the other hand, I've read
some excellent books that communicate OO ideas in _every_ chapter, so
perhaps it's not so easy, or desirable, to draw a clear line between
material about the language and OOP techniques.
> Winston wrote a book called Common Lisp, and he sort of has a
> dummies style of writing. The headings of the individual sections
> are often sentences. He keeps his sentences rather short. He
> tries to use simple examples. But for all that, it still reads
> more complicated than it seems it should. Sort of like someone
> trying to explaing thermodynamics to kindergarterners in simple
> language, but still being more-or-less technically precise. It's
> still a little hard to follow. It shows up more in his book
> "On to C++". I happen to like Touretsky's Lisp book better
> even though it, too, is fairly elementary. It reads a little
> better. Winston's book has more stuff in it overall, however.
Unless you mean the tutorial he wrote with Horn, I've not read that
one. The "W&H" book is an excellent tutotial, but like SICP, it also
covers a lot of ideas and moves very fast.
However, if you don't think that math and AI problems will be of any
use to you (err...), then a better book - for dummies - would be one
that focuses more on the things that most programmers (dummies?) will
recognise as familiar problems. How about an HTML search engine,
complete with the socket code for fetching objects from a web server,
or even a web server, complete with CGI meta-language, stats
processing and reporting, etc. That should demonstrate many of the
same techniques, but it would be _presented_ from an angle that most
programmers will at least recognise, even if they _might_ have trouble
understanding the code.
My guess is that they'll make more effort to understand what you're
talking about if the problems are ones that they understand and want
(better) solutions for. If you say, "Let's write a web server that
allows us to modify the CGI code _without shutting down or unloading
anything_", I bet that more programmers will be interested than if you
offered them techniques for writing a natural language front end to a
database - which is just one of things that W&H do in their book.
I'm not knocking W&H, as they wrote an excellent book IMHO, but I
doubt that the subject matter will have the same "pull" as a book
about writing Internet code. Perhaps that's the power of buzzwords. A
phrase like "matural language" will likely turn off many people, while
anything with "web" in it should at least catch their eye. Of course,
because of the low quality of many Internet books, this will also turn
off some other people.
How many books are there about Internet programming that don't use
Perl, C++, Java, or VB? These aren't the only languages capable of
creating such apps and servers. I smell an opportunity.
<URL:http://www.wildcard.demon.co.uk/> You can never browse enough
Martin Rodgers | Programmer and Information Broker | London, UK
Please note: my email address is gubbish.