[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: My First Computer (was Computing Editorial)
Lee Hart wrote:
OK; more precisely, 99% of today's computers sold come with no
programming language.
Glen wrote:
Micro$oft does not put any languages in the box. But that does not
mean there are [no] languages for Windows. You can download c, c++,
java, python and perl-- just to name five. All under open source
licenses.
Microsoft SELLS their languages; they are far from free. And, they are
all explicitly designed for professionals, not beginners!
Yes, you can download free languages. Which ones are suitable for
beginners? How would a beginner know which one to pick, and where to
find them?
Well I haven't used any of the MS languages because I work in the unix
camp but its my understanding the visual basic was in fact intended to
be an easy to use language. I have seen all three of the MS languages
(VB C# and Visual C++) for $99 in staples for the 'personal' edition
there may be an acidemic edition that is even less.
I would recommend python as a language that is very well suited to
beginners. Perl (which is very similar) is the runner up.
Both the python and the perl hello world programs are basic like:
Here is pythons:
$python
>>> print 'Hello world!'
>>> CTRL D to exit.
You just type python to start python. That puts you into the
interperator. print is a function that takes a string.
I don't know if a beginner would know where to find a good beginner
language. Unless he/she just read this post because python is free at
www.python.com and www.activestate.com.
The reason I think python is a great beginner language is because it is
also a great advanced and a great expert language too. A number of real
applications have been written in python including the red hat linux
installer. So when the beginner wants to know "what is object
orientated programming" or "how do I write large programs" or "how do i
write or use a gui" or "how do i write a game" you can show them in
python because Python scales up to real applications. In fact Python is
more advanced than the popular Java in many ways. A person who has used
all of pythons features will find Java easy. But java will not be very
easy to a complete beginner becuase you need to know about more than
just "print 'hello'" to understand the Java hello world.
In fact the people that wrote python including the projet leader Guido
van Rossum want beginners to be able to use their language. These
people are not elitists. They write and improve python and give the
work away. In contrast, most languages come from either universitys or
corporations or both.
Programming is slow and tedious in any language. Kids are likely to
get frustrated. You can't just sit them in front of computer and
command them to learn programming anymore than you could give them
some pipes and tell them to learn about plumbing.
But, just like human languages, some computer languages are easier to
learn than others. BASIC is far easier than C++. If you start people off
with a "hard" language, you will frustrate and scare off most of them.
Likewise, if you just plop them in front of a computer and expect them
to learn it without help, they are doomed to fail. You don't teach
natural languages this way, either! It requires coaching, practice, and
lots of examples and helpful corrections from a patient teacher.
But, when you have the right computer, and right language, and right
books, examples, and software; kids *can* just sit down in front of the
computer and learn it!
Well I think one big thing is that you want to avoid compilers because
you will have 90% of the "questions" be the same: "why doesn't this
compile". Programs that don't compile frustrate adults and children alike.
Basically you need a language that has distance from the hardware.
basic does but a lot of 'real' languages do too. Unless you are tying
to teach how hardware works you should give your beginner a break and
let him think about hardware latter.
If you want a kid to be a programmer you should probably wait until
he/she is about 14-15 to push it on them. Before then you should
get the child read and write well. Because (believe it or not)
programming is just another form of writing.
That is too late! If we waited to teach reading, writing, or languages
until 14-15 years old, most people would never learn it. Kids are
fantastic learners at younger ages; that is when you have to teach them
these skills!
When I was in 4th grade I was choosen as one of the kids in the
Logo program. The school literally just sat my in front of an
Apple II running logo. They provided no books or instruction.
Nice "education" huh?
They blew it. What a waste of time!
Far too often, computers in the schools are just used as babysitters and
entertainment devices. Keep the kid busy so the teacher doesn't have to
do anything.
I have a lot of opinions about whats wrong with schools but I don't want
to offend too many people :)
At the time an Apple II was an expensive piece of hardware. The school
at great cost (they had a lot of Apple IIs) bought the tools at expense
to the taxpayer but never used them correctly.
I don't know a lot about kids. I'll be the first to admit. So I don't
know the right age to start programming.
But I do think that some of these games that aren't even meant to be
educational actually are more educational than a lot of what goes on at
school. [LOOK AT THAT I'M ON TOPIC AGAIN!] I still remember dicussing
how not to get lost in RPGs mazes with a friend. If you always turn the
same way you will be able to just do a 180 and follow that wall back to
the start point. (Useful if you end up in a hedge maze in the snow like
in the Shining). This may be why some more difficult games like bard's
tale have spinners on the floor. Some of the more complex RPGs and
strategy games force kids to think creatively to finish the game. Even
a recent game Amoured Core 3, which is just a robot shooter, forces you
to think. I was just playing AC3 a couple weeks ago and was forced to
take a strategy break (coffee and walking the dog) to think out a way to
beat a difficult board. (Turns out you can just increase your firepower
and win with brute force -- but I was still forced to take the break).
Its been said that 'war is the ultimate game' which is why so many games
are about war. It has 'minimum rules' and maximum depth of strategy.
Nalan Brushnell was talking about this in an interview on the Atari
Redux (ps1 etc.). This is an explaination of why almost all early games
are war games.
In school when I was a kid they baned video games from the computers
from the computers unless they were "educational". So they would
bane a highly complex sci-fi game with lots of depth of play for a mind
numbingly simple game with a history theme. I thought this was stupid
when I was 12 and I *know* its stupid now :)
Glen.