What is different with Python ?
peter at engcorp.com
Mon Jun 13 03:52:12 CEST 2005
Andrea Griffini wrote:
> On Sat, 11 Jun 2005 21:52:57 -0400, Peter Hansen <peter at engcorp.com>
>>I think new CS students have more than enough to learn with their
>>*first* language without having to discover the trials and tribulations
>>of memory management (or those other things that Python hides so well).
> I'm not sure that postponing learning what memory
> is, what a pointer is and others "bare metal"
> problems is a good idea. ...
> I think that for a programmer skipping the
> understanding of the implementation is just
> impossible: if you don't understand how a
> computer works you're going to write pretty
> silly programs.
I'm curious how you learned to program. What path worked for you, and
do you think it was a wrong approach, or the right one?
In my case, I started with BASIC. Good old BASIC, with no memory
management to worry about, no pointers, no "concrete" details, just FOR
loops and variables and lots of PRINT statements.
A while (some months) later I stumbled across some assembly language and
-- typing it into the computer like a monkey, with no idea what I was
dealing with -- began learning about some of the more concrete aspects
This worked very well in my case, and I strongly doubt I would have
stayed interested in an approach that started with talk of memory
addressing, bits and bytes, registers and opcodes and such.
I won't say that I'm certain about any of this, but I have a very strong
suspicion that the *best* first step in learning programming is a
program very much like the following, which I'm pretty sure was mine:
10 FOR A=1 TO 10: PRINT"Peter is great!": END
And no, I don't recall enough BASIC syntax to be sure that's even
correct, but I'm sure you get my point. In one line I learned
(implicitly at first) about variables, control structures and iteration,
output, and probably a few other things.
More importantly by far, *I made the computer do something*. This
should be everyone's first step in a programming course, and it doesn't
take the slightest understanding of what you call "concrete" things...
(though I'd call these things very concrete, and memory management
"esoteric" or something).
If I had been stuck in a course that made me learn about memory
management before I could write a program, I'm pretty sure I'd be doing
something fascinating like selling jeans in a Levis store...
More information about the Python-list