[Edu-sig] Re: are there any tutorials that someone completly new to programming can understand?

Kirby Urner urner@alumni.Princeton.EDU
Sat, 05 Aug 2000 13:38:57 -0700


gbp <gpepice1@nycap.rr.com> wrote:

 >
 >There are a lack of books on Python in general so there's a really big
 >lack of books on niche things.  All the books on python are for people
 >who basically know how to program already.  

Thanks for taking the time to look back and summarize.  I think 
you're providing useful guidance to people venturing into 
computers and programming and wanting some overview/perspective.

I used to work for a textbook company doing stuff for junior
high schoolers.  This was 1984 and Logo and BASIC (not Visual
Basic) were the two teaching languages most used at that level.

I would agree with you completely that Python is a good 
teaching language and that we need more teaching materials
which phase in programming and computer basics at the 
same time.  Or we could blend programming, computer, and
basic math concepts (the approach I prefer, and call the
'Numeracy + Computer Literacy' or 'math through programming'
approach)

If I were to go back to that text book company (McGraw-Hill)
now that 15 years have gone by, I'd be pushing Python as the 
"new BASIC".  DrScheme is another good one, for giving the 
flavor of a LISP-style approach (which is quite different 
-- takes some getting used to (Logo is also LISPish)).

The "Computer Programming for Everybody" initiative, which
did get some funding initially, was about taking advantage
of Python's teachability.  The DARPA grant has run down,
but there's still a special interest group (SIG) exploring
the topic.  

See:  http://www.python.org/sigs/edu-sig/

Also, maybe check out my "math through programming" essay,
which starts with easy Python (3-to-8 line functions) and 
builds up to more complicated stuff, getting quickly into
3D graphics (by joining forces with Povray, also free):

http://www.inetarena.com/~pdx4d/ocn/numeracy0.html

At the bottom of the first section, is a link to the 
high school in Virginia where Jeff Elkner teaches.  His
program is one of the more dynamic and Python-invested.
I suggest you explore his school's website for Python-
learning resources (or, if you already know Python 
pretty well, point your friends just starting out to 
this resource).


Kirby


 >Python really is a good teaching langauge because its both 'correct' and
 >fairly complete.  You can write a lot of cool programs in python fairly
 >easily compared to C.  I think that college professors and high school
 >teachers should teach Python insted of BASIC.  BASIC is often taught to
 >lower level programming classes because its accessable.  However, basic
 >is a pretty bad langauge.  For higher level classes C (now C++, or even
 >Java) is taught.  C is great if you have 4 years and are highly
 >motivated to learn about computers.  

 >When your learning on your own the quality of the book can be as if not
 >more important than the langauge.  Python is a great language but... 

 >People have learned with all different kinds of langauges.  There is no
 >right way to learn.  Real programmers usually know 2-5 langauges fairly
 >well.  Since the demand for programmers is so high theres a whole new
 >bred of paid visual basic programmers who barely know anything about
 >programming langauges-- a similar thing is true for network
 >administrators.  Some people who have gone through school or have a lot
 >of work experience may have been exposed to ten or even twenty. 
 >Langauge nuts may 'know' even more.  I'm only 25 and iv'e written
 >programs in basic(many flavors), logo, pascal, C/C++, lisp(weird),
 >Perl(very weird), bash(sucks), SQL, and javascript(not that good), a
 >little java, and now python (yeah!).

 >Different langauges are good at different things, so there is never
 >going to be a best langauge.  People may argue about what the best
 >langauge is in a particular niche. 

 >Since the major obstical is going to be motivation you should pick a
 >language that you think is cool.  After that try to lacate decent
 >teaching materials.  If you can't find them move on.  If you have an
 >interest in a particular field try a langauge that you know is used in
 >that field.

 >My advice to you is that the best books for learning programming come
 >out of the acedemic world.  Try to get a book that is meant for a first
 >and second semester course in Computer science and is written by a
 >professor or other acedemic.  Try writing some toy programs.

 >This is my short list of ones to check out:

 >**** Logo:  A fun little langauge that has a built in graphics engine. 
 >This is often used to teach kids but unlike basic it is actually a good
 >langauge.   

 >*** C: Not for the faint of heart but if you want to know the internals
 >of how computers actually work this may interest you.  Note I said C not
 >C++.

 >*** Pascal:  This is actually designed as a teaching langauge.  (I think
 >Logo was too)  Not bad but it may be hard to write something cool in
 >it.  Lots a lanagues like Delpi and modula-2 are pascal-like.

 >*** Java: The OOP is kinda tough but this language is solid.  Good book
 >essential.  IDE recommended.

 >*** Linux:  Not a programming language :)  Good way to learn about 
 >computers and operating systems.  Also includes about 10-20 free
 >langauges.  SUSE Linux has the most stuff.

 >** 1/2 Visual Basic:  Easy to actually build things with.  Just don't
 >let it go to your head.  Your not a real programmer until you know TWO
 >langauges :)

 >*** HTML:  Not exactly a langauge either but may be interesting.  You
 >combine this with other stuff to make web sites.

 >*** SQL/Databases:  Kindof a career thing.  Databases are kindof
 >interesting in there own right.  SQL is a special lanaguage to
 >manipulate databases.  Access programmers are kindof like the Visual
 >basic programmers.  (Your not a real DBA until you know a 'real'
 >database like Oracle, DB2, or Sybase :)