Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.albasani.net!news.stack.nl!newsfeed.xs4all.nl!newsfeed1.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; 'example:': 0.03; '(at': 0.04; 'languages.': 0.04; 'url:pipermail': 0.05; 'subject:Python': 0.06; 'canvas': 0.07; 'elegant': 0.07; 'bits': 0.09; 'implements': 0.09; 'input,': 0.09; 'jquery,': 0.09; 'output,': 0.09; 'sake': 0.09; 'toolkit': 0.09; 'worked,': 0.09; 'cc:addr:python-list': 0.11; 'python': 0.11; '2.7': 0.14; 'programs.': 0.14; 'books': 0.15; '"python': 0.16; '"i': 0.16; '[5]': 0.16; 'applets': 0.16; 'canvas,': 0.16; "chris'": 0.16; 'goal,': 0.16; 'hall,': 0.16; 'playful': 0.16; 'sorts': 0.16; 'subject:son': 0.16; 'apps': 0.16; 'java,': 0.16; 'topics': 0.16; 'appropriate': 0.16; 'do,': 0.16; 'wrote:': 0.18; 'wed,': 0.18; 'bit': 0.19; 'normally': 0.19; 'slightly': 0.19; 'unlike': 0.19; 'examples': 0.20; 'input': 0.22; 'memory': 0.22; 'example': 0.22; 'programming': 0.22; 'comfortable': 0.22; 'email addr:gmail.com>': 0.22; 'cc:addr:python.org': 0.22; 'browsers': 0.24; 'convenient': 0.24; 'finally,': 0.24; 'initial': 0.24; 'java': 0.24; '(or': 0.24; '---': 0.24; 'question': 0.24; 'cc:2**0': 0.24; 'cc:no real name:2**0': 0.24; "i've": 0.25; 'source': 0.25; 'chapter': 0.26; 'possibly': 0.26; 'least': 0.26; 'header:In-Reply-To:1': 0.27; 'chris': 0.29; '[1]': 0.29; '[2]': 0.30; 'message- id:@mail.gmail.com': 0.30; '(which': 0.31; 'towards': 0.31; 'commonly': 0.31; 'default,': 0.31; 'python).': 0.31; 'probably': 0.32; 'figure': 0.32; 'know.': 0.32; 'interface': 0.32; 'quite': 0.32; 'worked': 0.33; 'url:python': 0.33; 'running': 0.33; 'beginning': 0.33; 'noticed': 0.34; 'table': 0.34; 'core': 0.34; 'problem': 0.35; 'agree': 0.35; 'common': 0.35; 'tool': 0.35; 'something': 0.35; 'one,': 0.35; 'but': 0.35; 'received:google.com': 0.35; 'there': 0.35; 'really': 0.36; 'done,': 0.36; 'everyone.': 0.36; "didn't": 0.36; 'useful': 0.36; 'url:org': 0.36; 'too': 0.37; 'requirements': 0.37; 'list': 0.37; 'sometimes': 0.38; 'skip:& 10': 0.38; 'mine': 0.38; 'list,': 0.38; 'fact': 0.38; 'pm,': 0.38; 'little': 0.38; 'back': 0.62; "you'll": 0.62; 'real': 0.63; 'such': 0.63; 'skip:n 10': 0.64; 'provide': 0.64; 'more': 0.64; 'great': 0.65; 'occur': 0.65; 'to:addr:gmail.com': 0.65; 'yes': 0.68; 'book,': 0.68; 'book.': 0.68; 'covers': 0.68; 'introduction': 0.68; 'overall': 0.69; 'college': 0.70; 'technology,': 0.70; 'helping': 0.70; 'subject:wants': 0.74; 'unusual': 0.74; 'topic,': 0.81; '2011)': 0.84; ':).': 0.84; 'animation,': 0.84; 'books.': 0.84; 'completely,': 0.84; 'different.': 0.84; 'dismissed': 0.84; 'fast,': 0.84; 'horrible': 0.84; 'toy': 0.84; 'edition': 0.86; '"how': 0.91; 'contents.': 0.91; 'destination': 0.91; 'good,': 0.91; '2013': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=UGLvVM5xKBPgH0wc4ZkiL2N5VS8hGpQooljFmiJZT2o=; b=xV1I/AqgE7IOxLm6WQ8iD8aw4ixfsr7lzaitlkw0eMTin1hRIvQ0HDzdPvwVwHXSXq bzAgbInPT/+ylm89SEc3EHD/TbQQu6wSBya0zZuef0qZKquegOZRIfQItep610DbfbIL vgWoHPsrERFzjpOxUv88Wa6ATawjfSYEJ23weYI+la148lwOkkOluEZQb5Km65tos5U6 JD2fLQGaDRAIjYVmn0cZh52lQxwGFXlOIAUkXH48TRUQE5NUDr8qKANpN3BZ+nJNYAae XIr9ka7iiKGS3iqSdbnt11kYwxRYelIomCilcb0yiXcT/eI9+9isLRjbptUHvqQ0zdHv yq2g== X-Received: by 10.180.79.229 with SMTP id m5mr6903198wix.39.1371112548614; Thu, 13 Jun 2013 01:35:48 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: References: <575a3a4c-b99f-43b4-aa2b-84dfaf3e89b4@googlegroups.com> From: TP Date: Thu, 13 Jun 2013 01:35:08 -0700 Subject: Re: My son wants me to teach him Python To: Chris Angelico Content-Type: multipart/alternative; boundary=f46d04182658684e5704df050470 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: 222 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1371112876 news.xs4all.nl 15863 [2001:888:2000:d::a6]:57847 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:47924 --f46d04182658684e5704df050470 Content-Type: text/plain; charset=ISO-8859-1 On Wed, Jun 12, 2013 at 1:02 PM, Chris Angelico wrote: > I put the question to the > list, and got back a number of excellent and most useful answers > regarding book recommendations, and we ended up going with (if memory > serves me) Think Python [1] > Here's a link [1] to Chris' original question (and the following answers including mine which mentioned Think Python). Chris' requirements were slightly different. In your case "Python for Kids - A Playful Introduction to Programming" [2] might be more appropriate as a first book. Despite the title it covers a wide range of topics *specifically geared towards writing a game in Python*. See the detailed table of contents to help decide. Also Chris has an "unnatural" abhorrence of Python 2.7 :) --- at least as far as learning Python books. As such he dismissed too early what I think might be a great initial (or 2nd) book, Hello Python [3]. To requote the Preface which resonates at least with me: "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." Some chapter titles include "Gaming with Pyglet", "Twisted Networking" (which implements a MUD), and "Django" so it covers quite a bit of ground. Again see the detailed table of contents. Notice that the subtitle for Think Python [4] is "How to Think Like a Computer Scientist" which is not every beginning programmer's goal. Yes, Think Python is free, and yes it's probably quite good, but it's not for everyone. In particular the presentation is a lot drier than the above mentioned books. Somewhat offtopic but mentioned in the thread: Here's what Elliotte Rusty Harold had to say about Java Console IO in Java I/O, 2nd Edition (OReilly, 2006) which I recently read while helping somewith with their college Java (yuck!) homework: Many common misconceptions about I/O occur because most programmers' first exposure to I/O is through the console. The console is convenient for quick hacks and toy examples commonly found in textbooks, and I will use it for that in this book, but it's really a very unusual source of input and destination for output, and good Java programs avoid it. It behaves almost, but not completely, unlike anything else you'd want to read from or write to. While consoles make convenient examples in programming texts like this one, they're a horrible user interface and really have little place in modern programs. Users are more comfortable with a well-designed GUI. Furthermore, the console is unreliable across platforms. Many smaller devices such as Palm Pilots and cell phones have no console. Web browsers running applets sometimes provide a console that can be used for output. However, this is hidden by default, normally cannot be used for input, and is not available in all browsers on all platforms. Yikes, a bit opinionated isn't he? Reminds me of some people on this list :) Finally, regarding sneering at HTML/Javascript. While I've never used the technology, HTML5/Javascript has the Canvas and possibly WebGL. I've noticed all sorts of new books on the topic, for example: Core HTML5 Canvas Graphics, Animation, and Game Development (Prentice Hall, 2012) HTML5 Games Development by Example - Beginner's Guide (Packt, 2011) HTML5 Games Most Wanted (Friends of Ed, 2012) Supercharged JavaScript Graphics - With HTML5 Canvas, jQuery, and More (O'Reilly, 2011) HTML5 Graphics and Data Visualization Cookbook (Packt, 2012) This in fact "may" be/is the future of graphics programming (at least in terms of # of apps written)? And TypeScript [5] "may" make using javascript (under the hood) less objectionable. I still agree with your overall approach, learn programming via Python first --- not for god's sake Java, which colleges still think is the bee's knees :). But realize that it's only one tool in the programmer's toolkit and you'll eventually have to learn many languages. [1] http://mail.python.org/pipermail/python-list/2013-May/646208.html [2] http://nostarch.com/pythonforkids [3] http://www.manning.com/briggs/ [4] http://www.greenteapress.com/thinkpython/thinkpython.html [5] http://www.typescriptlang.org/ --f46d04182658684e5704df050470 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable

= On Wed, Jun 12, 2013 at 1:02 PM, Chris Angelico <rosuav@gmail.com> wrote:
I put the question to the
list, and got back a number of excellent and most useful answers
regarding book recommendations, and we ended up going with (if memory
serves me) Think Python [1]

Here's a link [1] to Chris' ori= ginal question (and the following answers including mine which mentioned Th= ink Python).

Chris' requirements were slightly different. In your case "Pyt= hon for Kids - A Playful Introduction to Programming" [2] might be mor= e appropriate as a first book. Despite the title it covers a wide range of = topics *specifically geared towards writing a game in Python*. See the deta= iled table of contents to help decide.

Also Chris has an "unnatural" abhorrence of Python 2.7 :) ---= at least as far as learning Python books. As such he dismissed too early w= hat I think might be a great initial (or 2nd) book, Hello Python [3]. To re= quote the Preface which resonates at least with me:

=A0=A0=A0 "I thought back to how I first learned to program. I did= n't read an
=A0=A0=A0 entire programming book from cover to cover an= d then write a program
=A0=A0=A0 after I knew everything there was to kn= ow. 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."

Some chapter titles i= nclude "Gaming with Pyglet", "Twisted Networking" (whic= h implements a MUD), and "Django" so it covers quite a bit of gro= und. Again see the detailed table of contents.

Notice that the subtitle for Think Python [4] is "How to Think Lik= e a Computer Scientist" which is not every beginning programmer's = goal. Yes, Think Python is free, and yes it's probably quite good, but = it's not for everyone. In particular the presentation is a lot drier th= an the above mentioned books.

Somewhat offtopic but mentioned in the thread: Here's what Elliotte= Rusty Harold had to say about Java Console IO in Java I/O, 2nd Edition (OR= eilly, 2006) which I recently read while helping somewith with their colleg= e Java (yuck!) homework:

=A0=A0=A0 Many common misconceptions about I/O occur because most progr= ammers'
=A0=A0=A0 first exposure to I/O is through the console. The = console is
=A0=A0=A0 convenient for quick hacks and toy examples commonl= y found in
=A0=A0=A0 textbooks, and I will use it for that in this book, but it's = really
=A0=A0=A0 a very unusual source of input and destination for outp= ut, and good
=A0=A0=A0 Java programs avoid it. It behaves almost, but no= t completely,
=A0=A0=A0 unlike anything else you'd want to read from or write to. Whi= le
=A0=A0=A0 consoles make convenient examples in programming texts like= this
=A0=A0=A0 one, they're a horrible user interface and really ha= ve little place
=A0=A0=A0 in modern programs. Users are more comfortable with a well-design= ed
=A0=A0=A0 GUI. Furthermore, the console is unreliable across platform= s. Many
=A0=A0=A0 smaller devices such as Palm Pilots and cell phones ha= ve no
=A0=A0=A0 console. Web browsers running applets sometimes provide = a console
=A0=A0=A0 that can be used for output. However, this is hidden by default,<= br>=A0=A0=A0 normally cannot be used for input, and is not available in all=
=A0=A0=A0 browsers on all platforms.

Yikes, a bit opinionated is= n't he? Reminds me of some people on this list :)

Finally, regarding sneering at HTML/Javascript. While I've never us= ed the technology, HTML5/Javascript has the Canvas and possibly WebGL. I= 9;ve noticed all sorts of new books on the topic, for example:

=A0=A0=A0 Core HTML5 Canvas=A0 Graphics, Animation, and Game Development (P= rentice Hall, 2012)

=A0=A0=A0 HTML5 Games Development by Example - Beginner's Guide (Pa= ckt, 2011)

=A0=A0=A0 HTML5 Games Most Wanted (Friends of Ed, 2012)
=A0=A0=A0 Supercharged JavaScript Graphics - With HTML5 Canvas, jQuer= y, and More (O'Reilly, 2011)

=A0=A0=A0 HTML5 Graphics and Data Visualization Cookbook (Packt, 2012)<= br>
This in fact "may" be/is the future of graphics programmin= g (at least in terms of # of apps written)? And TypeScript [5] "may&qu= ot; make using javascript (under the hood) less objectionable.

I still agree with your overall approach, learn programming via Python = first --- not for god's sake Java, which colleges still think is the be= e's knees :). But realize that it's only one tool in the programmer= 's toolkit and you'll eventually have to learn many languages.

[1] http://mail.python.org/pipermail/python-list/2013-May/646208.htm= l

[2] http://nosta= rch.com/pythonforkids

[3] http://www.manning.com/b= riggs/

[4] http://www.greenteapress.com/thinkpython/thinkpython.html<= /a>

[5]
http://www.typescriptlan= g.org/
--f46d04182658684e5704df050470--