Want to learn Rails? Start here.
As you learn any skills, your brain is constantly wiring and re-wiring itself, teaching itself to think and understand in the context of your skill. Learning how to code is no different. The way I think through a problem now versus the way I did six months ago is essentially night and day.
This post is about the resources that I used to learn how to code. This isn’t gospel; this are just what have helped me. Play with your process. Find what tools you can’t live without and what works for you.
The Rails 3 Tutorial - This is available online for free but I found it most helpful to do the book as a Kindle book on my iPad. I had my iPad open next to my laptop and I could only focus on the one page that was presented on the screen. You learn how to build an early version of Twitter with the book and it helps provide light on a lot of Rails basics.
I found this book to be the most useful when I came up with a tiny side project and did that alongside my following the book. I used the book as a reference material and applied those same concepts to my project so that I wasn’t only just following along, I was participating in another context and training my brain to think in a certain way.
Railscasts - There are so many tips and interesting new technologies demoed and explained. I got in the habit of doing random ones, regardless of their content, just to learn new stuff. The Pro plan is $9 per month and has updated code for older episodes and is even more valuable. I recommend it.
Stack Overflow - When you ask a question on SO, make sure you show them your current code, tell them what your goal is with the code. Tell them that you’ve done the work and research on your own and can’t figure out the answer and that any help they give you is incredibly appreciated. It leads to a lot of quality answers and much less “You’re new and stupid, get out of here” responses.
Find a technical mentor - One of the things that’s helped me a ton at TaskRabbit is having great mentors whose brains I can pick after I’ve exhausted trying to learn on my own. I want to thank Victor, BL, Steve, Loren, BR and Evan for being invaluable assets and devoting the time to teaching me how to be the best I can be.
Give yourself projects - No matter how small, make sure you’re building something that matters to you, even if it doesn’t see the light of day. I have a ton of files on my computer of Ruby projects that I built just to learn a simple skill like “this is how I submit a form and record a new Thing in the database” or “This is how routing and resources work together.”
Devote real time to it - Programming, I learned long before starting at TaskRabbit, isn’t something that you can get a lot done with only doing it for an hour a day. It takes two to four hours, I’d say, to make significant headway on fixing a bug or making a dent in a feature on my to-do list (at least in the beginning it did). Give yourself some time to get into a flow, start cruising and feel comfortable.
Celebrate every tiny victory - You’re going to be learning a lot really quickly. You’re going to be leaving a whole bunch of people in the dust who just say the want to learn to code but aren’t really doing it. Relish in the fact that you learned something new, regardless of the size of what you’ve learned. And there are going to be days where the code gets the better of you. Just come back tomorrow and be prepared to kick its ass.
Oh, and make sure you’re having fun.
I’d love to hear about your experience learning how to code or what has helped you. Contribute to the discussion on Hacker News.
If you enjoyed this post, I’d be humbled if you followed me on Twitter.