Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.mixmin.net!eweka.nl!hq-usenetpeers.eweka.nl!xlned.com!feeder5.xlned.com!newsfeed.xs4all.nl!newsfeed3.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.002 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'python.': 0.02; 'tutorial': 0.03; 'syntax': 0.04; '2010)': 0.05; 'preferably': 0.05; 'subject:Python': 0.06; '"the': 0.07; 'elegant': 0.07; '(aka': 0.09; 'bits': 0.09; 'that).': 0.09; 'worked,': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; 'programs.': 0.14; 'times,': 0.14; 'books': 0.15; '"programming': 0.16; '"i': 0.16; '(it': 0.16; '[2].': 0.16; '[5]': 0.16; 'goal,': 0.16; "he'll": 0.16; 'ignoring': 0.16; 'interesting:': 0.16; 'java.': 0.16; 'personally,': 0.16; 'playful': 0.16; 'subject:3.3': 0.16; 'subject:exercises': 0.16; 'through.': 0.16; 'troll': 0.16; 'twisted': 0.16; 'two.': 0.16; 'url:oreilly': 0.16; 'younger': 0.16; 'do,': 0.16; 'student': 0.16; 'language': 0.16; 'wrote:': 0.18; 'discussion': 0.18; 'bit': 0.19; 'thu,': 0.19; 'programming': 0.22; 'email addr:gmail.com>': 0.22; 'cc:addr:python.org': 0.22; 'aspect': 0.24; 'looks': 0.24; 'cc:2**0': 0.24; 'cc:no real name:2**0': 0.24; "i've": 0.25; 'header:In-Reply-To:1': 0.27; 'chris': 0.29; 'external': 0.29; '[1]': 0.29; 'am,': 0.29; "doesn't": 0.30; '[2]': 0.30; 'originally': 0.30; 'strongly': 0.30; 'message- id:@mail.gmail.com': 0.30; 'asked': 0.31; 'getting': 0.31; 'towards': 0.31; 'adequate': 0.31; 'gather': 0.31; 'libraries': 0.31; 'own,': 0.31; "they'll": 0.31; 'probably': 0.32; 'figure': 0.32; 'know.': 0.32; 'another': 0.32; '(including': 0.33; 'says': 0.33; 'worked': 0.33; 'url:python': 0.33; '(most': 0.33; 'beginning': 0.33; '"the': 0.34; 'maybe': 0.34; "i'd": 0.34; 'problem': 0.35; 'subject:with': 0.35; 'agree': 0.35; 'something': 0.35; 'beyond': 0.35; 'computing': 0.35; 'done.': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'version': 0.36; 'really': 0.36; '2.6': 0.36; 'c++': 0.36; 'done,': 0.36; 'leads': 0.36; 'next': 0.36; "didn't": 0.36; 'similar': 0.36; 'url:org': 0.36; 'searching': 0.37; 'so,': 0.37; 'list': 0.37; 'clear': 0.37; 'skip:& 10': 0.38; 'focused': 0.38; 'improving': 0.38; 'requiring': 0.38; 'that,': 0.38; 'skip:& 20': 0.39; '\xa0\xa0\xa0': 0.39; 'most': 0.60; 'new': 0.61; 'url:3': 0.61; 'entire': 0.61; 'first': 0.61; 'back': 0.62; 'url:index': 0.63; 'term': 0.63; 'real': 0.63; 'skip:n 10': 0.64; 'more': 0.64; 'school': 0.64; 'to:addr:gmail.com': 0.65; 'charset:windows-1252': 0.65; 'within': 0.65; 'latest': 0.67; 'answer.': 0.68; 'introduction': 0.68; 'study': 0.69; 'college': 0.70; 'programs,': 0.74; 'url:page': 0.74; 'goal': 0.75; 'hey,': 0.75; 'paper': 0.75; 'topic,': 0.81; 'url:gif': 0.82; 'url:images': 0.83; '2013)': 0.84; 'books.': 0.84; 'ebook': 0.84; 'fast,': 0.84; 'father': 0.84; 'studying': 0.84; 'subject:+ ': 0.84; '2013': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:mime-version:in-reply-to:references:from:date:message-id :subject:to:cc:content-type; bh=cGkCGB4MzGa3MMAThXklPJrFf0FyVuz67QgNi0O32eM=; b=bXhyCfJsfk94ezEIG0PRbrdO8HJ+YJoYJDsKy1C/agvCoKeYjaClohwkIdWB3rJzvw qAtTReSD85VBzwAYzUzvktSlUP3mbrd/KwWWhJRmFsZ8P73DqmCUSLCWyFmRH4oPhyRP xJFZOMVb47oRcc6XYTcZUPZFXF7zJ9tZnJYJj/n+dfeS1pHvyrBvPOHksA5HPGTdE9QJ JjP3UwFvkKhobQz4UpvakOl3h9w4X7pYBYf6GtlOhhPssbB63BVEFJMQhMseZKyMX0sJ 8qUYBJ/EnRo9EhHT5i5pUhtKYOZVkvUWOWzkIiL6WEOWVHCQhRwdhphMnPb6PALq8dJD zXXQ== X-Received: by 10.194.47.176 with SMTP id e16mr10903671wjn.46.1367543203527; Thu, 02 May 2013 18:06:43 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: From: TP Date: Thu, 2 May 2013 18:06:03 -0700 Subject: Re: Python teaching book recommendations: 3.3+ and with exercises To: Chris Angelico Content-Type: multipart/alternative; boundary=047d7ba9753edc81bf04dbc5f6e4 Cc: python-list@python.org X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 208 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1367543541 news.xs4all.nl 15906 [2001:888:2000:d::a6]:43565 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:44650 --047d7ba9753edc81bf04dbc5f6e4 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On Thu, May 2, 2013 at 7:36 AM, Chris Angelico wrote: > One of my younger brothers, still school age, is to be studying some > aspect of computing for the next term or two. I strongly recommended > he learn Python (it has a bit more future than studying the internals > of OS/2), and my/his father then asked me what book I'd recommend him > to study through. I know this has come up a few times, but searching > back in my emails didn't give a clear answer. > > Whether it's an ebook or in paper doesn't matter, but there need to be > exercises that the student can perform on his own, and then an > external tutor (aka my dad) then check up on. Python 3 is a must; > preferably something designed for 3.3+ as that's what he'll be using. > Beyond that, I was just asked to recommend "the best", which is > unfortunately vague... but I gather they'll be deferring to the > expertise of the list in figuring out what that means :) > > So, within those not-very-many restrictions, what would you all > recommend? Let's get a nice discussion going and see where it leads us > (most likely to a resident troll ranting about a favorite topic, but > hey, maybe Dihedral will come out with some nugget of wisdom for us)! > Since I've been using Python for years, I've only skimmed new books. Personally, I found the standard Python tutorial [1] (and reading the What's New sections) more than adequate for originally learning Python. Anyway, given your constraints, here's what I've come up with (stipulating Python 3, limits the number of available books. And requiring exercises is even stricter): Python for Kids - A Playful Introduction to Programming - J. Briggs (No Starch, 2013) [2]. Python 3.2? Not necessarily just for kids but definitely slanted towards younger readers. Has "Programming Puzzles". Think Python - A. Downey (O'Reilly, 2012) [3]. For Python 2 & 3. Exercises but no answers? There is also a Python 3 specific version available. Free. Beginning Python - Using Python 2.6 and Python 3.1 - J. Payne (Wrox, 2010) [4]. Has exercises but... they seem a bit simplistic to me. Answers in Appendix A. Head First Python - Barry (OReilly,2011) [5] Python 3. Says for people who already know another language (and I would have to agree with that). Exercises. Introduction to Programming Using Python - Y. Liang (Pearson, 2013) [6]. A bit dull looking. Probably a college textbook? Lots of exercises. Author also has similar books on C++ & Java. Expensive. Ignoring the constraints, here's another one that looks really interesting: Hello Python - A. Briggs (Manning, 2012) [7]. Python 2 only. Learn by incrementally writing and improving working programs. Less focused on syntax and more on getting the job done. No exercises per se, but since goal is working programs, progress can be still be checked. More about the "batteries" (including somewhat surprisingly pyglet, twisted & django). From the Preface: "I thought back to how I first learned to program. I didn't read an entire programming book from cover to cover and then write a program after I knew everything there was to know. Instead I started with a goal, something that I wanted to do, and worked toward it, figuring things out as I went. I read programming books from time to time, but really only to figure out the bits I was stuck on. When I was done, my programs weren't particularly elegant or fast, but they were mine---I knew how they worked, and they solved a real problem that I was having." Page 9: "We'll be using the latest version of Python 2, because most of the libraries that we'll use in this book don=92t yet support Python 3." [1] http://docs.python.org/3/tutorial/index.html [2] http://nostarch.com/pythonforkids [3] http://www.greenteapress.com/thinkpython/thinkpython.html [4] http://www.wrox.com/WileyCDA/WroxTitle/Beginning-Python-Using-Python-2-6-an= d-Python-3-1.productCd-0470414634.html [5] http://shop.oreilly.com/product/0636920003434.do [6] http://www.pearsonhighered.com/educator/product/Introduction-to-Programming= -Using-Python/9780132747189.page [7] http://www.manning.com/briggs/ --047d7ba9753edc81bf04dbc5f6e4 Content-Type: text/html; charset=windows-1252 Content-Transfer-Encoding: quoted-printable

= On Thu, May 2, 2013 at 7:36 AM, Chris Angelico <rosuav@gmail.com> wrote:
One of my = younger brothers, still school age, is to be studying some
aspect of computing for the next term or two. I strongly recommended
he learn Python (it has a bit more future than studying the internals
of OS/2), and my/his father then asked me what book I'd recommend him to study through. I know this has come up a few times, but searching
back in my emails didn't give a clear answer.

Whether it's an ebook or in paper doesn't matter, but there need to= be
exercises that the student can perform on his own, and then an
external tutor (aka my dad) then check up on. Python 3 is a must;
preferably something designed for 3.3+ as that's what he'll be usin= g.
Beyond that, I was just asked to recommend "the best", which is unfortunately vague... but I gather they'll be deferring to the
expertise of the list in figuring out what that means :)

So, within those not-very-many restrictions, what would you all
recommend? Let's get a nice discussion going and see where it leads us<= br> (most likely to a resident troll ranting about a favorite topic, but
hey, maybe Dihedral will come out with some nugget of wisdom for us)!

Since I've been using Python for years, I've only = skimmed new books. Personally, I found the standard Python tutorial [1] (an= d reading the What's New sections) more than adequate for originally le= arning Python.

Anyway, given your constraints, here's what I've come up with (= stipulating Python 3, limits the number of available books. And requiring e= xercises is even stricter):

Python for Kids - A Playful Introduction= to Programming - J. Briggs (No Starch, 2013) [2]. Python 3.2? Not necessar= ily just for kids but definitely slanted towards younger readers. Has "= ;Programming Puzzles".

Think Python - A. Downey (O'Reilly, 2012) [3]. For Python 2 & 3= . Exercises but no answers? There is also a Python 3 specific version avail= able. Free.

Beginning Python - Using Python 2.6 and Python 3.1 - J. = Payne (Wrox, 2010) [4]. Has exercises but... they seem a bit simplistic to = me. Answers in Appendix A.

Head First Python - Barry (OReilly,2011) [5] Python 3. Says for people = who already know another language (and I would have to agree with that). Ex= ercises.

Introduction to Programming Using Python - Y. Liang (Pearso= n, 2013) [6]. A bit dull looking. Probably a college textbook? Lots of exer= cises. Author also has similar books on C++ & Java. Expensive.

Ignoring the constraints, here's another one that looks really inte= resting:

Hello Python - A. Briggs (Manning, 2012) [7]. Python 2 only= . Learn by incrementally writing and improving working programs. Less focus= ed on syntax and more on getting the job done. No exercises per se, but sin= ce goal is working programs, progress can be still be checked. More about t= he "batteries" (including somewhat surprisingly pyglet, twisted &= amp; django).

=A0=A0=A0 From the Preface:

=A0=A0=A0 "I thought back to ho= w I first learned to program. I didn't read an
=A0=A0=A0 entire prog= ramming book from cover to cover and then write a program
=A0=A0=A0 afte= r I knew everything there was to know. Instead I started with a
=A0=A0=A0 goal, something that I wanted to do, and worked toward it, figuri= ng
=A0=A0=A0 things out as I went. I read programming books from time to= time,
=A0=A0=A0 but really only to figure out the bits I was stuck on. = When I was
=A0=A0=A0 done, my programs weren't particularly elegant or fast, but t= hey
=A0=A0=A0 were mine---I knew how they worked, and they solved a real= problem
=A0=A0=A0 that I was having."

=A0=A0=A0 Page 9:
=
=A0=A0=A0 "We'll be using the latest version of Python 2, beca= use most of the
=A0=A0=A0 libraries that we'll use in this book don=92t yet support Pyt= hon 3."

[1] http://docs.python.org/3/tutorial/index.html

[2] http://nostarch.com/pythonforkids

[3]
http://www.greenteapress.com/thinkpython/thinkpython.html

[4]= http://www.wrox.com/Wil= eyCDA/WroxTitle/Beginning-Python-Using-Python-2-6-and-Python-3-1.productCd-= 0470414634.html

[5] http:/= /shop.oreilly.com/product/0636920003434.do

[6] http://www.pearsonhighered.com/educator/product= /Introduction-to-Programming-Using-Python/9780132747189.page

[7] http://www.manning.com/b= riggs/
--047d7ba9753edc81bf04dbc5f6e4--