ANN: Teach yourself Ruby - the hard way!

Discussion in 'Ruby' started by Martin DeMello, Feb 23, 2008.

  1. 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
     
    Martin DeMello, Feb 23, 2008
    #1
    1. Advertising

  2. On Sat, Feb 23, 2008 at 6:44 PM, Martin DeMello <> wrote:
    > 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
     
    Michael Fellinger, Feb 23, 2008
    #2
    1. Advertising

  3. On Sat, Feb 23, 2008 at 1:56 AM, Michael Fellinger
    <> wrote:

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

    >
    > 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
     
    Martin DeMello, Feb 23, 2008
    #3
  4. Nice work, Martin ;)
     
    Vitillo Roberto, Feb 23, 2008
    #4
  5. Martin DeMello

    Robert Dober Guest

    On Sat, Feb 23, 2008 at 10:44 AM, Martin DeMello
    <> wrote:
    > 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

    --
    http://ruby-smalltalk.blogspot.com/

    ---
    Whereof one cannot speak, thereof one must be silent.
    Ludwig Wittgenstein
     
    Robert Dober, Feb 23, 2008
    #5
  6. Martin DeMello

    Steve Guest

    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
     
    Steve, Feb 23, 2008
    #6
  7. On Sat, Feb 23, 2008 at 3:44 AM, Robert Dober <> wrote:
    >
    > 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
     
    Martin DeMello, Feb 23, 2008
    #7
  8. Robert Dober wrote:
    > On Sat, Feb 23, 2008 at 10:44 AM, Martin DeMello
    > <> wrote:
    >> 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
    >


    $ 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.

    --
    vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407
     
    Joel VanderWerf, Feb 23, 2008
    #8
  9. Martin DeMello

    Robert Dober Guest

    On Sat, Feb 23, 2008 at 9:59 PM, Martin DeMello <> wrote:
    > On Sat, Feb 23, 2008 at 3:44 AM, Robert Dober <> wrote:
    > >
    > > 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
    >
    >

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



    --
    http://ruby-smalltalk.blogspot.com/

    ---
    Whereof one cannot speak, thereof one must be silent.
    Ludwig Wittgenstein
     
    Robert Dober, Feb 24, 2008
    #9
  10. Martin DeMello

    Robert Dober Guest

    On Sat, Feb 23, 2008 at 10:24 PM, Joel VanderWerf
    <> wrote:
    >
    > Robert Dober wrote:
    > > On Sat, Feb 23, 2008 at 10:44 AM, Martin DeMello
    > > <> wrote:
    > >> 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
    > >

    >
    > $ 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.
    >
    > --
    > vjoel : Joel VanderWerf : path berkeley edu : 510 665 3407
    >
    >

    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


    --
    http://ruby-smalltalk.blogspot.com/

    ---
    Whereof one cannot speak, thereof one must be silent.
    Ludwig Wittgenstein
     
    Robert Dober, Feb 24, 2008
    #10
  11. Martin DeMello

    Chad Perrin Guest

    On Sun, Feb 24, 2008 at 05:59:46AM +0900, Martin DeMello wrote:
    > On Sat, Feb 23, 2008 at 3:44 AM, Robert Dober <> wrote:
    > >
    > > 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.


    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.

    --
    CCD CopyWrite Chad Perrin [ http://ccd.apotheon.org ]
    W. Somerset Maugham: "The ability to quote is a serviceable substitute for
    wit."
     
    Chad Perrin, Feb 27, 2008
    #11
  12. On Tue, Feb 26, 2008 at 9:38 PM, Chad Perrin <> wrote:
    >
    > 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
     
    Martin DeMello, Feb 27, 2008
    #12
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Bill Tomlin
    Replies:
    0
    Views:
    431
    Bill Tomlin
    Jan 31, 2004
  2. Nick
    Replies:
    4
    Views:
    1,875
  3. Jacob Oost

    Finished a "teach yourself" book, what next?

    Jacob Oost, Jan 30, 2005, in forum: C Programming
    Replies:
    33
    Views:
    980
    Mabden
    Feb 16, 2005
  4. Amitanshu Gour
    Replies:
    9
    Views:
    123
    Robert Dober
    Aug 18, 2008
  5. Space Ship Traveller

    Why teach Ruby in the classroom?

    Space Ship Traveller, Mar 15, 2010, in forum: Ruby
    Replies:
    10
    Views:
    193
    Space Ship Traveller
    Mar 29, 2010
Loading...

Share This Page