I’ve got a buddy that wants to learn Rails. He doesn’t have much (if any) experience with web development, but he’s a smart dude and I expect he’ll be able to pick this stuff up quickly.
So, I’ve concocted a 3-part “getting started with Rails” class that he’s taking… where by “class he’s taking” I mean I’m sending him 3 emails, 1 at a time, and forcing him to go through all of the headaches and bullshit associated with “getting started” with as little help from me as possible. This is a good thing because it’ll take less of my time, sure, but mainly because you can’t learn anything about anything when someone is holding your hand the whole way through.
Step 1: Complete the Getting Started with Rails tutorial
First, I’ve sent my friend to the absolutely fantastic (and free!) Rails Guides. The instructions I’ve provided are essentially to skip the first “assumptions” section (since he’s using OS X) and to email me when he’s finished. This is a great way to get someone started quickly. Sure, they’re going to miss out on some of the finer points about the Ruby language itself, but we’ll come back to that after getting him hooked on Rails first.
Second, I told my friend to figure out how to push his code up to GitHub for me to review, and then to deploy it to Heroku for me to play with. The hints I’ve given him are to start by installing Homebrew and then Git with Homebrew. This is a great way to get someone familiar with the tools they’re going to be using if they stick with Rails. Plus, I know from first-hand experience that there’s a great feeling of accomplishment associated with putting your first app up on the world wide webs.
Step 3: Make something
Third, I’ll be telling this friend to think up a project and to make it happen. This is the most important step, in my opinion. At this point, he knows the bare minimum necessary to “get started” so it’s time to remove the training wheels and to go for a ride. Of course, I’ll be available to help him out when he gets stuck along the way, but what better way is there to learn than by doing?
Finally, I have in mind 3 additional things that I’d like my friend to consider while he’s embarking on his journey. The first is to apply for membership into docrails, because he’s in a great position to help improve the documentation and guides with his fresh set of newbie eyes. The second is to read the fanatically helpful (and short) Learn to Program book. This should help fill in the gaps that we smoothed over when we skipped ahead to building Rails apps right out of the gate. Finally, I’ll guilt him into reading the Guide to Testing Rails Applications because testing is super important ;)
That’s about it, then. I’m hoping that this little strategy will work, and I’m interested in hearing your experiences about getting people started with Rails or web development in general. Shouldn’t there be some kind of online school for this sort of thing? It surely doesn’t take a masters degree in computer science to get started building web apps, but I feel like there’s some kind of middle ground that’s missing…