my mother wants to code?

J

jussij

I am always amazed at Linux folk who try to teach newbies
how to program with vi/emacs and make

IMHO this is by far the better way to teach a new language.

Taking the text editor/make file approach will result in a
much better programmer, because it forces the student to
learn the language and nothing but the language.

Using the IDE approach, too many details are hidden by the
IDE, so in essence all you are learning is the IDE.

Jussi Jumppanen
Author: Zeus for Windows IDE
http://www.zeusedit.com
 
S

Stephen Waits

Using the IDE approach, too many details are hidden by the
IDE, so in essence all you are learning is the IDE.

I absolutely agree. Though I might choose notepad2 over vi/emacs for
teaching).

--Steve
 
M

Martin DeMello

Stephen Waits said:
I absolutely agree. Though I might choose notepad2 over vi/emacs for
teaching).

Use something with syntax highlighting and autoindent at least - afaics
notepad2 doesn't do the latter.

martin
 
M

Martin DeMello

Francois Paul said:
can anyone point me in the right direction? also if you think it is a
better idea to start programming in Java rather than Ruby, please let me
know why.

Here's one reason I'd *strongly* urge not using Java as a first
language: lack of support for closures. IMO closures are as fundamental
a code-structuring concept as functions and procedures are, and living
without them feels vaguely like using GOSUBs in BASIC dialects that
didn't have proper procedure support. Learning java as a first languyage
might lead her to the idea that closures are some sort of esoteric
construct only of interest to language junkies.

martin
 
J

Jeffrey Dik

While I agree that the IDE learning curve obscures the language learning
I cannot think that using a language that requires make is a good idea
for a newbie.

That is the beauty of starting with a scripting language, you just type
in the code, save it and run it. It doesn't require any "build"
concepts to be mastered before coding and there is less to go wrong.

"c" and "make" are a terrible choice to learn about programming (though
often a great choice for actually doing things).

I think this depends on what aspects of programming you want to learn.
If you want to learn a bit about how your computer does things, C is an
excellent language (a glorified assembly language, if you will). If all
you want to do is make an AJAXy website, you might wanna steer clear of
C.

As for learning C and learning about programming, I personally think
that Kernighan and Ritchie's "The C Programming Language" is one of the
best books I have ever read about a programming langauge. In my mind,
it ranks right up there with the Pickaxe ;-)

Jeff
 
J

Jeffrey Dik

Hi,

I think Ruby is a fabulous choice for learning to program. Ruby makes
the easy stuff easy, while also having a lot of the cooler stuff too
(closures, continuation, regexs, etc). Ruby is extemely elegant, fairly
simple and consistent, and expressive.

I think the best way to learn to program is to do a lot of programming.
Ruby will let you write powerful programs with simple programming
concepts. You really don't have to know a lot to get started. Learn
the more powerful stuff gradually when you need them.

Besides, Ruby's community's is the coolest ;-)

Save your mother from the Java torture (unknowingly (?)) inflicted by
your younger brother! Spare yourself from your mother being annoyed at
you when she realizes how much cooler Ruby is than Java and you just
stood aside! Take action!

you.teach!:)Ruby, :to => "mom") # or something like that.
# Refactorings, anybody?

Jeff

P.S. I didn't send the first email I wrote because I just ended up
gushing about how cool Ruby is. This one's not much better. Ah well.
 
J

Jacob Fugal

you.teach!:)Ruby, :to =3D> "mom") # or something like that.
# Refactorings, anybody?

francois =3D Ruby::Talker.find( :name =3D> 'Francois Paul' )

francois.siblings.map do |sibling|
java_classes =3D sibling.classrooms.find { |classroom|
classroom.subject =3D=3D Java }
java_classes.each { |classroom| classroom.delete( francois.mom ) }
end

ruby_class =3D Classroom.new(
:subject =3D> :Ruby,
:instructor =3D> francios
)

ruby_class.students << francois.mom
ruby_class.ring_bell!
 
J

Jacob Fugal

# Sorry, a couple of typos... fixed:

francois =3D Ruby::Talker.find( :name =3D> 'Francois Paul' )

francois.siblings.map do |sibling|
java_classes =3D sibling.classrooms.select do |classroom|
classroom.subject =3D=3D :Java
end
java_classes.each { |classroom| classroom.delete( francois.mom ) }
end

ruby_class =3D Classroom.new(
:subject =3D> :Ruby,
:instructor =3D> francios
)

ruby_class.students << francois.mom
ruby_class.ring_bell!
 
S

Scott Ellsworth

I am always amazed at Linux folk who try to teach newbies
how to program with vi/emacs and make

IMHO this is by far the better way to teach a new language.

Taking the text editor/make file approach will result in a
much better programmer, because it forces the student to
learn the language and nothing but the language.[/QUOTE]

Not really - it forces them to learn the language, the command line, and
the make/text editor functionality, instead of the language and the IDE.
With a teaching IDE like BlueJ, the IDE has relatively few strange
behaviors, and limited functionality, so they are most likely to be
learning the language.

Don't get me wrong - that command line information can be really
important. Just ask anyone who has deployed a webapp - you live and die
by knowing exactly how your system is configured. That said, it is a
set of skills, and it has to be weighed in relation to other skills they
might learn instead.

With something like IDEA, I can ask for all of the usages of a method.
Doing that in vi requires learning vi's search capabilities, and for
anything complicated, that means regexes. I would not want to teach a
newbie programmer regexes, unless they were learning Perl or Ruby where
they are a core language skill.
Using the IDE approach, too many details are hidden by the
IDE, so in essence all you are learning is the IDE.

Some details are worth hiding until the student is ready to learn them.
Eventually, those details matter, but not, IMO, until the student has
climbed the learning curve.

With a new language, you have a lot to learn. I want that learning
focussed on the language.

As an example, I would rather that a student who has made a syntax error
be shown the file and line they screwed up, than be given a line number
and file name. With the wrong code right in front of them, they can fix
it quickly, and move on.

Eventually, I would rather they not make such mistakes, but until the
syntax is familiar, showing mistakes right away helps.

Scott
 
J

James Edward Gray II

Not really - it forces them to learn the language, the command
line, and
the make/text editor functionality, instead of the language and the
IDE.
...

With something like IDEA, I can ask for all of the usages of a method.
...

As an example, I would rather that a student who has made a syntax
error
be shown the file and line they screwed up, than be given a line
number
and file name. With the wrong code right in front of them, they
can fix
it quickly, and move on.

irb seems a promising option here. Feedback is instantaneous in a,
"What if I say this?," style. irb can respond with, "Then I would say
this," or, "Error."

You don't need to learn external utilities here, though I realize you
lose out on some text editor/IDE niceties. Still, irb can support
tab completion, which may be enough at this stage.

Want to examine methods or a class hierarchy? Use Ruby's
reflection. That means you're learning even more Ruby, to help
yourself. The Pickaxe2 also gives an ri() method you can define in
your .irbrc.

I'm just thinking out loud here, but this seems to address most of
your concerns.
I would not want to teach a newbie programmer regexes, unless they
were learning Perl or Ruby where they are a core language skill.

I hear this complaint often and I can name good programmer that are
honestly scared of regular expressions. I think anyone who utters
such a thing should have to take James's Regexp in an Evening
course. ;)

I've taught my wife a little Perl scripting, to help her at work.
Part of that was a single evening of regular expressions.
Programming is hard for her, and she just generally doesn't seem
disposed to it; however, she picked up regular expression no problem
and even seems to like using them. I really just taught her the
basics and gave her a one page "cheat sheet," so I can't much tell
you my secret, but it sure seems to work. I do know she keeps the
cheat sheet by her monitor at work, so maybe that's part of it.

Anyway, I think you guys just had the wrong teacher for this one. ;)

James Edward Gray II
 
W

Warren Seltzer

Switching her when she's halfway through will only make it harder. Switch immediately or
much later.

Warren Seltzer


-----Original Message-----
From: Francois Paul [mailto:[email protected]]
Sent: Tuesday, October 11, 2005 10:20 AM
To: ruby-talk ML
Subject: my mother wants to code?
 
W

Warren Seltzer

Actually, the most important thing is at-the-elbow tech support. She should learn a
language that is known by others who live in the same house. If you're willing to pop
over to provide Ruby help, then fine, but consider that if you live outside of her house
it's also inconvenient for her to get answers.

Warren Seltzer
 
F

Francois Paul

To update on the situation:

I had a chat with everyone involved weighing Ruby and Java against each
other and it was decided to go with Ruby.
my mother and my dad are now going through Chris' tutorial.
They are both enjoying it very much - and my dad (coming from the VB for
applications world) is so impressed with how beautiful Ruby is.

They see learning ruby as something they can do together as a family
activity and everytime I pop around for a visit my mom first has to show
me her latest little program.

so ... we are steadily becoming a family of rubyists. (if only my little
sister and my wife would take interest, but franky i think that would
become scary (besides hell would have to freeze over first))

I think my parents are happier people (or at least they have more fun)
today because of Ruby.
She'll probably join the list in a couple of months, when she gets a
solid internet connection at home, and i'll introduce her then.

thanks for all the input.

-Francois
 
C

Christophe Grandsire

Selon Francois Paul said:
To update on the situation:

I had a chat with everyone involved weighing Ruby and Java against each
other and it was decided to go with Ruby.

That's really nice!
my mother and my dad are now going through Chris' tutorial.
They are both enjoying it very much - and my dad (coming from the VB fo= r
applications world) is so impressed with how beautiful Ruby is.

They see learning ruby as something they can do together as a family
activity and everytime I pop around for a visit my mom first has to sho= w
me her latest little program.

It seems to be one of the constants of Ruby: it gives you instant fun and
productivity.
so ... we are steadily becoming a family of rubyists. (if only my littl= e
sister and my wife would take interest, but franky i think that would
become scary (besides hell would have to freeze over first))

hell.freeze if !hell.frozen?

OK, let's start now! :)
I think my parents are happier people (or at least they have more fun)
today because of Ruby.
She'll probably join the list in a couple of months, when she gets a
solid internet connection at home, and i'll introduce her then.

I think this could be worth of an article, maybe about your family discus=
sion
and with which arguments Ruby won over Java. Is your mother (or maybe you=
r
father) keeping a diary of her progress? That could also eventually be an
interesting read.

Anyway, keep us posted about their progress!
--
Christophe Grandsire.

http://rainbow.conlang.free.fr

It takes a straight mind to create a twisted conlang.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,184
Messages
2,570,978
Members
47,561
Latest member
gjsign

Latest Threads

Top