Recommendations please

Alex Martelli alex at magenta.com
Thu Aug 17 08:27:40 EDT 2000


<searcher7 at my-deja.com> wrote in message news:8ngfnl$d7u$1 at nnrp1.deja.com...
> I've set a goal to eventually write my own language. Since I'm a total
> newbie, I was advised to start with "Python", then "JPython". Learn
> Java, and then progress to C++.(Which I was told was too difficult for
> a beginner's first language. I would appreciate any recommedations on
> beginner books on "Python".

My current favourite is "The Quick Python Book" by Daryl Harms and
Kenneth McDonald, published by Manning Publications.  It explicitly
says that you should have some superficial language of some one
programming language before you start; but don't know of any *books*
that claim to teach Python to somebody who's never programmed before
in any language at all.

On the other hand, there are *online documents* that might help
you get started from a zero-point.  One is
    http://yhslug.tux.org/obp/thinkCS/thinkCSpy/
by Allen B. Downey, Jeffrey Elkner and Moshe Zadka; although this
page strangely spells 'classess' with four 's' overall, it's still
a very worthwhile document; I suggest you start with it, or with
something similar, before moving on to Harms' and McDonald's book.

You should also download and install a working version of Python
to get maximum benefit from any book or online document; whenever
something is presented with a prompt of '>>>' in documents or
books about Python, it means you can enter code at an interactive
interpreter and try it out.

http://www.python.org/download/download_windows.html links to
several places where you can download by HTTP or FTP the py152.exe
installation-package (5 megabyte), which is all you need if you
use Windows/NT, /95, /98, or /2000; for other platforms (Python
runs just about anywhere!) see http://www.python.org/download/.


I think you have been very well advised, by the way -- at least
as for starting, Python is a great way to go.  Once you have
that under your belt, and well-digested, where to go next is a
matter of opinion -- JPython/Java/C++ is one route, but there
are others, including staying with Python and designing your
own language's first-cut with it (oh yes you can -- though it
will not run as fast as when [re]-implemented in C++, you can
perfectly well develop a compiler and interpreter in Python!).


One option you may consider after Python is to get Scheme and
a copy of Abelson and Sussman's "The Structure and Interpretation
of Computer Programs".  There is really nothing better than
Lisp dialects (Scheme excellent among them) to expose a LOT
about "what's truly happening inside", unless it be machine
code; and Abelson and Sussman's book is in my shortlist of the
very best computer-science books ever written (Knuth's "The Art
of Computer Programming", at the very top of that list, does
use machine-code as its expressive vehicle; Kernighan and
Pike's "The Practice of Programming" relies on C; apparently
such languages are very conducive to excellent writing -- I
hear Jon Louis Bentley's "Programming Pearls", another of my
favourites, has come out in a new edition also based on C!-).

But, this is all very much "by the by".  For now, starting with
Python is an excellent idea -- and while other languages will
possibly expand your horizons in the future, I suspect you'll
find yourself coming back to Python.  No other language that I
know of is quite so good for both beginners AND experts!-)


Alex






More information about the Python-list mailing list