Ask YC: Going to RailsConf 2008. How do I learn RoR by then?
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.
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?!)
How would you recommend going about learning Ruby on Rails (from scratch). In about 3 months.
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.
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...) 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!
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]
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.
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/Agile-Web-Development-Rails-2nd/dp/097...
Also check out PeepCode; it gets rave reviews:
http://peepcode.com/
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.
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!
"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! :)