[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: My First Computer (was Computing Editorial)
In <3E460CD2.7A25@earthlink.net>, Lee Hart wrote:
> Glen wrote:
>> I would recommend python as a language that is very well suited to
>> beginners. Perl (which is very similar) is the runner up.
>
> Good heavens! You think they are *easy* to learn? Both are very large and
> sophisticated languages, that require substantial computer resources to
> run.
They are easy to learn. Especially Perl, as Python might be a bit strange
for a beginner with it's indentation rules.
> There are so many choices of how to do things that I think a beginner
> would be totally lost.
I think "There's more than one way to do it" isn't really bad. You can
experiment with Perl on an trial and error basis until your program runs.
Which might be fun for beginners/kids.
> Might I suggest that you try sitting down with someone who has never
> programmed any computer, and watch what happens when they try to learn one
> of these languages? For example, ask them to figure out how to get two
> numbers from the user and print their sum.
If they have a beginners tutorial or read the docs about the most basic,
built-in functions of Python they might come up with:
a = input()
b = input()
print a + b
Does this really look to complicated for beginners!?
> We all suffer from the Professor's paradox; we know so much that it's hard
> to remember what it was like when we *didn't* know it. "It's so obvious to
> me... how can these students be so stupid that they don't get it?"
>
> [...]
>
>> Basically you need a language that has distance from the hardware.
>
> Quite the contrary! When you're on the bottom rung of the ladder, you are
> very close to the hardware. It is essential that you understand it.
No it isn't! Programming has to do with describing the way to solve a
given problem in a formalized, exact way. This has much more to do with
logical thinking and mathematics. Both is, and was for many centuries, not
dependend on the hardware.
To express an algorithm in something like BASIC english is much more
natural to beginners than thinking in bits and hardware registers. So the
understanding of the underlying hardware is much higher on that ladder
than a high level language.
Maybe it's better to think of it as a ladder in two directions, if you
climb higher you get to more abstract concepts like namespaces, object
orientation or functional programming and if you go down, there's the
hardware stuff. I would recommend beginners to start in the middle and
extend their knowlege in both directions.
Ciao,
Marc 'BlackJack' Rintsch