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.
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 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.
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
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?
Getting Started
It seems I am always doing this with learning to program
Numbers
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.
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
Mixing It Up
Not sure what they mean here…
More about Methods
This is probably where I get hung up the most with classes, methods,
instances, instantiation, encapsulation,etc
Flow Control
IF, ELSE, THEN, WHILE, etc. I understand the concepts, but will have
to learn The Ruby Way to make them work.
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?
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.
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.
New Classes of Objects
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.
Blocks and Procs
One word… huh?
~ 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
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.
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/
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?
Getting Started
Numbers
Letters
Variables and Assignment
Mixing It Up
More about Methods
Flow Control
Arrays and Iterators
Writing Your Own Methods
There’s Nothing New to Learn in Chapter 10
11 Reading and Writing, Saving and Loading, Yin and…
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?
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:
(The final version has corrections and improvements. If you can afford
it, I recommend it.)
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/
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:
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:
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:
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 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.
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.
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