ANN: Teach yourself Ruby - the hard way!

M

Martin DeMello

A frequent question from Ruby newcomers is "Okay, I've read the
tutorials - now what?". To that end, I'm putting together a series of
tutorials, each of which leads the student step by step through the
construction of a complete ruby program. There are no answers and no
explanations provided - rather, each question is followed by a hint
containing relevant topics to be looked up in the Pickaxe, on Google,
etc.

The entry-level program is an arithmetic tutor; the reader is assumed
to have worked their way through Chris Pine's tutorial, and have a
copy of the docs handy. (Later programs will assume that the reader
has done the previous ones). Here's the first, tentative draft -
comments and suggestions welcomed.

http://zem.novylen.net/ruby/tutorial/arithmetic-quiz/arith.html

martin
 
M

Michael Fellinger

A frequent question from Ruby newcomers is "Okay, I've read the
tutorials - now what?". To that end, I'm putting together a series of
tutorials, each of which leads the student step by step through the
construction of a complete ruby program. There are no answers and no
explanations provided - rather, each question is followed by a hint
containing relevant topics to be looked up in the Pickaxe, on Google,
etc.

The entry-level program is an arithmetic tutor; the reader is assumed
to have worked their way through Chris Pine's tutorial, and have a
copy of the docs handy. (Later programs will assume that the reader
has done the previous ones). Here's the first, tentative draft -
comments and suggestions welcomed.

http://zem.novylen.net/ruby/tutorial/arithmetic-quiz/arith.html

Good work, but may i point out that 'if' is no method?

^ manveru
 
M

Martin DeMello

Good work, but may i point out that 'if' is no method?

Yeah, right now I'm using # as a placeholder for a css class that will
cover both methods and keywords - basically, things to look up
directly in the documentation/pickaxe index, rather than more general
concepts to google for.

martin
 
R

Robert Dober

A frequent question from Ruby newcomers is "Okay, I've read the
tutorials - now what?". To that end, I'm putting together a series of
tutorials, each of which leads the student step by step through the
construction of a complete ruby program. There are no answers and no
explanations provided - rather, each question is followed by a hint
containing relevant topics to be looked up in the Pickaxe, on Google,
etc.

The entry-level program is an arithmetic tutor; the reader is assumed
to have worked their way through Chris Pine's tutorial, and have a
copy of the docs handy. (Later programs will assume that the reader
has done the previous ones). Here's the first, tentative draft -
comments and suggestions welcomed.

http://zem.novylen.net/ruby/tutorial/arithmetic-quiz/arith.html

martin

Nice work Martin, I suggest however that you do a
gsub("function","method") on your text, there are just no functions in
Ruby.
What do you think?
Cheers
Robert
 
S

Steve

Thanks for putting in the time and effort for that Martin.
I am very much a new to Ruby and found that Chris uses version 1.8.2
version of Ruby which has given me a few problems as the instructions
in Chris`s book don`t correspond to the latest (186.25?) version I
have and it seems 1.8.2 is not now available. Guys on the forum have
been very helpful with their suggestions but I was a bit concerned at
failing at the very first prog I started ;-(.
I shall persevere. I`ll have to do now I`ve just enrolled on the
online Ruby course run by Satish.
Cheers
Steve
 
M

Martin DeMello

Nice work Martin, I suggest however that you do a
gsub("function","method") on your text, there are just no functions in
Ruby.
What do you think?

I did think about that, and deliberately decided to go with
'function', since from a newbie perspective toplevel methods *are*
functions.

Pros: Clear, conceptually simple to understand, a useful and
for-the-moment accurate model of what's happening
Cons: Technically incorrect, but to explain the difference would delve
into ruby's object model a bit too soon.

martin
 
J

Joel VanderWerf

Robert said:
Nice work Martin, I suggest however that you do a
gsub("function","method") on your text, there are just no functions in
Ruby.
What do you think?
Cheers
Robert

$ grep function *.h
ruby.h:void rb_define_module_function _((VALUE,const
char*,VALUE(*)(ANYARGS),int));
ruby.h:void rb_define_global_function _((const
char*,VALUE(*)(ANYARGS),int));

It looks like the functions in the tutorial are the global kind.

Dunno if that term is deprecated and used only for historical reasons,
though.
 
R

Robert Dober

I did think about that, and deliberately decided to go with
'function', since from a newbie perspective toplevel methods *are*
functions.

Pros: Clear, conceptually simple to understand, a useful and
for-the-moment accurate model of what's happening
Cons: Technically incorrect, but to explain the difference would delve
into ruby's object model a bit too soon.

martin
Ok I see, I thought it was more an oversight, sorry for wasting your time
R.
 
R

Robert Dober

$ grep function *.h
ruby.h:void rb_define_module_function _((VALUE,const
char*,VALUE(*)(ANYARGS),int));
ruby.h:void rb_define_global_function _((const
char*,VALUE(*)(ANYARGS),int));

It looks like the functions in the tutorial are the global kind.

Dunno if that term is deprecated and used only for historical reasons,
though.
Worse there is even module_function, I hate it. But I think that the
community uses method almost exclusively.
Strange that I never complained about #module_function, it made it
even into 1.9 brrrr.

Cheers
Robert
 
C

Chad Perrin

I did think about that, and deliberately decided to go with
'function', since from a newbie perspective toplevel methods *are*
functions.

Pros: Clear, conceptually simple to understand, a useful and
for-the-moment accurate model of what's happening
Cons: Technically incorrect, but to explain the difference would delve
into ruby's object model a bit too soon.

There's a middle road: Mention briefly that they're called "methods",
even if they fill the same role as "functions" in many other languages,
and leave it at that.
 
M

Martin DeMello

There's a middle road: Mention briefly that they're called "methods",
even if they fill the same role as "functions" in many other languages,
and leave it at that.

Good point. I'll make the change.

martin
 

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
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top