On Sat, 11 Jun 2005 21:52:57 -0400, Peter Hansen <[EMAIL PROTECTED]> 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. Those concept are not "more complex" at all, they're just more *concrete* than the abstract concept of "variable". Human mind work best moving from the concrete to the abstract, we first learn counting, and only later we learn rings (or even set theory). Unless you think a programmer may live happy without understanding concrete issues then IMO the best is to learn concrete facts first, and only later abstractions. 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. Note that I'm not saying that one should understand every possible implementation down to the bit (that's of course nonsense), but there should be no room for "magic" in a computer for a professional programmer. Also concrete->abstract shows a clear path; starting in the middle and looking both up (to higher abstractions) and down (to the implementation details) is IMO much more confusing. Andrea -- http://mail.python.org/mailman/listinfo/python-list