Since starting my apprenticeship with Quick Left just over three months ago, I've been asked frequently how I got started with Ruby on Rails. Being the efficiently lazy guy that I am, I thought I'd publicly share some of the resources I've been recommending during those conversations.
I started with Ruby on Rails almost a year ago by fitting in small chunks of time during nights and weekends for several months. Now I'm a full time apprentice. A couple of other things to know before I get started:
- I am a business generalist making a career change into building stuff on the internet. When I got started my skills were limited to a little HTML and CSS but not much more.
- I am a believer in the “drinking from the fire hose” approach. In this context, it involves learning about a myriad of things simultaneously and taking a leap of faith that things you partially understand will eventually become things you fully understand.
Resources I highly recommend, all available for free online:
- The Ruby on Rails Tutorial | The reason this is at the top of my list? It integrates many of the tools that most other tutorials exclude: Github, Heroku, and Rspec to name a few. Most of all, I loved the balance of instant gratification and detail. I knocked the tutorial out chapter by chapter over the course of several months.
- Ruby on Rails Guides | If you’ve got the patience to sit down and read through the entire guide, I’d recommend it. Otherwise, use it as a reference. Either way, this should be a resource that’s bookmarked in your browser. It has nice explanations for all the most common things that you’ll use in RoR.
- Railscasts | I find myself watching a ton of these screencasts because they’re well thought out and usually speak specifically to functionality that I’m trying to add to Quick Left and personal projects. That said, I’m also able to pick up on best practices when I’m paying careful enough attention.
- Update: Command Line Tutorials | Jessica has a series of blog posts to get you up to speed using the command line. It’s a series I wish I had when I was getting started. And yes, this update now makes for 6 resources.
Resources I also recommend:
- Programming Ruby 1.9 | This is the classic “PickAxe Book” that most Rubyists recommend. It didn’t make it into my highly recommended group because it’s too dense for a beginner. I’ll be rereading it during the holiday break to strengthen my fundamentals and to better understand where Ruby ends and Rails begins. Keep in mind that Ruby and Rails are complementary but distinct, like peanut butter and jelly.
- The Pragmatic Programmer | Also a classic, this book doesn’t focus on a specific language, but rather on the fundamentals of how to write great software. This book will be especially helpful if you’ve already experienced how hard it is to revisit software you wrote months ago without the fundamentals. It gets ugly quickly and a lot of stuff breaks.
The best advice that I can give to aspiring RoR developers:
- Write a lot of code | A lot of it. It’ll be ugly, and that’s okay. Delete. Repeat until you’ve gotten to the point where keeping some of it is useful. Feel free to take a peek at the first app that I kept, which I’ve been using every day since I wrote it. It’s full of security holes, hacks, and other bad practices, but it’s complete and it was a huge step forward in my learning. I plan to keep it as a reminder of how much learning I’m capable of.
- Seek the advice of others | I’ve been lucky to have access to the collective experience and talents of the Quick Left team over the last three months. I wish I had found mentors earlier. Getting a 5 minute explanation of something or another set of eyes on your code can accelerate your learning exponentially. Come by one of our hackfests, find a meetup around town, or otherwise make friends with somebody that can help you. The programming community likes to reward enthusiastic beginners.
- Update: Take a break | Walking away from the keyboard will help you problem solve and let concepts come into clearer focus. When you’re struggling with a problem, get up and do something else. I’ve stubbornly lost countless hours trying to grind out a problem only to have everything become clear during a 5 minute walk. Longer breaks from coding altogether can help big concepts click too. MVC finally made sense after I stopped trying to make sense of it during a month long hiatus from coding. Drink from the firehose but come up for a breath occasionally.
If you come by Quick Left for one of our hackfests (keep an eye on this blog for announcements), feel free to track me down if you want to be introduced to a few folks or want somebody to point you in the right direction. I'm also happy to sit down over a quick cup of coffee just about any time.
Now go away and build something.