Getting my sister to learn programming

BTW: I am assuming you are going to teach her Ruby. About the most
serious argument against Ruby you have raised is the English factor,
and I suspect that affects the alternative choices equally, with the
exception perhaps of mainstream commercial/academic languages.

The two strong arguments I have against Ruby are that the syntax is more
complicated (remember: the alternative is a Lisp) and that the mapping from
code to how it is executed is far, FAR, more complicated to explain (since
it is split into many many different cases, with many different rules of
precedence etc').

I always found that working with Files was a useful early lesson. You

build on the students existing knowledge of the PC, and it provides
a foundation for other much more interesting tasks, like say:
-indexing all the MP3 files on her PC
-searching through an Instant Message chat log

Good idea, thanks.

Perhaps to ask her (I'm just not sure she knows enough to answer)?

One of the things that is not taught well to beginners is giving them an
appreciation for what Programming can do for you. Mostly because this
is something actually quite hard. The big languages aren't suited for
simple script level activities that are good entry points for beginners,
while many scripting languages have low 'ceilings' - you can exhaust
their usefulness quickly.

Ruby is quite unusual in that it provides for simple scripting and easy
learning, but it keeps scaling up in complexity.

But you nailed it: ask her. Some of the ideas she has may be not
appropriate for a beginner, but it is important to know her ambition.
You could structure interim exercises that build towards her
suggestions.

That would indeed go against showing her what programming /can/ do. Is
there any middle way that does both? Perhaps going through a tree-structure
of possibilities?

Also a final word: beginners don't know which concepts are hard or

easy.

That is SO correct. A very important point.

Brian Marick's book 'Everyday Scripting with Ruby' (highly

···

On 2/13/07, Richard Conroy <richard.conroy@gmail.com> wrote:

recommended BTW) is particularly clever about this: it introduces
Ruby Blocks (an advanced concept to an experienced programmer)
before conditionals. This means that beginners will be predisposed
to use more elegant block syntax than verbose conditionals - without
knowing any better, they are being taught to write better code.

In fact his book has a lot of ideas and I am really warming to it as
an entry level book. I got it to teach Ruby to our testers at work,
but I am considering buying it for my Dad & Girlfriend too, who I am
teaching Ruby to as well.

On the other hand, it seems like a better successor
to QBasic than either Ruby, Python or Scheme, or even the various VB
clones, so as a first language it might get someone to the fun bits
faster.

Best Basic clone I have found is Blitz Max. It is the new generation
of that old Amiga favorite Blitz Basic. It is commercial but worth
it. Very nice syntax, static typed, extremely fast and multi-platform
(including Linux, albeit no demo for it). It also has a strong
community.

Albeit I'd probably recommend Ruby over it, it is also a good starting
language if you are into games. For a full game coded in it, see Yoda
Soccer on sourceforge. It is a clone of Sensible Soccer, and that IS
impressive for a "scripting" language.

You misunderstand - you can almost certainly do anything quicker in
Ruby than you can in Euphoria, but Euphoria is a simple, procedural
language that looks like Basic and supports a lot of C libraries. My
contention is that this will make it more fun for someone who doesn't
want to learn about elegant programming constructs or language
expressivity, but just wants to learn a bare minimum of formal
programming to start making the computer *do* something. I remember
having a lot of fun learning Basic as a first language (and a certain
noted computer scientist notwithstanding, it doesn't appear to have
done me any harm :)), and will thus be seriously exploring Euphoria's
potential as a Basic replacement.

(Of course, it might prove to be not as nice as I hope it will - like
I said, I haven't really looked at the language before, due to its
earlier closed-source nature.)

martin

···

On 2/13/07, SonOfLilit <sonoflilit@gmail.com> wrote:

Could you show examples of things quicker to do in Eu... than in Ruby?