Re: What is different with Python ?



Andrea Griffini wrote:
On Sat, 11 Jun 2005 21:52:57 -0400, Peter Hansen <peter@xxxxxxxxxxx>
wrote:
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 of computers.

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...

-Peter
.



Relevant Pages

  • Re: Exception Handling...
    ... Language, keywords especially, should be packed into the tiniest ... such as memory management or ... But these practicalities when tucked into the middle of a programming ... simpler, its faster, it uses OS native management features and you can still ...
    (comp.lang.pascal.delphi.misc)
  • Re: How come Ada isnt more popular?
    ... last time I was messing with manual memory management in a regular C++ ... Most programming languages were terrible at that time, ... GUI that sucks was better than no standard GUI at all for lost ...
    (comp.lang.ada)
  • Re: What programming language for Future
    ... any suggestion for future language? ... > You can, however, talk about language _features_ that will dominate in ... > memory management or other automatic and safe ways of handling ... > - Generative programming. ...
    (comp.lang.misc)
  • Re: newbie help, choosing language
    ... >of programming languages. ... Most of this is due to the language itself ... such as variable type declaration ... memory management. ...
    (comp.programming)
  • SCP Special Issue on Memory Management - call for contributions
    ... Dynamic memory management is an important feature of all modern programming ... whether explicit memory management or automatic garbage collection is used. ... The widespread use of languages such as Java, ...
    (comp.lang.prolog)