Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
A list of resources for learning Rails and relevant technologies

A list of resources that aspiring Rails developers can use to learn Rails and other relevant technologies. This list includes some resources that I see recommended all over the web--not all of which I like--as well as some hidden gems that I've found valuable. This list is intended to supplement my blog post here.

Ruby

  • Codecademy
    • One of the more well-known sites to offer interactive programming tutorials, Codecademy is probably best utilized by those who are pretty new to programming, though the Ruby tutorial is good for teaching Ruby syntax and eventually gets into some less trivial material.
  • Try Ruby
    • Pretty similar to Codecademy. Once again, it's beginner-friendly, though, as someone who knew about object-oriented programming beforehand, I found it somewhat annoying to use, as there's no page with links to the individual exercises (at least from what I could tell).
  • RubyMonk
    • As with the previous two resources, RubyMonk offers interactive tutorials. However, it has several different courses on various programming topics and for different experience levels, which I find much nicer than Codecademy and Try Ruby. I also find it to be a little more organized than either of the other two.
  • Mr. Neighborly's Humble Little Ruby Book
    • Unlike the previous two resources, this is not interactive. However, I'd definitely recommend it. It's still somewhat beginner-friendly, but it focuses less on teaching you Ruby syntax (though it still does) as it does teaching you about Ruby as a programming language, which I personally find very interesting and useful. It's also a pretty short and easy read.
  • Why's Poignant Guide to Ruby
    • As it's a recent find of mine, I haven't gotten to go over this book in much detail. From the reviews I found online and my own cursory skimming, it seems to be akin to the Humble Little Ruby Book in that it attempts to teach you about Ruby while teaching you how to use it. Though it's longer than the Humble Little Ruby Book, it has a reputation for being fairly witty and comical, which may help keep some readers' interest better.
  • Programming Ruby: The Pragmatic Programmer's Guide
  • While I haven't gotten the chance to read this book myself, I've seen it recommended countless times. In fact, it was recently recommended to me by @pk-nb.

Rails

  • Rails for Zombies
    • Rails for Zombies is run through Code School, the same people behind Try Ruby. Instead of focusing on coding based on small tutorials and prompts, however, Rails for Zombies alternates video segments (which are luckily pretty short) with related code challenges. Personally, I've only gone through the first tutorial, which wasn't great in terms of learning how Rails, but it does cover CRUD and basic database queries and validations, which are both valuable. I'm actually looking forward to trying some of their more advanced tutorials, particularly Rails Best Practices.
  • Ruby on Rails Tutorial
    • This is probably the definitive guide in terms of learning Ruby on Rails. If you were to go through the entire tutorial--particularly if you also do the challenges that he doesn't provide solutions for--you'd be fairly well set in terms of beginning Rails skills. While I'd definitely recommend working through this to most people who wish to learn Rails, there are some imperfections--it's fairly long and dense, doesn't cover much in terms of Ruby--but that's why there's a whole 'nother section in this list devoted to Ruby--and definitely teaches you more about how to make an app with Rails without talking as much about the framework. That said,if you're going to learn Rails, this is one of the better places to start, though I'd recommend learning about relational databases and Ruby beforehand.
  • Rails Guides
    • The Rails Guides are a really great series of documents dedicated to explaining many of the different facets of Rails, such as routing, the asset pipeline or working with Rails and Javascript simultaneously. There is a beginner's guide, but it'd probably be difficult to attempt to learn Rails only from these guides. Instead, they make great reference materials--I often found myself heading here when I needed to understand a bug or figure out how to do something new.
  • RailsCasts
    • RailsCasts has a pretty large series of screencasts devoted to developing Rails applications. A lot of different topics get covered, so it's probably best to pick and choose individual ones to watch based on what you need, rather than trying to go through all of them from the beginning.

SQL

  • Intro to Relational Database Design
  • A Quick Start Tutorial on Relational Database Design
    • Though it often seems underrepresented in guides about how to learn Rails, I personally find understanding the basic of relational database design to be vital to learning Rails. The previous two guides are quite similar and seem to cover the basics pretty well. Personally, I prefer the latter.
  • Learn SQL the Hard Way
    • One of my favorite aspects of Rails is the fact that you can usually get away with not writing SQL queries manually. That said, the Rails syntax for getting data from a database is pretty similar to SQL, so it's a good idea to have a basic understanding. While a very basic understanding might be enough to get you through, it's still a good idea to learn SQL as early as you can--if you plan on seriously pursuing back-end development, you're going to need to learn it eventually. Learn SQL the Hard Way is probably the best resource I've found for doing so.

Front end (HTML, CSS, Javascript)

  • HTML & CSS
    • This is a list of resources for learning HTML and CSS from Thoughtbot. It also includes a useful checklist of skills to have after going through the different resources.
  • Codepen
    • This nifty little site is one of the more popular sites for displaying front-end code alongside its output. You can both check out how your own code would look and get inspiration from others.
  • JSFiddle
    • Somewhat similar to Codepen, JSFiddle is often used for debugging or displaying front end code. You can enter HTML, CSS and Javascript and see the output in a fourth window. In addition, you can specify different JS libraries, like JQuery, Angular and D3.

Testing

  • Testing with Rspec
    • Writing good tests is incredibly important to any developer, and Rails devs are no exception. Personally, I use Rspec--partially because that's what I was introduced to at Viget, and partially because I like its syntax more than other options I've checked out. As it's quite similar, this would be a great option for anyone who found success with Rails for Zombies.
  • How I Learned to Test My Rails Applications
    • A fairly detailed series of blog posts about learning to test Rails applications. I haven't gone through it in detail yet, but it seems pretty solid if Testing With Rspec doesn't work well for you.
  • How Do I Test My Code with MiniTest?
    • As I don't use MiniTest, I can't speak to the quality of this blog post. However, it was recommended to me, so it's likely solid if you need some MiniTest knowledge.
  • Bowling Game Kata
    • While this doesn't cover testing in Ruby, it does detail test-driven development pretty well. If that's important to you, give this a read.

Git

  • Git Immersion
    • Probably the best resource I've found for learning Git, Immersion was suggested to me both at Viget and at a lecture series I attended in college. It's meant to be utilized as a sort of walkthrough: you'll be running the commands it gives you locally. The one downside is that it doesn't cover Github, so you'll need another resource for that.
  • Git Reference
    • This is a pretty solid manual that approaches Git somewhat similarly to how Michael Hartl's Rails tutorial approaches Rails with both 'code' snippets and accompanying text to offer explanation. Probably less detailed than Git Immersion but a little quicker to get through.
  • Pro Git
    • If Git Reference's approach is like the Rails Tutorial, then Pro Git is akin to the Poignant Guide or Humble Little Ruby Book. While it does teach you how to use Git, it also goes into a lot of detail on Git itself and version control in general. Probably not your best bet if you want to learn Git very quickly, but a great resource if you really want to understand Git better.
  • Git and Github
    • This guide is from a lecture series--for lack of a better term--run by the one and only Peter Parente of IBM that I attended during my last semester of college. This page includes links to several resources related to both Git and Github including some screencasts that Pete prepared.
  • Github Guides
    • If you haven't used it yet, Github will probably be one of your best friends as a developer from here on out. In addition to the obvious benefits of version control and code hosting, it's also very useful as a professional tool: potential employers will be able to check out--and be wowed by--your past projects. These guides are pretty short but provide good info about working with Github.

Command Line

  • Bash, Screen, Vi, and SSH
    • Working with Rails, you'll likely find yourself doing a lot of work on a Unix command line. This link contains a bunch of resources to help yourself with learning about shell programming. Unless you want to go through the individual problems (for which you'll need to complete the setup linked to on this page), your best resources will be in the Introduction and References sections.
  • Unix Tutorials for Beginners
    • A pretty basic intro to useful commands you'll run from the shell. Personally, I've used the information in tutorials 1, 2 and 8 most often during my internship, but I also used the commands in tutorial 5 fairly often in school.

Text Editors

Since there are so many different text editors out there, I've only included resources for the one that I personally know best, Vim. While I really like Vim, it's probably best if you give a couple different text editors a shot before you commit to one. That way, you'll be able to get a feel for what's best for you.

  • Vim Cheat Sheet
    • A collection of several of the more widely used Vim commands, this list is quite helpful but far from comprehensive.
  • Useful Vim Plugins for Ruby
    • A blog post that I found in my first week of my internship, most of these are really great. If nothing else, the Ruby syntax highlighting is a must-have.
  • vimtutor
    • Also available from the command line--just run vimtutor--this is an interactive tutorial that teaches you a bunch of different Vim commands, which will speed up your development process considerably and generally just cause you to be happier with your life.

Additional Resources

  • Rubular
    • An online regular expression evaluator. You can enter strings you expect to match or not match your regex, which is really helpful to make sure that your regex behaves as expected. It also has a little cheat sheet at the bottom. For anyone that's used to writing regular expressions, do note that Ruby has slightly different syntax from other languages (i.e. Java). If you're used to using Regexr like I was, you'll definitely want to switch to Rubular to be safe.
  • Dillinger
    • A great online markdown editor--write your markdown in one window and see it rendered in real-time in the adjacent window. Markdown isn't something you'll necessarily need to use with Rails, but I found myself writing .md files fairly often over the course of my internship at Viget.
  • /r/learnprogramming
    • Kind of like a more casual version of Stack Overflow. Make sure to check out the sidebar for a lot of great resources.
  • CodeEval
  • CodeWars
  • The two above resources have a lot of great coding challenges to hone your skills. Each allows you to submit answers in Ruby and Javascript, and Codewars even supports Coffeescript. I'd definitely recommmend doing some of these for the sake of practice.

Don't like my list?

Check out ThoughtBot's:

Or the University of Reddit's Rails course.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.