These are the resources I would use to teach myself Rails, if I were to go back in time. Each segment will have resources listed below. IT IS A LOT, so just do a little bit every day and make it a habit.
This is your game plan:
- Install Ruby and Rails
- ruby is the programming language, Rails is basically a collection of ruby programs (AKA a gem or library) that is very useful for creating websites.
- Learn how to use the terminal
- Nothing fancy, just learning what “cd” does is 80% of it. That’s “change directory” in plain English.
- Play with Ruby
- Figure out what IRB is and play, play, play. Use the resources in any order – whatever floats your boat.
- Get started with Rails
- There are really no good beginning rails resources online. I’m sorry. I will write something to make up for this terrible lack in the world. Eventually.
Installing Ruby and Rails
This is by far the hardest part of it all. Here are some resources for getting over the hump.
- Installfest – A step by step guide to installing Rails on any platform so that you can program in it
- Linux/Ubuntu Installation Guide
- RailsInstaller – By far the easiest platform to install on is Windows (And now Mac! 10.7). Unfortunately, running rails on windows is horrendously slow, compared to Linux and Mac.
This is the command line…the scary blinking line where the hackers do their thing? Yeah, it’s actually not magic. Well…
- Unix for the Beginning Mage - Okay, maybe it is. This is an awesome guide. Also applies to Macs, as they are built on top of Debian Unix.
- A Beginner’s Guide to the Windows Command Line
LEARN IT. Graphical User Interfaces are awesome, but there is no button for the command “rails generate model name description:text mood:string times_edited:datetime” (no, you’re not supposed to understand that, just that you can tell your computer very specific things that you can’t with just a mouse.)
I can’t say enough good things about Learn to Program. If you complete that, a lot of Learn Ruby the Hard Way (LRtHW) will be review, but they’re different approaches. By the way, when you get to the part in LRtHW where it tells you to take a week and read code online…just ignore it and keep doing the tutorial. You want to get into the habit of coding. Later you’ll be able to read code much more easily.
- Learn to Program by Chris Pine – I can’t say enough good things about this book. It’s free, it assumes you’re starting from zero, and it covers all the basics.
- Learn Ruby the Hard Way by Zed Shaw – A bit more advanced and in-detail than LtP, but very good. Some parts are clearly written by someone who has no idea what it feels like to be a beginner, though.
- Ruby Koans - Tests of particular points of ruby knowledge…written and meant to be answered all in ruby. The first thing you should do after unzipping it is to go into the directory in terminal and run “rake.” Edit file, rake, repeat. These become a lot of fun. You can also try it out online, but make sure you know how it works offline.
- Project Euler - Also fun! Computational math problems that you can solve by programming the solutions. Any programming language will do – all they check for are the answers – but it’s a lot of fun in ruby.
These all suck. No, really. They suck. Even if they claim no beginning experience, they blow. So do all the rails books I’ve read.
EDIT 10/02/2013 – after a year or so of experience, I feel like I have to qualify their suckage. For a beginner, there is no replacement for a mentor. These books are fine if you have someone to ping and ask questions. Try the Ruby or Rails irc channels, and don’t forget to search for your local Ruby User Group.
Stuff I hated, but other people seem to like (a lot):
You should try these, anyway.
- Try Ruby by why the lucky stiff
- Why’s (Poignant) Guide to Ruby by why the lucky stiff
- Hackety Hack! by why the lucky stiff
Clearly, I am not a fan of why’s tutorials, despite their overwhelming popularity. You should try them, anyway. But if you’re confused by them at any point, just stop. Hammer time.