Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Observation on "Core Python Programming"

24 views
Skip to first unread message

John Coleman

unread,
Oct 29, 2006, 10:24:56 AM10/29/06
to
Greetings,
My copy of the second edition of Chun's "Core Python Programming"
just arrived from Amazon on Friday. What really jumped out at me is an
interesting feature about how it sequences its topics, namely,
(user-defined) functions are not introduced until chapter 11, fully 400
pages into the book. This contrasts strongly with a traditional
"Introduction to language X" book which has a chapter sequence roughy
like:

Chapter 1) Intro - Hello World
Chapter 2) Variables
Chapter 3) If, if-else
Chapter 4) Loops
Chapter 5) Functions and/or subroutines

The exact details vary from book to book and language to language of
course, but usually the above topics are covered in the first 100-150
pages since it is hard to do anything interesting until all of these
tools are under your belt. Chun's book by contrast is able, on the
strength of Python's built-in functions, to cover a fair amount of
relatively interesting things (dictionaries, file IO, exception
handling, etc.) before introducing user-defined functions.

I don't want to read too much into this, but the mere fact that it is
possible to write a Python book in this fashion seems to confirm the
"batteries are included" philosophy of Python. Perhaps there is less
need to learn how to roll your own batteries as soon as possible.

-John Coleman

Nick Vatamaniuc

unread,
Oct 29, 2006, 3:02:41 PM10/29/06
to
I would consider that an omission. Functions are very important in
Python. I think the user/reader should see the _def_ and _class_
statement fairly soon in the introduction. The name of the book is
thus somewhat misleading, because functions are at the "core" of
Python.

Functions should be right there with the integers, strings, files,
lists and dictionaries. Another important point to stress, in my
opinion, is that functions are first-class objects. In other words
functions can be passes around just like strings and numbers!

-Nick Vatamaniuc

Fredrik Lundh

unread,
Oct 29, 2006, 3:58:22 PM10/29/06
to pytho...@python.org
Nick Vatamaniuc wrote:

> I would consider that an omission. Functions are very important in
> Python. I think the user/reader should see the _def_ and _class_
> statement fairly soon in the introduction. The name of the book is
> thus somewhat misleading, because functions are at the "core" of
> Python.

have you read the book?

</F>

John Coleman

unread,
Oct 29, 2006, 4:18:59 PM10/29/06
to
A is not ommitted from DBECAFG - it just appears in a non-standard
order. If the book simply ommitted functions then it would be a
shocking ommission. As it is, it is just a curious way of sequencing
topics. Functions are in chapter 11 out of 23 chapters - sounds like
the "core" of the book to me.

Chun does emphasize the first-class status of functions in Python -
something which is fairly important to me since I have dabbled on and
off with functional programming the last few years (mostly SML) and am
interested in seeing the extend to which Python is genuinely
"multi-paradigm" - able to blend the functional and imperative (and OO)
paradigms together.

-John Coleman

Nick Vatamaniuc

unread,
Oct 29, 2006, 5:14:07 PM10/29/06
to
I meant "omitted" not as complete omission but as not being there
sooner...

Nick Vatamaniuc

unread,
Oct 29, 2006, 5:22:44 PM10/29/06
to
...Skimmed through the previous edition.

I don't normally read programming books -- just use the chapters that I
need when I need them, unless of course there is a clever plot twist
coming up ahead (for ex.: "Next: The revenge of lambdas. Will they
stay or will they go?" ;-)

Why? Have you read it from beginning to end. What did you think about
functions being introduced later than files and exceptions?

-Nick V.

UrsusM...@gmail.com

unread,
Oct 29, 2006, 7:27:31 PM10/29/06
to
I must say I find Wesley Chun's explanations to be most understandable.
I cant' exactly figure out why yet, but he has a way of explaining
something, like, say, decorators, that in minimal words elucidates for
me the intent behind why they are useful. That helps me understand how
they work. I just finished reading the chapter on Functions for the
book, I guess I was partly prompted by this thread on the newsgroup. it
was a *very* quick read, I could scan quickly but gain a better
understanding of the whole topic of functions in Python, including
inner functions, closures, decorators, continuations, and coroutines.
Talk about bang for the buck, that half hour to 45 minutes of reading
new chapter in Wesley Chun's new book was the best investment of time i
have made in quite a while.

I really like this book. I really, really, really like it.

Ron Stephens

David Lees

unread,
Oct 29, 2006, 8:23:47 PM10/29/06
to
John Coleman wrote:
> Greetings,
> My copy of the second edition of Chun's "Core Python Programming"
> just arrived from Amazon on Friday. What really jumped out at me is an
> interesting feature about how it sequences its topics, namely,
> (user-defined) functions are not introduced until chapter 11, fully 400
> pages into the book. This contrasts strongly with a traditional
<snip>

Pages 48-50 is a section titled: 'Functions' and he gives both a top
level description and example. True he does not have a chapter devoted
to functions still page 400, but he does give examples of usage along
the way.

david lees

>

John Salerno

unread,
Oct 30, 2006, 10:06:13 AM10/30/06
to
John Coleman wrote:
> Greetings,
> My copy of the second edition of Chun's "Core Python Programming"
> just arrived from Amazon on Friday.

Who would you say the book is aimed at? Advanced programmers? I thought
about getting it, but I'm not sure if it will be either 1) too much
repetition of the basics I've already learned (which isn't necessarily a
bad thing), or 2) too advanced for me right now.

Thanks.

John Coleman

unread,
Oct 30, 2006, 10:59:51 AM10/30/06
to

It strikes me as being aimed at intermediate programmers who don't have
much familiarity with Python. I bought it since my only other book on
Python ("Learning Python" by Lutz) is somewhat dated now and because I
find that I'm a slow learner and it usually takes me a couple of books
by independent authors to "get" a language. The publisher's page is
more informative than what you see on Amazon. You can see the table of
contents and read a sample chapter there to help you decide if the book
is for you:
http://vig.prenhall.com/catalog/academic/product/1,4096,0130260363,00.html

HTH

-John Coleman

John Coleman

unread,
Oct 30, 2006, 11:05:31 AM10/30/06
to

I just realized that I gave the link to the first edition site. The
second edition site doesn't give a sample chapter (but does give the
complete preface) and still provides a good feel for the book:
http://vig.prenhall.com/catalog/academic/product/0,1144,0132269937,00.html

Sorry for any confusion

-John Coleman

John Salerno

unread,
Oct 30, 2006, 11:36:09 AM10/30/06
to

Thanks very much.

wesley chun

unread,
Oct 30, 2006, 1:04:30 PM10/30/06
to pytho...@python.org, jcol...@franciscan.edu
(warning: LONG reply)

thanks to those above for the kind remarks. tackling comments
and questions, not quite in chronological order. :-)


> Who would you say the book is aimed at? Advanced programmers?

this book is targeted towards technical professionals already
literate in another high-level language who wants to pick up
Python as quickly as possible. it is not a topical coverage
of a programming language's features. you know how after
learning a new language, it takes a few months to really "feel
comfortable" enough to *not* pick up a book in order to commence
writing code? my goal is to reduce that time period while
provide the reader a comprehensive understanding of how the
standard types work, esp. in their relationship to Python's
memory model. it is my belief that a solid foundation here
will reduce or eliminate any potential bugs you would've
written had you read a more conventional introductory text.


> What really jumped out at me is an interesting feature about how
> it sequences its topics, namely, (user-defined) functions are not
> introduced until chapter 11, fully 400 pages into the book.

i guess i found this post quite interesting because there is
such a focus on "what should be introduced when." the purpose
of chapter 2 (getting started) is to proxy for the standard
"introduction to programming X" book. if you read it, you
should be able to "get started in Python" immediately. you
have enough info on functions to start coding and probably
don't need var args, decorators, or any of that stuff yet. the
chapter on functions occur later because most of the time, what
we've shown you in "getting started" is enough to, ummm..., get
you started, and that all successive chapters are meant to dive
more deeply into each area.


> seems to confirm the "batteries are included" philosophy of
> Python. Perhaps there is less need to learn how to roll your
> own batteries as soon as possible.

this is definitely one of the hallmarks of the language. the
current user base already knows this... it's just more difficult
to get this out there to the general programming populus, esp.
when there are already so many languages starting with "P". :-)


> The revenge of lambdas. Will they stay or will they go?" ;-)

they will stay. ;-)


> am interested in seeing the extend to which Python is genuinely


> "multi-paradigm" - able to blend the functional and imperative
> (and OO) paradigms together.

this comes from guido himself. he "wants you to be able to see
the forest through the trees." i see Python as a "greatest hits"
of many computer programming languages. for our benefit, he's
given us the best stuff.


> I cant' exactly figure out why yet, but he has a way of explaining
> something, like, say, decorators, that in minimal words elucidates
> for me the intent behind why they are useful. That helps me
> understand how they work.

"Python fits your brain." (bruce eckel) i don't see why python
should have a monopoly on your brain. i want me share too. ;-)
the thing that makes writing a pleasurable is when the language
has so much to offer. i use this book in teaching my python
courses, and the book mirrors my lecturing style. i suppose that
rather than a dry college textbook, i'd rather write in a way as
if i was having a conversation with you, or if you were actually
sitting there attending one of my courses. readers (as well as
course attendees) have remarked how questions they may come up
with as they are learning a topic are answered in the next section
or chapter (or 3-4 presentation slides) as the case may be.


> The second edition site doesn't give a sample chapter (but
> does give the complete preface)

ahhh, the secret here is that you need to look in the right place.
"prentice hall"s web page doesn't have it, but PHPTR's does, even
if they are the same publishing house. for some reason, we've got
the featured book of the month!! just go to http://phptr.com and
click the book's link there. you'll find:

- book's description
- table of contents
- preface
- sample chapter (getting started, chapter 2!)
- index

the last three are in PDF format. if for some reason, october
ends and it's gone from the front page, here is a direct link:

http://phptr.com/title/0132269937

thanks to everyone for their support, esp. my excellent technical
reviewers for keeping me honest! please send comments, suggestions,
corrections, and other feedback to me. i am happy to hear about any
issues you find in the book -- everything. it doesn't matter if it
is the smallest grammatical edit, errors in the code, or just plain
wrong or misleading information. don't believe everything you read!
(sometimes writing at 2, 3, and 4a in the morning does something to
your writing when you're trying to tackle a publisher's deadlines.)
keep checking the book's errata page at http://corepython.com
all book correspondence should go to corepython at yahoo dot com.

cheers!
-- wesley
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
"Core Python Programming", Prentice Hall, (c)2007,2001
http://corepython.com

wesley.j.chun :: wescpy-at-gmail.com
python training and technical consulting
cyberweb.consulting : silicon valley, ca
http://cyberwebconsulting.com

0 new messages