Since I find the process of memorizing by looking at the same material over and over again extremely tedious, I’ve developed my own method, which involves finding a handful of introductory classes online and speeding through them really quickly. When I was in college, I used to download podcasts of the same courses I was taking but at different universities, like Berkeley or Stanford. Then I’d listen to the podcasts while I was on the subway or walking around. It turned out that my approach eliminated hours of studying I would have had to do otherwise, and teachers love it when you’re able to bring in a unique perspective that wasn’t covered in class.
What happens is that sometimes the way a concept is taught really resonates with you, and sometimes it doesn’t. You’d be surprised at how often I’ve been confused by something when it’s explained one way, but when I hear a second person explain it, it just clicks. Put another way: if you were in a room full of smart people, would you ask the same person to explain something to you over and over again, or would you ask a bunch of people?
Another benefit, besides the fact that it’s less tedious, is that the stress of having to remember everything the first time disappears. If you miss some specifics when you’re first exposed to them, that’s okay! In fact, that’s sort of the point. The first time you learn something, you should get a general sense of how all the pieces fit together and what the goal is. Then go back and relearn the specifics with new knowledge of how they fit into the picture as a whole–this way you’ll actually be able to store more information overall.
So what I recommend is that you speed through as many of the introductory tutorials as possible. Just plow through them. Here’s the path I took:
Technically you have to pay for Lynda.com, but they do offer a free 7-day trial period. I powered through this course in about a week. By the end, you’ll have built out a simple content management system. It also does a pretty good job of walking you through how to install everything you need to start programming. It doesn’t cover all the details, and you probably won’t be able to build you own application by the end of this first week, but that’s not the point anyway.
This one takes longer and is more in depth than the Lynda.com tutorial, but it’s probably one of the best and most commonly used resource out there for learning Ruby on Rails. And by the time you’ve gone through the Lynda.com tutorial, this stuff should be much easier to grasp. This whole tutorial took me about two weeks to get through. By the time you’re done with it, you’ll be able to build out your own basic application.
Just watch the sections on Ruby, Rails, Active Record, Cookies and Sessions, and Forms. I love this guy and these videos should start to give you a broader understanding of where Ruby on Rails fits into the larger computer science landscape. The video quality is decent, but not great.
At this point you’ll be able to build out your own basic applications, but there may be specific features you don’t yet know how to implement. Which brings us to…
Step 4: Railscasts by Ryan Bates
Here you’ll find tons of short videos about how to do really specific things in Rails. If you’ve got some feature you’re trying to build out in your app, chances are Ryan covers it here.
The tricky thing is that lots of times you know what feature you want to build, you just don’t know what it’s called, so you don’t know what to search for to find more information. I haven’t found a better way to do this than trial and error, except for asking experts. That is, if you say to an expert: I want the user to be able to do x and get y, a pro can often say, oh what you’re looking for is a Cron job or something like that.
Resources for Troubleshooting
You’ll often run into problems or new challenges you need to figure out. You can find answers here:
- Stack Overflow: This is where people post specific problems and questions they have, and you can find verified answers to questions. Chances are if you’re running into some problem, someone else has already run into the same problem, posted it here and gotten the answer.
- Google: The world’s source for answers to everything. You’d be surprised how often I’ve run into a problem, copied and pasted a snippet of the error code into Google and found the answer.
- Joining the Ruby Community: One bonus attribute of Ruby on Rails is that it happens to be very popular at the moment, and there’s a large community of people supporting it. One of the best ways to learn is to go to Rails meetups and ask someone who knows more than you. If you’re in NYC, check out the following meetups:
- Attend some hackathons. I’d suggest once you start developing a working knowledge of programming languages that you go attend some hackathons and find teams to work with. In NYC, you’ll find a lot of hackathons happening at places like General Assembly or Pivotal Labs. To hear about them, sign up for the following mail lists:
Mattan is the founder and CEO of The Front Labs, a digital strategy agency based in New York City. He’s a marketer, philosopher, adventurer, and generally well-mannered guy. Follow him on twitter and read his blog at mattangriffel.com.