[Edu-sig] Python for non-programmers

Dennis E. Hamilton infonuovo@email.com
Wed, 1 Mar 2000 12:20:35 -0800


I posted this to python-list and I was kindly requested to post it here too.
I am very interested in the objectives of CP4E.

-- Dennis

-----Original Message-----
From: python-list-admin@python.org
[mailto:python-list-admin@python.org]On Behalf Of Dennis E. Hamilton
Sent: Wednesday, March 01, 2000 08:07
To: Donn Cave; python-list@python.org
Subject: RE: Python for non-programmers


I am teaching my 35-year-old son about programming using Python.  He is a
musician and has learned to do impressive things with the DVD + CD-RW + SB
Live! on the Windows system that I set up for him.  He does his own web
pages, surfs a lot, and can get around pretty well.  He wanted to know how
to do more and learn how people do multi-media, game animation, and so on.
I figured this was a good occasion to get involved with Python for some
projects I have and as a learning laboratory for him, rather than getting
into C Language, GUI object manipulation, etc.

Yesterday, I sat next to him as he used Python and started to go through the
tutorial, me making notes on my desktop machine and him trying to figure out
things on my laptop next to it.

I learned a lot.  One thing is that the tutorial is full of things (I called
it toolcraft in a different conversation here) that are meaningless for
someone in Doug's shoes but leave him thinking that he is supposed to know
what is being discussed.  This was discouraging for him.  It was an
eye-opener for me.  I have a list of all the terms (from shell to
object-oriented) that have no context for non-programmers.  I just skip past
that stuff when I run into it.  It is in the noise for me.  He doesn't know
that.  I told him to treat it all as yack-yack-yack and just look for things
that provided examples or gave him some things to do.  That helped him get
through to section 2.1 but things got tough around section 2.1.1 where there
was no way to get through what was being talked about without more
grounding.  ("Argument," for Pete's sake!)

So, I talked him through a "hello world" exercise, after organizing a
Python/Projects folder enough so that he can see what corresponds to Python
libraries and modules.  This is without getting too technical about it.  I
want him to have enough about library organization just so he can get by for
now, with deepening after as he gets some confidence with basic operations.
He knows to make __init__.py files but not why.  I wanted him to have a
basic setup where he could begin self-guided activity and see useful results
that can also be grown to bigger projects and organized work.

He can see how to get in and out of the interpreter.  I showed him the DOS
editor and we built a "hello.py".  We ran it from the python command line
and by importing it in the "interactive mode."

I set him up with 4DOS just because it is a little easier to know where you
are and explore inside a command shell.  (I figure learning about console
mode would be an easier way to have useful work in python before dealing
with the GUI and the fledgling IDEs available for Python).

But mostly we learned things that one could also do using the MS-DOS
command.com shell.  He doesn't know what either of those are, but he knows
how to start a shell and start working with files and the python processor.
If we practice more today and tomorrow, while he is visiting me from
Portland, I figure he will be able to sustain himself when he is back home
next week, especially with me as a telephone and Instant-Messenger and
NetMeeting consultant.

He saw me use Python like a calculator, and he saw me assign strings and
calculation results to variables an reuse them.  He was fading fast (I need
to make the first steps smaller yet leave him in accomplishment), but he was
intrigued and I need to walk him through it again.

That was more than enough for a first time out.  If there were any good toy
applications that did useful things around, I could have him doing engaging
things at the console shell and python level that he could learn to analyze
and replicate later.  (I don't care if it is simply playing Hangman, or
tic-tac-toe or How Many Petals Around the Rose, something that is a complete
thing which can be used without having anything to do with building
software.)

He was tired and I was overwhelmed by how much we geeks operate on assumed
understanding and an incredible amount of unexplainable lore.  I saw that
his Windows knowledge is spotty -- there are things that he has missed so
far, such as the right-click menus and ability to make new documents and
folders.  He didn't know about the wheel on the wheel mouse to help with
scrolling.  Just the same, he has picked up ways to get around in Windows
applications and can get by (that's part of Windows usability).  He hasn't a
very coherent model and doesn't have a confident way to learn more.  Yet
Doug is the kind of guy who *does* read manuals and he does work through
tutorials, but he has, after 8 months with his own computer, mostly
developed a personal craft based on things that were discovered to work for
him.  He watches me and others with more experience and he picks up more
craft all of the time.

This has really brought me up short about what it takes to introduce
something like Python to a non-programmer (or even a programmer with a whole
different paradigm of computer use, operation, and programming).  I have to
shed all of my intuitions, developed over 40 years around these fascinating
mechanisms, and learn to see through his eyes.  That is daunting!

Doug has called the two of us the cybersmiths.  He was remarking on how, in
the past the blacksmith's kids would learn smithing from their dad by
hanging out and watching and developing a trade, absorbing the smithie's
toolcraft.   He sees himself as an apprentice cybersmith.  I like that.  Now
I am looking at what would make his experience more successful and
effective.

-- Dennis

-----Original Message-----
From: python-list-admin@python.org
[mailto:python-list-admin@python.org]On Behalf Of Donn Cave
Sent: Tuesday, February 29, 2000 21:53
To: python-list@python.org
Subject: RE: any non programmers out there?


Quoth "Cristian Echeverria" <echeverria@interactiva.cl>:
| I think a very good and basic introduction is the Python tutorial:
|
| http://www.python.org/doc/current/tut/tut.html

I started with that document and liked it a lot, too, but it's
probably a little hairy for someone who really has no background
in this area.  I mean this not as criticism of the document,
which is perfect for its normal audience, but in case someone
out there is thinking ``Man, I must be retarded, that was Greek
to me!''

	Donn Cave, donn@oz.net
--
http://www.python.org/mailman/listinfo/python-list


--
http://www.python.org/mailman/listinfo/python-list