New to Ruby and Programming

Discussion in 'Ruby' started by Will Shattuck, Jan 2, 2006.

  1. Hi folks. Happy New Year!

    I have lurked for a little bit to see what this list is like. I am
    please to see how helpful people are. I have a couple of questions
    for someone starting out with Ruby and Programming in general.

    Some background... I have some fundamental understanding of
    programming, but I have more holes in my foundation than not. I work
    with some friends on a C# project, I learned some basics of Java so I
    kind of understand OOP. But I still do not grasp a lot.

    My question: Where should I start in learning to use Ruby? I have
    some ideas, but I do not want to prejudice the discussion with my
    ideas.

    Also, I have a project in mind to use Ruby... A Nethack bot. A friend
    programmed one in C# and I thought it would be fun to try and use
    Ruby. I know I have a long way to go but it would be fun for me.

    Anyway, thanks for any advice and help you can offer in this new adventure.

    Will
     
    Will Shattuck, Jan 2, 2006
    #1
    1. Advertisements

  2. Chris Pine's "Learn to Program" is available now from Pragmatic
    Programmers. I'd start there.
     
    M. Edward (Ed) Borasky, Jan 2, 2006
    #2
    1. Advertisements

  3. Can you list and describe the programs you've developed in the past?
    Were they school related or side projects for fun or for profit?

    ~ ryan ~
     
    J. Ryan Sobol, Jan 2, 2006
    #3
  4. Well... that's just it. I haven't developed anything really. I have
    done some web programming with PHP, but that has usually consisted of
    modifying someone else's work. So basically nothing :( That's why I
    wanted to start with Ruby. I noticed that I can cut out many lines of
    code by using Ruby so I figured it would be a good start.

    Will
     
    Will Shattuck, Jan 2, 2006
    #4
  5. Sounds like your at the cusp of a new and exciting thing, so I want
    to give you the best advice I can.

    Here's the table of contents from the book "Learning To Program" that
    Ed Borasky suggested in a previous post. (http://
    www.pragmaticprogrammer.com/titles/fr_ltp/) Just by glancing at the
    chapter titles, which of them seem new, familiar, and old news to you
    in terms of your past programming experience?

    1. Getting Started
    2. Numbers
    3. Letters
    4. Variables and Assignment
    5. Mixing It Up
    6. More about Methods
    7. Flow Control
    8. Arrays and Iterators
    9. Writing Your Own Methods
    10. There's Nothing New to Learn in Chapter 10
    11 Reading and Writing, Saving and Loading, Yin and...
    12. New Classes of Objects
    13. Creating New Classes, Changing Existing Ones
    14. Blocks and Procs

    ~ ryan ~
     
    J. Ryan Sobol, Jan 2, 2006
    #5
  6. Yep, I am about as crispy... er... cuspy as they come right now :)
    It seems I am always doing this with learning to program
    a..b..c..d..e..f..g.. yep I know my numbers and letters, but I am sure
    I don't know what they mean in the Ruby Context.
    Creating and assigning values to variables I understand. I have done
    it in my C# scripting for the mud engine I am helping to create. foo
    =3D bar; etc etc ... Then I know how to test for (in)equality... foo =3D=
    =3D
    bar, foo !=3D bar, foo < bar, etc etc
    Not sure what they mean here...
    This is probably where I get hung up the most with classes, methods,
    instances, instantiation, encapsulation,etc
    IF, ELSE, THEN, WHILE, etc. I understand the concepts, but will have
    to learn The Ruby Way to make them work.
    I touched on arrays in the "Head Start Java" book I was learning from,
    but never got very far. Iterators are like " foo =3D foo +1" or " foo
    +=3D foo " right?
    Methods that are inside classes? Again another place I have a very
    basic concept of, but haven't done much with.
    File operations.. I did very little of it. I wanted to write a file
    parser in PHP for game group for editing files, but didn't understand
    the functions very much. I understand the concepts, but not the
    application.
    Well I have learned to modify templates, variables, etc in previous
    applications, but haven't created any new classes or objects on my
    own.
    One word... huh? ;)
    Thanks for taking the time, Ryan, in helping me. I really appreciate
    all the suggestions.

    I'm looking at an older version of "Learn to Program" by Chris Pine
    that I find in the links that James Britt sent. But I'm starting to
    fall asleep now so I probably won't go very far right yet. heh

    Will
     
    Will Shattuck, Jan 2, 2006
    #6
  7. Will Shattuck

    Scott Smith Guest

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1

    Nah, iterating is where you step through the elements of an array. Your
    examples are simply assignments--giving a value to a variable (think
    basic algebra).

    Methods are basically chunks of code split up so they can be reused in
    other places. Also good for code maintenance--instead of having one huge
    chunk of code, it is broken into smaller bits.

    Do you actually have a need to write anything, or is it more of a "Hey
    I'd like to learn this, it sounds interesting" thing? It sounds like
    most of your prior forays into programming have been the latter. I find
    that I learn (and more specifically RETAIN) much much better when I have
    a direct need. I can't just grab a book and learn an arbitrary language
    just for the hell of it. Something will eventually come up a few days
    into it or whatever and I won't have a specific need to keep focused on it.

    Scott

    - --

    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.2 (MingW32)

    iD8DBQFDuNZQKBeC2yZ3EEsRAkWVAKCGm//cJaKzp1mZ/B/mSpK2ybtt/ACghue4
    erRZIJPmDqCnF5uDQmPYjlA=
    =tlVU
    -----END PGP SIGNATURE-----
     
    Scott Smith, Jan 2, 2006
    #7
  8. Seems like this book is a good match for you. And the price is right
    too: $20 for a paper back, $13 for the PDF version, or $25 for both.

    Also, the "Pickaxe" book is pretty much the standard for learning
    Ruby. I'm not sure if its at the appropriate level for you, but the
    first edition is freely available online. http://www.rubycentral.com/
    book/

    ~ ryan ~
     
    J. Ryan Sobol, Jan 2, 2006
    #8
  9. Others have already given very good answers on how to learn Ruby.. but
    if you want to learn the fundamentals of programming as a concept
    (rather than any specific implementation of that..), I don't think
    there's anything better than:
    http://www.htdp.org/
    ..and
    http://www2.info.ucl.ac.be/people/PVR/book.html
    In theory the second book is only available in hardcover.. but the
    Internet Archive still has the old free PDF version, from before it
    went to press:
    http://web.archive.org/web/20040202004840/http://www.info.ucl.ac.be/people/=
    PVR/booksingle.pdf

    (The final version has corrections and improvements. If you can afford
    it, I recommend it.)
     
    Wilson Bilkovich, Jan 2, 2006
    #9
  10. Will Shattuck

    James Britt Guest

    <snip/>

    Question: Is this teaching just the Ruby syntax for assorted constructs,
    or does it also include algorithm analysis and selection,
    speed/memory/resource considerations, application composition and
    design, and other programming concepts?

    Put another way, what does "program" mean in the book title, and is it
    what Will means/expects when learning to program?



    James
    --

    http://www.ruby-doc.org - Ruby Help & Documentation
    http://www.artima.com/rubycs/ - Ruby Code & Style: Writers wanted
    http://www.rubystuff.com - The Ruby Store for Ruby Stuff
    http://www.jamesbritt.com - Playing with Better Toys
    http://www.30secondrule.com - Building Better Tools
     
    James Britt, Jan 2, 2006
    #10
  11. Seconded - this is an amazingly good book.
    This one's excellent too, but pretty heavy going. I wouldn't recommend
    it as a teach-yourself-programming book.

    martin
     
    Martin DeMello, Jan 2, 2006
    #11
  12. At least you'll know if you're serious about it, after the first few
    chapters. :)
     
    Wilson Bilkovich, Jan 2, 2006
    #12
  13. Will Shattuck

    Chad Perrin Guest

    To elaborate, I tend to suspect that the arrays and iterators chapter
    discusses things like the each method -- that's what is meant by
    "iterators" here. In particular, you could have an array called myarray
    (for example) and iterate over its contents using the each method to
    perform the same action on each element of the array:

    myarray.each do { |foo| puts foo }
     
    Chad Perrin, Jan 2, 2006
    #13
  14. --4Ckj6UjgE2iN1+kY
    Content-Type: text/plain; charset=iso-8859-1
    Content-Disposition: inline
    Content-Transfer-Encoding: quoted-printable

    Hi,

    I think nobody else has actually said it, so: try TryRuby
    (http://tryruby.hobix.com/) :)

    It's very cool and shows basic Ruby in an interactive, fun fashion.

    --=20
    Esteban Manchado Vel=E1zquez <> - http://www.foton.es
    EuropeSwPatentFree - http://EuropeSwPatentFree.hispalinux.es

    --4Ckj6UjgE2iN1+kY
    Content-Type: application/pgp-signature; name="signature.asc"
    Content-Description: Digital signature
    Content-Disposition: inline

    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.2 (GNU/Linux)

    iD8DBQFDuSqlhYgK5b1UDsERAu8AAJ94VI1Uwa6BRmT05uZqGF8wJSLxRgCfZh62
    uatq9I4utWEWVDGhxX9Tri8=
    =5VDL
    -----END PGP SIGNATURE-----

    --4Ckj6UjgE2iN1+kY--
     
    Esteban Manchado Velázquez, Jan 2, 2006
    #14
  15. Only we would never write that since the following does the same thing:

    puts myarray

    James Edward Gray II
     
    James Edward Gray II, Jan 2, 2006
    #15
  16. Will Shattuck

    Steve Litt Guest

    I concur. The table of contents seems to list the skills you need in the order
    you need them. Looks like a good book, and from the sample chapter I read,
    well written.

    One more thing. Whenever I need to learn a new technology, here's the learning
    method I use:

    http://www.troubleshooters.com/bookstore/rl.htm#flowchart

    SteveT
     
    Steve Litt, Jan 2, 2006
    #16
  17. Will Shattuck

    Chad Perrin Guest

    Well . . . true.

    This is why I don't teach programming.
     
    Chad Perrin, Jan 2, 2006
    #17
  18. --dTy3Mrz/UPE2dbVg
    Content-Type: text/plain; charset=us-ascii
    Content-Disposition: inline
    Content-Transfer-Encoding: quoted-printable

    code little projects which fits your needs, thats imho the only way to
    advance in programming (or in a specific lang).
    code it.

    loop do
    if your are ready, look at your code, look at your expierience and code it
    again if you dont like it .
    end

    So long
    --
    Michael 'entropie' Trommer; http://ackro.org

    ruby -e "0.upto((a=3D'njduspAhnbjm/dpn').size-1){|x| a[x]-=3D1}; p 'mailto:=
    '+a"

    --dTy3Mrz/UPE2dbVg
    Content-Type: application/pgp-signature
    Content-Disposition: inline

    -----BEGIN PGP SIGNATURE-----
    Version: GnuPG v1.4.2 (GNU/Linux)

    iD8DBQFDuYcvBBd8ye5RguQRAkHNAJ0WfxSGkjH4Bg/dHAaCJlZEq8iEWQCff1fP
    0AFj6A2Ne7YYlu3lDHtJbrc=
    =zmzw
    -----END PGP SIGNATURE-----

    --dTy3Mrz/UPE2dbVg--
     
    Michael 'entropie' Trommer, Jan 2, 2006
    #18
  19. Will Shattuck

    Hal Fulton Guest

    Actually, I think there's a difference in behavior
    if you try them both.


    Hal
     
    Hal Fulton, Jan 2, 2006
    #19
  20. Other than the return value?
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    => nil

    James Edward Gray II
     
    James Edward Gray II, Jan 2, 2006
    #20
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.