Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #47834 > unrolled thread

My son wants me to teach him Python

Started byJohn Ladasky <john_ladasky@sbcglobal.net>
First post2013-06-12 12:46 -0700
Last post2013-07-27 05:25 -0700
Articles 20 on this page of 33 — 20 participants

Back to article view | Back to comp.lang.python


Contents

  My son wants me to teach him Python John Ladasky <john_ladasky@sbcglobal.net> - 2013-06-12 12:46 -0700
    Re: My son wants me to teach him Python Chris Angelico <rosuav@gmail.com> - 2013-06-13 06:02 +1000
      Re: My son wants me to teach him Python John Ladasky <john_ladasky@sbcglobal.net> - 2013-06-12 15:07 -0700
    Re: My son wants me to teach him Python Joel Goldstick <joel.goldstick@gmail.com> - 2013-06-12 16:23 -0400
    Re: My son wants me to teach him Python Chris Angelico <rosuav@gmail.com> - 2013-06-13 06:34 +1000
      Re: My son wants me to teach him Python John Ladasky <john_ladasky@sbcglobal.net> - 2013-06-12 15:06 -0700
        Re: My son wants me to teach him Python Ian Kelly <ian.g.kelly@gmail.com> - 2013-06-12 16:22 -0600
    Re: My son wants me to teach him Python Ethan Furman <ethan@stoneleaf.us> - 2013-06-12 14:31 -0700
    Re: My son wants me to teach him Python Chris Angelico <rosuav@gmail.com> - 2013-06-13 09:34 +1000
    Re: My son wants me to teach him Python Rick Johnson <rantingrickjohnson@gmail.com> - 2013-06-12 21:00 -0700
      Re: My son wants me to teach him Python Chris Angelico <rosuav@gmail.com> - 2013-06-13 14:08 +1000
        Re: My son wants me to teach him Python Rick Johnson <rantingrickjohnson@gmail.com> - 2013-06-12 21:47 -0700
          Re: My son wants me to teach him Python Andrew Berg <robotsondrugs@gmail.com> - 2013-06-13 00:23 -0500
          Re: My son wants me to teach him Python Modulok <modulok@gmail.com> - 2013-06-12 23:30 -0600
          Re: My son wants me to teach him Python Ethan Furman <ethan@stoneleaf.us> - 2013-06-12 22:48 -0700
          Re: My son wants me to teach him Python Chris Angelico <rosuav@gmail.com> - 2013-06-13 14:53 +1000
          Re: My son wants me to teach him Python Cameron Simpson <cs@zip.com.au> - 2013-06-14 11:05 +1000
    Re: My son wants me to teach him Python TP <wingusr@gmail.com> - 2013-06-13 01:35 -0700
    Re: My son wants me to teach him Python Chris Angelico <rosuav@gmail.com> - 2013-06-13 18:43 +1000
    Re: My son wants me to teach him Python rusi <rustompmody@gmail.com> - 2013-06-13 06:01 -0700
      Re: My son wants me to teach him Python Roy Smith <roy@panix.com> - 2013-06-13 09:07 -0400
        Re: My son wants me to teach him Python rusi <rustompmody@gmail.com> - 2013-06-13 06:37 -0700
          Python biases [was Re: My son wants me to teach him Python] Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-06-14 00:44 +0000
            Re: Python biases [was Re: My son wants me to teach him Python] rusi <rustompmody@gmail.com> - 2013-06-13 20:31 -0700
      Re: My son wants me to teach him Python Tomasz Rola <rtomek@ceti.pl> - 2013-06-13 17:37 +0200
        Re: My son wants me to teach him Python Steven D'Aprano <steve+comp.lang.python@pearwood.info> - 2013-06-14 01:23 +0000
          Re: My son wants me to teach him Python Ben Finney <ben+python@benfinney.id.au> - 2013-06-14 12:43 +1000
          Re: My son wants me to teach him Python Ethan Furman <ethan@stoneleaf.us> - 2013-06-13 18:44 -0700
          Re: My son wants me to teach him Python Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2013-06-14 20:00 -0400
      Re: My son wants me to teach him Python Joshua Landau <joshua.landau.ws@gmail.com> - 2013-06-13 21:08 +0100
    Re: My son wants me to teach him Python Mark Janssen <dreamingforward@gmail.com> - 2013-06-13 10:34 -0700
    Re: My son wants me to teach him Python russ.pobox@gmail.com - 2013-06-13 12:03 -0700
    Re: My son wants me to teach him Python aliencat777@gmail.com - 2013-07-27 05:25 -0700

Page 1 of 2  [1] 2  Next page →


#47834 — My son wants me to teach him Python

FromJohn Ladasky <john_ladasky@sbcglobal.net>
Date2013-06-12 12:46 -0700
SubjectMy son wants me to teach him Python
Message-ID<575a3a4c-b99f-43b4-aa2b-84dfaf3e89b4@googlegroups.com>
Hi folks,

My son is 17 years old.  He just took a one-year course in web page design at his high school.  HTML is worth knowing, I suppose, and I think he has also done a little Javascript.  He has expressed an interest in eventually wanting to program 3D video games.  

For that purpose, HTML and Javascript are too limited.  I hardly consider either one to be a real programming language.  I want to get him started with a real applications programming language -- Python, of course.  And he's ready to learn.  OK, so it's not necessarily a fast enough language for the epic video games he envisions, but it's a darn good start.  I'll tax his brain with a compiled language like C at some other time.

He's a smart kid, but prefers to be shown, to be tutored, rather than having the patience to sit down and RTFM.  Have any of you been down this road before?  I would appreciate it if you would share your experiences, or provide resource material.

Thanks!

[toc] | [next] | [standalone]


#47837

FromChris Angelico <rosuav@gmail.com>
Date2013-06-13 06:02 +1000
Message-ID<mailman.3123.1371067375.3114.python-list@python.org>
In reply to#47834
On Thu, Jun 13, 2013 at 5:46 AM, John Ladasky
<john_ladasky@sbcglobal.net> wrote:
> He's a smart kid, but prefers to be shown, to be tutored, rather than having the patience to sit down and RTFM.  Have any of you been down this road before?  I would appreciate it if you would share your experiences, or provide resource material.
>

Actually yes! My dad (whose name is also John) asked me the same
question, regarding one of my siblings. 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]. It seems to be doing fine, though I've
overheard some issues regarding Tkinter, Python 3.3, and Debian
Squeeze. So be aware that you may have to compile your own Python, and
if you do, you may have to look at what modules get compiled in. But
from my experience of building Python, that's not difficult.

[1] http://www.greenteapress.com/thinkpython/ I think, but DNS on this
computer is broken at the moment so I can't verify that link

ChrisA

[toc] | [prev] | [next] | [standalone]


#47854

FromJohn Ladasky <john_ladasky@sbcglobal.net>
Date2013-06-12 15:07 -0700
Message-ID<039a0535-972a-4825-ab30-689bc5ea249f@googlegroups.com>
In reply to#47837
On Wednesday, June 12, 2013 8:02:46 PM UTC, Chris Angelico wrote:

> [1] http://www.greenteapress.com/thinkpython/ I think, but DNS on this
> computer is broken at the moment so I can't verify that link

Your link is correct, thank you!

[toc] | [prev] | [next] | [standalone]


#47842

FromJoel Goldstick <joel.goldstick@gmail.com>
Date2013-06-12 16:23 -0400
Message-ID<mailman.3127.1371068609.3114.python-list@python.org>
In reply to#47834

[Multipart message — attachments visible in raw view] — view raw

On Wed, Jun 12, 2013 at 4:02 PM, Chris Angelico <rosuav@gmail.com> wrote:

> On Thu, Jun 13, 2013 at 5:46 AM, John Ladasky
> <john_ladasky@sbcglobal.net> wrote:
> > He's a smart kid, but prefers to be shown, to be tutored, rather than
> having the patience to sit down and RTFM.  Have any of you been down this
> road before?  I would appreciate it if you would share your experiences, or
> provide resource material.
> >
>

There is a google course in python on videos.  I believe it has time outs
for doing assignments.  Here is where you go to get started
https://developers.google.com/edu/python/

>
> Actually yes! My dad (whose name is also John) asked me the same
> question, regarding one of my siblings. 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]. It seems to be doing fine, though I've
> overheard some issues regarding Tkinter, Python 3.3, and Debian
> Squeeze. So be aware that you may have to compile your own Python, and
> if you do, you may have to look at what modules get compiled in. But
> from my experience of building Python, that's not difficult.
>
> [1] http://www.greenteapress.com/thinkpython/ I think, but DNS on this
> computer is broken at the moment so I can't verify that link
>
> ChrisA
> --
> http://mail.python.org/mailman/listinfo/python-list
>



-- 
Joel Goldstick
http://joelgoldstick.com

[toc] | [prev] | [next] | [standalone]


#47847

FromChris Angelico <rosuav@gmail.com>
Date2013-06-13 06:34 +1000
Message-ID<mailman.3130.1371069257.3114.python-list@python.org>
In reply to#47834
On Thu, Jun 13, 2013 at 6:23 AM, Joel Goldstick
<joel.goldstick@gmail.com> wrote:
>
>
>
> On Wed, Jun 12, 2013 at 4:02 PM, Chris Angelico <rosuav@gmail.com> wrote:
>>
>> On Thu, Jun 13, 2013 at 5:46 AM, John Ladasky
>> <john_ladasky@sbcglobal.net> wrote:
>> > He's a smart kid, but prefers to be shown, to be tutored, rather than
>> > having the patience to sit down and RTFM.  Have any of you been down this
>> > road before?  I would appreciate it if you would share your experiences, or
>> > provide resource material.
>> >
>
>
> There is a google course in python on videos.  I believe it has time outs
> for doing assignments.  Here is where you go to get started
> https://developers.google.com/edu/python/

Went digging to see what version they support, and found it - buried -
and with some FUD:

https://developers.google.com/edu/python/set-up
"For Google's Python Class, you want a python version that is 2.4 or
later, and avoiding the 3.x versions for now is probably best."

I would recommend going with Python 3, preferably 3.3, because that's
the future of Python. Unless you have a good reason for sticking with
2.x, go with 3.x.

ChrisA

[toc] | [prev] | [next] | [standalone]


#47853

FromJohn Ladasky <john_ladasky@sbcglobal.net>
Date2013-06-12 15:06 -0700
Message-ID<29feff4d-8526-4366-89bf-cea941bc7d4a@googlegroups.com>
In reply to#47847
On Wednesday, June 12, 2013 8:34:15 PM UTC, Chris Angelico wrote:
>Unless you have a good reason for sticking with 2.x, go with 3.x.

I agree, Chris, I will be teaching my son Python 3 from the start.  In fact, I'm in the middle of a messy upgrade of my own computer to get everything ready for Python 3.  Upgrading my son's machine should be less painful, because he doesn't need cutting-edge versions of scipy, wxPython or Matplotlib... but I do hope that some of the game packages, like PyGame, are Python 3-compatible.  I haven't checked into that yet.

[toc] | [prev] | [next] | [standalone]


#47855

FromIan Kelly <ian.g.kelly@gmail.com>
Date2013-06-12 16:22 -0600
Message-ID<mailman.3136.1371075770.3114.python-list@python.org>
In reply to#47853
On Wed, Jun 12, 2013 at 4:06 PM, John Ladasky
<john_ladasky@sbcglobal.net> wrote:
> On Wednesday, June 12, 2013 8:34:15 PM UTC, Chris Angelico wrote:
>>Unless you have a good reason for sticking with 2.x, go with 3.x.
>
> I agree, Chris, I will be teaching my son Python 3 from the start.  In fact, I'm in the middle of a messy upgrade of my own computer to get everything ready for Python 3.  Upgrading my son's machine should be less painful, because he doesn't need cutting-edge versions of scipy, wxPython or Matplotlib... but I do hope that some of the game packages, like PyGame, are Python 3-compatible.  I haven't checked into that yet.

I've used pygame with Python 3, so it's definitely compatible.

[toc] | [prev] | [next] | [standalone]


#47852

FromEthan Furman <ethan@stoneleaf.us>
Date2013-06-12 14:31 -0700
Message-ID<mailman.3135.1371074204.3114.python-list@python.org>
In reply to#47834
While I agree with Chris that 3.x is best, there is a free class from Udacity that is actually pretty good, even if it 
does target Python2 (.7 I believe).

https://www.udacity.com/course/cs101

--
~Ethan~

[toc] | [prev] | [next] | [standalone]


#47859

FromChris Angelico <rosuav@gmail.com>
Date2013-06-13 09:34 +1000
Message-ID<mailman.3138.1371080054.3114.python-list@python.org>
In reply to#47834
On Thu, Jun 13, 2013 at 6:34 AM, Chris Angelico <rosuav@gmail.com> wrote:
> Went digging to see what version they support, and found it - buried -
> and with some FUD:
>
> https://developers.google.com/edu/python/set-up
> "For Google's Python Class, you want a python version that is 2.4 or
> later, and avoiding the 3.x versions for now is probably best."
>
> I would recommend going with Python 3, preferably 3.3, because that's
> the future of Python. Unless you have a good reason for sticking with
> 2.x, go with 3.x.

BTW, just to clarify this statement: I don't object to there being
courses for 2.x that don't touch 3.x (though I'd still use this as a
strong criterion in choosing a course); the bit I object to is the
vague FUD about "avoiding" 3.x, as though that branch isn't stable
yet. If it simply said "For Google's Python Class, you want a Python
version between 2.4 and 2.7.x", that'd be much better.

ChrisA

[toc] | [prev] | [next] | [standalone]


#47891

FromRick Johnson <rantingrickjohnson@gmail.com>
Date2013-06-12 21:00 -0700
Message-ID<0d636b8f-09fa-43d0-8795-29485e4edb5e@googlegroups.com>
In reply to#47834
On Wednesday, June 12, 2013 2:46:13 PM UTC-5, John Ladasky wrote:
> [...]
> He's a smart kid, but prefers to be shown, to be tutored,
> rather than having the patience to sit down and RTFM.
> Have any of you been down this road before?  I would
> appreciate it if you would share your experiences, or
> provide resource material.

Hello John. 

I'm going to suggest a completely different path to enlightenment for the lad. A path that has the potential for semi-instant gratification whilst also humbling the boy to the grim realities of computer graphics and application development. *evil grin*

Since your son has zero experience with both graphical and application based programming i would suggest starting at (near) the very bottom of the GUI spectrum, which, in the Python world would be the Tkinter Canvas. 

Some people would suggest starting with "turtle.py", and yes this is a good suggestion, however, i highly suggest that he begin by coding a python turtle program HIMSELF. 

But first i would let him use the existing turtle program, play around with it, understand some of the commands, etc... but whatever you do: DON'T LET HIM SEE THE SOURCE CODE! Then i would ask him to think about how this program works in a general manner (psst: remember, he's not a programmer "yet"!). 

For starters we know we need to create a "window" (this is where you would explain what a GUI library is. And to satisfy the instant gratification, we should create a window very soon. 

After we can create a blank window, we should take this opportunity to quickly cover some of the common subwidgets that can be placed into a window, such as:: "Text", "Entry", "Label", "Button", etc.., and maybe some simple code to display each of them will be fun.

Now that we know "generally" what a GUI is, and we know about windows and sub-widgets, it's time to refocus on the turtle program. We will need to create a drawing area within the window for which to draw the turtle -- enter the Tk::Canvas!

Next we can take a slight tangential meandering and learn about common Canvas primitives (like rectangles and lines and whatever!) Then we should decide which primitive would best suit a turtle, and draw that primitive.

Once we have drawn the turtle, we quickly realize that it needs to sprout some legs and move around. This is where the fun really starts to begin... I think you can figure out where to go from there. Math functions, event processing... fun times!

After he gets a simple turtle program running i would point out that even though he went to quite bit of work to solve this fairly simple problem, most of the really difficult code, like turning pixels on and off, drawing and ordering GUI windows, event loops, etc, etc...  has been abstracted away into multiple layers of low level code. Even though the starting point of our project could be considered "slightly low level" relative to Python, there are vast libraries of millions of lines of code, layered one atop the other, making all this possible.

The point of this exercise would be to get him thinking about solving problems instead of just reaching for a prepackaged library, and then not fully appreciating (or furthermore, truly *understanding*) the vast scope of *real* software design. 

Anybody can grab PyGame and start making simple games, but do they understand what is going on under the hood? I don't think they need to understand the science behind the internal combustion engine, however, if they cannot explain the basics of how the major components like: electrical, fuel, suspension, drive-train, braking, etc... work, then they lack a fundamental insight into solving complex problems that can arise later. 

For instance, if you hear a knocking sound whilst driving but the sound is absent whist idling, you can deduce that the problem most likely exists in the drive-train. From there you'd need to focus in at an even smaller level of detail -- but you could not come to that conclusion if you did not possess (at minimum) a basic understanding of the underlying component systems. 

Of course some might say:  "Rick, why go to all that trouble when you could traumatize him with openGL instead". And to that i would reply: "Save OpenGL for lesson number two!" 

*wink*




[toc] | [prev] | [next] | [standalone]


#47892

FromChris Angelico <rosuav@gmail.com>
Date2013-06-13 14:08 +1000
Message-ID<mailman.3159.1371096532.3114.python-list@python.org>
In reply to#47891
On Thu, Jun 13, 2013 at 2:00 PM, Rick Johnson
<rantingrickjohnson@gmail.com> wrote:
> On Wednesday, June 12, 2013 2:46:13 PM UTC-5, John Ladasky wrote:
>> [...]
>> He's a smart kid, but prefers to be shown, to be tutored,
>> rather than having the patience to sit down and RTFM.
>> Have any of you been down this road before?  I would
>> appreciate it if you would share your experiences, or
>> provide resource material.
>
> Hello John.
>
> I'm going to suggest a completely different path to enlightenment for the lad. A path that has the potential for semi-instant gratification whilst also humbling the boy to the grim realities of computer graphics and application development. *evil grin*
>
> Since your son has zero experience with both graphical and application based programming i would suggest starting at (near) the very bottom of the GUI spectrum, which, in the Python world would be the Tkinter Canvas.


No. Definitely not. Programming does NOT begin with a GUI. It begins
with something *simple*, so you're not stuck fiddling around with the
unnecessary. On today's computers, that usually means console I/O
(actually console output, with console input coming along much later).

ChrisA

[toc] | [prev] | [next] | [standalone]


#47896

FromRick Johnson <rantingrickjohnson@gmail.com>
Date2013-06-12 21:47 -0700
Message-ID<cdc17fa7-663f-4c5f-bcc3-4970e8b2f395@googlegroups.com>
In reply to#47892
On Wednesday, June 12, 2013 11:08:44 PM UTC-5, Chris Angelico wrote:

> No. Definitely not. Programming does NOT begin with a GUI. It begins
> with something *simple*, so you're not stuck fiddling around with the
> unnecessary. On today's computers, that usually means console I/O
> (actually console output, with console input coming along much later).

Chris, you're a dinosaur, only thing is, somebody forgot to tell you.

*Everything* these days revolves around graphical interfaces. The console, which was once the dark and mystical battlefield where knighted geeks would slay the plagues of exception demons, has been reduced to a mere: "little black box of nostalgia". 

 1. Rock is dead...
 2. The console is dead...
 3. Welcome to the 21st century Chris!

PS: Although i'll bet you think the "rock is dead" mantra is relatively recent, nope! Jim Morrison was singing about it waaay back in 1969!

[toc] | [prev] | [next] | [standalone]


#47897

FromAndrew Berg <robotsondrugs@gmail.com>
Date2013-06-13 00:23 -0500
Message-ID<mailman.3162.1371101051.3114.python-list@python.org>
In reply to#47896
On 2013.06.12 23:47, Rick Johnson wrote:
>  1. Rock is dead...
Nah, he just does movies now.

Seriously, though, GUI stuff might be okay to learn early on since he's interested in making games. There's no reason to focus heavily on it
this early, however.
-- 
CPython 3.3.2 | Windows NT 6.2.9200 / FreeBSD 9.1

[toc] | [prev] | [next] | [standalone]


#47898

FromModulok <modulok@gmail.com>
Date2013-06-12 23:30 -0600
Message-ID<mailman.3163.1371101431.3114.python-list@python.org>
In reply to#47896

[Multipart message — attachments visible in raw view] — view raw

>> *Everything* these days revolves around graphical interfaces. The
console,
>> which was once the dark and mystical battlefield where knighted geeks
would
>> slay the plagues of exception demons, has been reduced to a mere:
"little black
>> box of nostalgia".

>>  1. Rock is dead...
>>  2. The console is dead...

I use a console every day and I'm 28 years old. I write code for everything
from Autodesk Maya to web API's to database backends. (Yes, GUI code too.)
The
console is far, far from dead. It has a steeper learning curve than a GUI
but
even in 2013 it's still invaluable. To date I have not met a good programmer
who doesn't use a console on a regular basis. It's not the only tool in the
box
but, properly configured, it's a heck of a good one. I don't see this
changing
anytime soon.

Back on topic...

If he wants to learn game programming, teach him game programming. Don't
push a
bunch of prerequisites on him that he has to learn first. You'll only kill
the
spirit. There's plenty of time to learn the other stuff as needed. You might
look at the Unity game engine. There's a lot of UI to start with for
tweaking
assets and a *lots* of programming. There's a free version and tons of
documentation. You might consider signing up for www.digitaltutors.com/ for
additional sources of documentation on both Unity as well as digital content
creation software you'll be using along the way. This will feed his desire
to
learn due to the instant gratification of making a 3D "game" in an hour.

Unfortunately, with Unity you don't get to write code in Python, but there's
Boo script which is Python inspired, as well as JavaScript if he's already
comfortable with that. (Eww... but even it has good parts.) If you decide to
get seriously invested in digital content creation software (i.e. Maya, etc)
most of those are scripted in Python. Maya used to be all MEL (and the MEL
interpreter is still supported) but most new code for proprietary tools is
done
in Python. (MEL is kind of perverse in comparison.)

Most important of all - keep it fun!
-Modulok-


On Wed, Jun 12, 2013 at 10:47 PM, Rick Johnson <rantingrickjohnson@gmail.com
> wrote:

> On Wednesday, June 12, 2013 11:08:44 PM UTC-5, Chris Angelico wrote:
>
> > No. Definitely not. Programming does NOT begin with a GUI. It begins
> > with something *simple*, so you're not stuck fiddling around with the
> > unnecessary. On today's computers, that usually means console I/O
> > (actually console output, with console input coming along much later).
>
> Chris, you're a dinosaur, only thing is, somebody forgot to tell you.
>
> *Everything* these days revolves around graphical interfaces. The console,
> which was once the dark and mystical battlefield where knighted geeks would
> slay the plagues of exception demons, has been reduced to a mere: "little
> black box of nostalgia".
>
>  1. Rock is dead...
>  2. The console is dead...
>  3. Welcome to the 21st century Chris!
>
> PS: Although i'll bet you think the "rock is dead" mantra is relatively
> recent, nope! Jim Morrison was singing about it waaay back in 1969!
> --
> http://mail.python.org/mailman/listinfo/python-list
>

[toc] | [prev] | [next] | [standalone]


#47900

FromEthan Furman <ethan@stoneleaf.us>
Date2013-06-12 22:48 -0700
Message-ID<mailman.3164.1371102500.3114.python-list@python.org>
In reply to#47896
On 06/12/2013 10:30 PM, Modulok wrote:
>
> If he wants to learn game programming, teach him game programming.  [. . .]

Oh, that reminds me:

	http://inventwithpython.com/

Which has a number of free books; the two of interest for your son being:

	Invent Your Own Computer Games with Python

	Making Games with Python & Pygame

Both are for Python 3.x.

--
~Ethan~

[toc] | [prev] | [next] | [standalone]


#47943

FromChris Angelico <rosuav@gmail.com>
Date2013-06-13 14:53 +1000
Message-ID<mailman.3183.1371124495.3114.python-list@python.org>
In reply to#47896
On Thu, Jun 13, 2013 at 2:47 PM, Rick Johnson
<rantingrickjohnson@gmail.com> wrote:
> On Wednesday, June 12, 2013 11:08:44 PM UTC-5, Chris Angelico wrote:
>
>> No. Definitely not. Programming does NOT begin with a GUI. It begins
>> with something *simple*, so you're not stuck fiddling around with the
>> unnecessary. On today's computers, that usually means console I/O
>> (actually console output, with console input coming along much later).
>
> Chris, you're a dinosaur, only thing is, somebody forgot to tell you.
>
> *Everything* these days revolves around graphical interfaces. The console, which was once the dark and mystical battlefield where knighted geeks would slay the plagues of exception demons, has been reduced to a mere: "little black box of nostalgia".
>
>  1. Rock is dead...
>  2. The console is dead...
>  3. Welcome to the 21st century Chris!
>
> PS: Although i'll bet you think the "rock is dead" mantra is relatively recent, nope! Jim Morrison was singing about it waaay back in 1969!

1. Rock is not dead, remove the covering paper and you'll find it's
happily smashed scissors.

2. The console is healthy. It's often now seen alongside a GUI, with
neither being by any means dead. And "glass teletype" is still the
easiest UI to program for in any language.

3. Thanks! I've been here for a while, but it's still nice to be made welcome.

ChrisA

[toc] | [prev] | [next] | [standalone]


#48045

FromCameron Simpson <cs@zip.com.au>
Date2013-06-14 11:05 +1000
Message-ID<mailman.3243.1371171943.3114.python-list@python.org>
In reply to#47896
On 12Jun2013 21:47, Rick Johnson <rantingrickjohnson@gmail.com> wrote:
| On Wednesday, June 12, 2013 11:08:44 PM UTC-5, Chris Angelico wrote:
| > No. Definitely not. Programming does NOT begin with a GUI. It begins
| > with something *simple*, so you're not stuck fiddling around with the
| > unnecessary. On today's computers, that usually means console I/O
| > (actually console output, with console input coming along much later).
| 
| Chris, you're a dinosaur, only thing is, somebody forgot to tell you.
| 
| *Everything* these days revolves around graphical interfaces.

Oh good.

Please communicate entirely in animations from now on. This text
medium you're using is crude, low bandwidth, and not sparkly enough.

But regrettably, I think Rick may be on the money here. All children
want to write games. I did, my friend's son did, etc. But by starting
with something functional but crude, he will be forced to encounter
the basic tools of coding anyway.

Cheers,
-- 
Cameron Simpson <cs@zip.com.au>

This is not my farewell to you. My only wish is to fight as a soldier
in the battle of ideas. I shall continue to write under the heading of
'Reflections by comrade Fidel.' It will be just another weapon you can
count on. Perhaps my voice will be heard. I shall be careful.
- Fidel Castro Ruz, 18feb2008

[toc] | [prev] | [next] | [standalone]


#47924

FromTP <wingusr@gmail.com>
Date2013-06-13 01:35 -0700
Message-ID<mailman.3174.1371112876.3114.python-list@python.org>
In reply to#47834

[Multipart message — attachments visible in raw view] — view raw

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' 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/

[toc] | [prev] | [next] | [standalone]


#47925

FromChris Angelico <rosuav@gmail.com>
Date2013-06-13 18:43 +1000
Message-ID<mailman.3175.1371112999.3114.python-list@python.org>
In reply to#47834
On Thu, Jun 13, 2013 at 6:35 PM, TP <wingusr@gmail.com> wrote:
> Also Chris has an "unnatural" abhorrence of Python 2.7 :) --- at least as
> far as learning Python books.

Thanks for hunting that thread down, I probably should have back when
I mentioned it :)

As to my abhorrence of Py2 - I don't hate the language (and do use it
at times), but if someone's going to learn programming, s/he should
really learn from something with native Unicode strings. Yes, you
could use Python 2 and open with some future directives, but unless
the course/book is written with that in mind, you'll end up having to
unlearn and relearn to master true Unicode handling. No point doing
that when you can just learn on Python 3!

ChrisA

[toc] | [prev] | [next] | [standalone]


#47954

Fromrusi <rustompmody@gmail.com>
Date2013-06-13 06:01 -0700
Message-ID<545a441b-0c2d-4b1e-82ae-024b011a400d@e1g2000pbo.googlegroups.com>
In reply to#47834
On Jun 13, 12:46 am, John Ladasky <john_lada...@sbcglobal.net> wrote:
> Hi folks,
>
> My son is 17 years old.  He just took a one-year course in web page design at his high school.  HTML is worth knowing, I suppose, and I think he has also done a little Javascript.  He has expressed an interest in eventually wanting to program 3D video games.
>
> For that purpose, HTML and Javascript are too limited.  I hardly consider either one to be a real programming language.  I want to get him started with a real applications programming language -- Python, of course.  And he's ready to learn.  OK, so it's not necessarily a fast enough language for the epic video games he envisions, but it's a darn good start.  I'll tax his brain with a compiled language like C at some other time.
>
> He's a smart kid, but prefers to be shown, to be tutored, rather than having the patience to sit down and RTFM.  Have any of you been down this road before?  I would appreciate it if you would share your experiences, or provide resource material.
>
> Thanks!

Some views of mine (controversial!).

Python is at least two things, a language and a culture.
As a language its exceptionally dogma-neutral.
You can do OO or FP, throwaway one-off scripts or long-term system
building etc

However as a culture it seems to prefer the OO style to the FP style.
This is unfortunate given that OO is on the down and FP is on a rise.
Some thoughts re OOP: http://blog.languager.org/2012/07/we-dont-need-no-ooooo-orientation-4.html

So my suggestion is use some rigorous FPL like Haskell to learn/teach
programming.
After that you can switch to python or some other realistic language.

Note: I have some serious reservations regarding Haskell
http://blog.languager.org/2012/08/functional-programming-philosophical.html
Nevertheless it seems to be the best there is at the moment.

tl;dr: Haskell is in 2013 what Pascal was in 1970 -- good for
programming pedagogy.

[toc] | [prev] | [next] | [standalone]


Page 1 of 2  [1] 2  Next page →

Back to top | Article view | comp.lang.python


csiph-web