New to Ruby and Programming


#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 S. ( willshattuck.at.gmail.com )
Home Page: http://www.thewholeclan.com/will

When you get to your wit’s end, you’ll find God lives there.


#2

Chris P.'s “Learn to Program” is available now from Pragmatic
Programmers. I’d start there.

Will S. wrote:

Will


M. Edward (Ed) Borasky

http://linuxcapacityplanning.com


#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 ~


#4

On 1/1/06, J. Ryan S. removed_email_address@domain.invalid wrote:

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 ~

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 :frowning: 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


#5

Will S. wrote:

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.

Try here:

http://ruby-doc.org/gettingstarted/

Many resources to get you going. And browse around ruby-doc.org in
general.

James B.

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


#6

On 1/1/06, J. Ryan S. removed_email_address@domain.invalid wrote:

Sounds like your at the cusp of a new and exciting thing, so I want
to give you the best advice I can.

Yep, I am about as crispy… er… cuspy as they come right now :slight_smile:

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
    It seems I am always doing this with learning to program
  1. Numbers
  2. Letters
    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.
  1. Variables and Assignment
    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
    = bar; etc etc … Then I know how to test for (in)equality… foo ==
    bar, foo != bar, foo < bar, etc etc
  1. Mixing It Up
    Not sure what they mean here…
  1. More about Methods
    This is probably where I get hung up the most with classes, methods,
    instances, instantiation, encapsulation,etc
  1. Flow Control
    IF, ELSE, THEN, WHILE, etc. I understand the concepts, but will have
    to learn The Ruby Way to make them work.
  1. Arrays and Iterators
    I touched on arrays in the “Head Start Java” book I was learning from,
    but never got very far. Iterators are like " foo = foo +1" or " foo
    += foo " right?
  1. Writing Your Own Methods
    Methods that are inside classes? Again another place I have a very
    basic concept of, but haven’t done much with.
  1. There’s Nothing New to Learn in Chapter 10
    11 Reading and Writing, Saving and Loading, Yin and…
    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.
  1. New Classes of Objects
  2. Creating New Classes, Changing Existing Ones
    Well I have learned to modify templates, variables, etc in previous
    applications, but haven’t created any new classes or objects on my
    own.
  1. Blocks and Procs
    One word… huh? :wink:

~ ryan ~

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 P.
that I find in the links that James B. sent. But I’m starting to
fall asleep now so I probably won’t go very far right yet. heh

Will


#7

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

Will S. wrote:

basic concept of, but haven’t done much with.


removed_email_address@domain.invalid
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (MingW32)

iD8DBQFDuNZQKBeC2yZ3EEsRAkWVAKCGm//cJaKzp1mZ/B/mSpK2ybtt/ACghue4
erRZIJPmDqCnF5uDQmPYjlA=
=tlVU
-----END PGP SIGNATURE-----


#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 ~


#9

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…
  11. New Classes of Objects
  12. Creating New Classes, Changing Existing Ones
  13. Blocks and Procs

~ ryan ~


#10

J. Ryan S. wrote:

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?

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


#11

On 1/2/06, Will S. removed_email_address@domain.invalid wrote:

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.

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


#12

Wilson B. removed_email_address@domain.invalid wrote:

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/

Seconded - this is an amazingly good book.

http://www2.info.ucl.ac.be/people/PVR/book.html

This one’s excellent too, but pretty heavy going. I wouldn’t recommend
it as a teach-yourself-programming book.

martin


#13

On 1/2/06, Martin DeMello removed_email_address@domain.invalid wrote:

http://www2.info.ucl.ac.be/people/PVR/book.html

This one’s excellent too, but pretty heavy going. I wouldn’t recommend
it as a teach-yourself-programming book.

At least you’ll know if you’re serious about it, after the first few
chapters. :slight_smile:


#14

On Mon, Jan 02, 2006 at 04:29:14PM +0900, Scott Smith wrote:

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

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 P. [ CCD CopyWrite | http://ccd.apotheon.org ]

This sig for rent: a Signify v1.14 production from
http://www.debian.org/


#15

Hi,

On Mon, Jan 02, 2006 at 02:24:48PM +0900, Will S. wrote:

[…]
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.

I think nobody else has actually said it, so: try TryRuby

(http://tryruby.hobix.com/) :slight_smile:

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

#16

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


#17

On Jan 2, 2006, at 2:29 AM, Chad P. wrote:

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 }

Only we would never write that since the following does the same thing:

puts myarray

James Edward G. II


#18

Man y’all are amazing. I’ll put my replies to everyone here.

Specific Project or Just Learning:

I think it’s a little of both. I always wanted to program from back
in the Apple Basic days. I just was always better with the
hardware/software troubleshooting stuff. In my day job I am a Lead
Help Desk Technician. At work I became good friends with the
programmers there and, since our network/server/sql admin left, I have
had to start learning MS SQL maintenance and some basic DBA Stuff.

As for a Project I want to create a Nethack bot. Like I said in my
intro a friend created a Nethack bot in C# and I wanted to see if I
could do it in Ruby. I have read a lot about Ruby in the last few
months, including Ruby on Rails, but I just do not know enough about
Ruby to do anything with it. I also have in mind to build a Wish List
web application for my family so we can know what everyone would like
for Christmas or for other occasions.

Iteration:

Thanks for reminding what Iteration is. As soon as you said it I
went, DUH!, heh. Arrays and Iteration is where I stopped in the “Head
Start Java” book. I think I stopped at a combination of frustration
and Real Life took over.

Books:

All the high recommendations on books and websites are great. I will
begin to check them out. I have a birthday coming up so I may be able
to give some suggestions for my family when they want to buy me a
present :slight_smile: heh. But I’m old enough (married with a daughter) that I
can buy them myself too chuckle

Rapid Learning Flowchart:

Wow this is cool. I think I do some of this on my own already. Not
as refined though. :slight_smile:

I’ll keep you all up-to-date with my progress. I’m sure you will get
more questions from me.

Thanks again for all the great informatoin and help.

WIll

On 1/2/06, Steve L. removed_email_address@domain.invalid wrote:

  1. Getting Started
  2. New Classes of Objects

~ ryan ~


Will S. ( willshattuck.at.gmail.com )
Home Page: http://www.thewholeclan.com/will

When you get to your wit’s end, you’ll find God lives there.


#19
  • Will S. (removed_email_address@domain.invalid) wrote:

Hi folks. Happy New Year!

peace,

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.

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

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.

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=‘njduspAhnbjm/dpn’).size-1){|x| a[x]-=1}; p
‘mailto:’+a”


#20

On Tue, Jan 03, 2006 at 12:03:03AM +0900, James Edward G. II wrote:

puts myarray
Well . . . true.

This is why I don’t teach programming.


Chad P. [ CCD CopyWrite | http://ccd.apotheon.org ]

“A script is what you give the actors. A program
is what you give the audience.” - Larry Wall