

Ask YC: Going to RailsConf 2008. How do I learn RoR by then? - wallflower

Portland is one of my dream cities to live in (outdoors emphasis, small, good demographics, great farmer's market, nightlife sounds reasonable - small Salsa scene). Yeah it is overcast/raining all the time but...<p>When I heard about RailsConf, I thought it was a  nice coincidence that it is held in Portland. I still really want to move there.<p>I've registered for RailsConf 2008 which is just over 3 months away. I don't know any Ruby on Rails. I want to learn enough RoR to get a working understanding for the conference. Ideally, I'd like to get the point eventually where I could see myself doing sites like twittervision.com in a weekend (David Troy did that in 4 hours?!)<p>How would you recommend going about learning Ruby on Rails (from scratch). In about 3 months.<p>My plan is to hack Ruby/RoR projects on my 1-hr train commute with an Asus EEE or equivalent. My colleague just lended me the "Agile Web Development with Rails" book. I bought "The Rails Way" but lended that to the same co-worker because that's way beyond. I hope to learn enough/dive in to be able to  My background is Java. Did some Flex/AS3 for a project recently. I never excelled at Perl-type languages honestly.
======
pchristensen
You should definitely become competent in 3 months (not great, but definitely
competent).

AWDwR is good. Even before that, go through the Rolling with Rails tutorials
([http://www.onlamp.com/pub/a/onlamp/2006/12/14/revisiting-
rub...](http://www.onlamp.com/pub/a/onlamp/2006/12/14/revisiting-ruby-on-
rails-revisited.html)) and watch the screencasts
(<http://www.rubyonrails.org/screencasts>). That will give you a good ground
before you start hacking.

Then, like you said, start hacking! An hour each way X 20 work days/month X 3
months = 120 hours, not counting time at home. You've got time, but if you're
serious, don't let a day pass without working on it!

~~~
raju
I agree. One rule of thumb I try and follow when trying to learn something new
is to promise myself to spend atleast 10 min working on it everyday. Which
normally leads to about 20 min to shift your mindset, and invariably you end
up spending more than just 10 min :D

One way to approach this is just start by building something really simple. A
to-do list (yes, I know there are millions of them out there) is a good app
because you can make it as simple or as complicated as you want. Its an idea
that can scale.

Another thing to do is to watch some of the screen-casts as pchristensen
correctly points out. RailsEnvy has some good ones to, and if you feel like
spending the money, PeepCode has some good ones.

One way I learn is just to hammer myself with information. Read as much as you
can while not coding. Most will not make sense at that time (but when it comes
to learning anything, isnt that true early in the game anyways?) but every now
and then you will be like "Oh yeah! I just saw something about that last
week!" and it all comes together.

[Quick Update: I see that you did not mention that you know Ruby. I would
spend a little time looking up Ruby too, because IMO, Ruby is far more than
Rails, and regardless of whether you end up using Rails, your Ruby knowledge
will help you better understand Rails, or any of the other frameworks out
there like Merb or Hobo]

~~~
wallflower
Thanks. I like your suggestions to read and eventually hopefully grok it. I
think it's interesting how nervous/unconfident I am to actually start learning
Ruby and Ruby on Rails (Pragmatic Programmer advice to learn a new language
every year aside).

And about doing something daily - it's a nice benefit that a job lets us get
paid while maintaining/expanding our knowledge of the programming language we
primarily use for that job.

I'll build my first to-do list (after this weekend - prepping for my first
party on Saturday - was too scared to do it alone, so asked a friend to co-
host, overinvited, she overinvited, 41 people have RSVP'd yes?!)

It's all about getting started and doing something daily so you don't regress.
There is no such thing as failure only feedback, I've heard. It's true.

------
nkohari
The best way to learn any toolkit is to build something using it. That's
particularly true in the case of RoR, since it's very geared towards fast
prototyping.

If you don't know Ruby, get the pickaxe book. I'd also recommend Agile Web
Development with Rails:

[http://www.amazon.com/Programming-Ruby-Pragmatic-
Programmers...](http://www.amazon.com/Programming-Ruby-Pragmatic-Programmers-
Second/dp/0974514055/ref=pd_bxgy_b_text_b) [http://www.amazon.com/Agile-Web-
Development-Rails-2nd/dp/097...](http://www.amazon.com/Agile-Web-Development-
Rails-2nd/dp/0977616630/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1202410708&sr=8-1)

Also check out PeepCode; it gets rave reviews:

<http://peepcode.com/>

------
mwmanning
Here's what worked for me:

1) Do the grunt work: Make sure you have a basic understanding of Ruby syntax,
especially how Hashes and method arguments work. The code in most Rails books,
and even the code generated by Rails itself uses lots of syntactical shortcuts
(ex. not putting () around method arguments, not putting {} around hashes).
This can be really confusing since the majority of Rails methods take in at
least one Hash as an argument. It's critical that you understand what your
data structures are and what's being passed.

2) Dive in: Find a simple project to do. Make it something close to the Depot
application (or whatever the example app is in the newest version of AWDwR),
but not exactly the same.

3) Documentation: I heavily use the Ruby core documentation (<http://ruby-
doc.org/core/>) and the Rails api (<http://api.rubyonrails.org/>). These are
absolutely critical when you're debugging and you need to know what's going on
behind the curtain.

If you're going to be working on a train without an Internet connection, I
would strongly suggest that you get yourself a local copy of the Rails api by
running the command "rake doc:rails" and that you get really friendly with the
"ri" command which gives you Ruby documentation.

4) Tinker, tinker, tinker. Look at other people's code. Install plugins and
try to understand how they work. Constantly tweak your app to do something new
or improve something it already does.

------
pg
One ingredient is coming sometime today, I believe.

~~~
wallflower
What goes with Heroku? Red or white.. Cloud or localhost. Interesting. This
might make Ruby more palatable

Edit: Heroku already responded! The Ruby environment looks great. Time to
watch some screencasts. Kind of like cooking watching a Cooking show. This
means I can bring my ancient supermodel-skinny Sharp laptop (P-233MMX) to a
coffee shop and hack Ruby code!

------
hollywoodcole
You will be fine by that time. RailsConf 2008 will have many workshops to goto
and learn from. For now, books are good but screencast are better. Try
railscasts.com & peepcode.com.

"I'd like to get the point eventually where I could see myself doing sites
like twittervision.com in a weekend"

Once you figure it out, please let me know! :)

------
paulgb
Spend an hour or so learning Ruby, then dive into Rails by creating something
like a to-do list. Since you're already competent in Java, you should have no
problem learning Rails in three months.

------
pius
[http://toohardtopronounce.com/2008/2/7/the-three-must-
have-r...](http://toohardtopronounce.com/2008/2/7/the-three-must-have-rails-
books-for-beginners)

------
kirubakaran
While you are in Portland, don't miss Barracuda
<http://www.google.com/search?q=barracuda+portland>

------
inklesspen
Get The Rails Way back. it's a far better book than Agile Web Development with
Rails. Also, get a good Ruby book like "Ruby For Rails" from Manning.

~~~
cawel
I'll have to agree with that one. I preferred "The Rails Way" to Agile Web
Development, because it focuses on Rails' internals. You shouldn't start with
that book though. Tutorials, screencasts and a bit of hacking first I'd say.

------
altano
You should go to Caboose Conf: <http://rubyjudo.com/2008/2/1/cabooseconf>

------
wammin
Read a book. Then, build something.

~~~
cyberhill
I got RailsSpace from Amazon, steps you through making a social network and
teaches you heaps along the way. The final product in the book isn't anything
special but that's where YOU come in.

