Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
217 lines (207 sloc) 13.4 KB
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Best Rails Tutorials: Ruby on Rails Tutorials Reviewed &#183; RailsApps</title>
<link href="https://plus.google.com/u/0/b/117374718581973393536/117374718581973393536/posts/" rel="publisher" />
<link rel="stylesheet" href="http://railsapps.github.com/css/bootstrap.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="http://railsapps.github.com/css/screen.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="http://railsapps.github.com/css/gollum.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="http://railsapps.github.com/css/site.css" type="text/css" charset="utf-8" />
<link rel="stylesheet" href="http://railsapps.github.com/css/syntax.css" type="text/css" charset="utf-8" />
<script src="http://code.jquery.com/jquery-1.6.min.js" type="text/javascript"></script>
<script src="http://railsapps.github.com/javascript/jquery.text_selection-1.0.0.min.js" type="text/javascript"></script>
<script src="http://railsapps.github.com/javascript/jquery.previewable_comment_form.js" type="text/javascript"></script>
<script src="http://railsapps.github.com/javascript/jquery.tabs.js" type="text/javascript"></script>
<script src="http://railsapps.github.com/javascript/gollum.js" type="text/javascript"></script>
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-5109366-14']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a href="http://railsapps.github.com/" class="brand">RailsApps Project</a>
<ul class="pull-right nav">
<li><a href="http://blog.railsapps.org/" class="twitter">Blog</a></li>
<li><a href="http://twitter.com/rails_apps" class="twitter">Twitter</a></li>
<li><a href="https://plus.google.com/117374718581973393536" class="google">Google +</a></li>
<li><a href="https://github.com/RailsApps" class="github">GitHub Repository</a></li>
</ul>
</div>
</div>
</div>
<div class="container">
<div class="content wikistyle gollum textile">
<h1>Recommended Rails Tutorials</h1>
<h4>by Daniel Kehoe</h4>
<p><em>Last updated 4 May 2012</em></p>
<p>Recommended Ruby on Rails tutorials for beginners learning Rails.</p>
<p>This is a guide for developers using the <a href="http://railsapps.github.com/">Rails example apps</a> from the <a href="https://github.com/RailsApps">Rails Apps</a> repository. Others may find it helpful as well.</p>
<p><a href="http://www.twitter.com/rails_apps"><img src="http://twitter-badges.s3.amazonaws.com/t_logo-a.png" title="Follow on Twitter" alt="Follow on Twitter"></a> Follow <a href="http://twitter.com/rails_apps">@rails_apps</a> on Twitter for updates and timely Rails tips.</p>
<h2>Which Rails Tutorial for You?</h2>
<p>Not all Rails tutorials are alike or suitable for everyone.</p>
<p>Ask yourself:</p>
<h4>What is My Learning Style?</h4>
<p>Do you prefer to read a book, watch a video, learn from interactive lessons online, or study an example application?</p>
<h4>What is My Skill Level?</h4>
<p>Do you already use a modern web application platform such as <span class="caps">PHP</span>, Java, or Microsoft .<span class="caps">NET</span>? Have you built static websites with <span class="caps">HTML</span> and <span class="caps">CSS</span>? Do you have a programmer’s text editor and a terminal application on your desktop? Do you need to learn to program?</p>
<h4>How Much Do You Need to Learn?</h4>
<p>Are you planning to launch a web startup? Do you intend to seek employment as a Rails developer or as a freelancer? Are you a hobbyist with a personal project to build? Are you a manager in an enterprise who will be hiring or outsourcing to skilled Rails developers?</p>
<h2>Michael Hartl’s “Ruby on Rails Tutorial”</h2>
<p>Michael Hartl’s <a href="http://ruby.railstutorial.org/">Ruby on Rails Tutorial: Learn Rails by Example</a> is the most comprehensive Rails tutorial available. It is the Rails tutorial that is most often recommended by experienced Rails developers. It is available as a book for free online and is available for purchase as a 500+ page <span class="caps">PDF</span> optimized for e-readers such as Kindle and iPad. The first edition was accompanied by a library of screencasts 15 hours in duration with one lesson for each chapter of the book. Purchasers of the second edition get access to the new screencasts as they’re produced, as well as the first edition in its entirety. The author keeps the book up-to-date, covering Rails 3.2 and Ruby 1.9, Twitter Bootstrap and the new asset pipeline, and testing with Capybara &amp; RSpec in the second edition.</p>
<p>If you intend to work as a Rails developer, or you wish to build a Rails web application, you must read this book. No other introduction to Rails is as complete, as thorough, or as accessible to beginners.</p>
<p>Here’s the drawbacks. Working your way through the book can take weeks as a part-time project. If you try it as a full-time sprint, you’ll likely burn out before you are done. You’ll be studying as if you were in college and taking an intro-level course in sciences or engineering. You’ll build a complete and serviceable Rails application, learning the basics of each area of Rails development. However, when you are done, you may find it difficult to build your own Rails application from scratch, unless it is substantially similar to the example in the book.</p>
<p>Do you want to work as a Rails developer? Are you building an application for your personal use or a startup business? Get Hartl’s book and (depending on your learning style) supplement it with shorter tutorials, videos, interactive lessons, or example applications. Find ways to sample Rails development in smaller doses and compare the approaches for better comprehension.</p>
<p>If you’re a manager who wants to understand the work that Rails developers do, try a few introductory chapters and skim the rest of the book. You’ll have a good basis for communicating with your team.</p>
<p>If you’re just beginning to learn programming, this book will lead you step-by-step but it may be overwhelming and frustrating. Start with easier lessons first, such as interactive lessons online, or even better, live lessons with a mentor.</p>
<h2>Summary</h2>
<p>Here is a summary of recommended Ruby on Rails tutorials.</p>
<table>
<tr>
<th>Learning Ruby </th>
<th></th>
<th>Authors </th>
</tr>
<tr>
<td> <a href="http://rubymonk.com/">RubyMonk</a> </td>
<td> free browser-based interactive tutorial </td>
<td> C42 Engineering </td>
</tr>
</table><table>
<tr>
<th>Learning Rails </th>
<th></th>
<th>Authors </th>
</tr>
<tr>
<td> <a href="http://ruby.railstutorial.org/ruby-on-rails-tutorial-book?version=3.2">Ruby on Rails Tutorial</a> </td>
<td> book covers Rails 3.2, available for free online </td>
<td> Michael Hartl </td>
</tr>
<tr>
<td> <a href="http://railsforzombies.org">Rails for Zombies</a> </td>
<td> free tutorial with in-browser coding </td>
<td> Code School </td>
</tr>
<tr>
<td> <a href="http://www.manning.com/katz/">Rails 3 In Action</a> </td>
<td> book covers Rails 3.1 </td>
<td> Yehuda Katz and Ryan Bigg </td>
</tr>
<tr>
<td> <a href="http://pragprog.com/book/rails4/agile-web-development-with-rails" title="4th edition">Agile Web Development with Rails</a> </td>
<td> ebook covers Rails 3.2 </td>
<td> Sam Ruby, Dave Thomas, and David Heinemeier Hansson </td>
</tr>
</table><table>
<tr>
<th>Learning <span class="caps">BDD</span> &amp; <span class="caps">TDD</span> </th>
<th></th>
<th>Authors </th>
</tr>
<tr>
<td> <a href="http://www.pragprog.com/titles/achbd/the-rspec-book">The RSpec Book</a> </td>
<td> covers RSpec and Cucumber </td>
<td> David Chelimsky and others </td>
</tr>
<tr>
<td> <a href="http://pragprog.com/book/hwcuc/the-cucumber-book">The Cucumber Book</a> </td>
<td> covers Cucumber </td>
<td> Matt Wynne and Aslak Hellesøy </td>
</tr>
<tr>
<td> <a href="http://cuke4ninja.com/">The Secret Ninja Cucumber Scrolls</a> </td>
<td> free introduction to Cucumber </td>
<td> David de Florinier and Gojko Adzic </td>
</tr>
</table><table>
<tr>
<th>Tutorials with Example Apps </th>
<th></th>
<th></th>
<th></th>
</tr>
<tr>
<td> <a href="http://railsapps.github.com/tutorial-rails-devise-rspec-cucumber.html">Rails 3.2 Tutorial: Devise, RSpec, Cucumber</a> </td>
<td> <a href="https://github.com/RailsApps/rails3-devise-rspec-cucumber">Example App</a> </td>
<td> <a href="https://github.com/RailsApps/rails3-application-templates">App Template</a> </td>
<td> Devise for authentication with ActiveRecord and SQLite for a database</td>
</tr>
<tr>
<td> <a href="http://railsapps.github.com/tutorial-rails-bootstrap-devise-cancan.html">Rails 3.2 Tutorial: Twitter Bootstrap, Devise, CanCan</a> </td>
<td> <a href="https://github.com/RailsApps/rails3-bootstrap-devise-cancan">Example App</a> </td>
<td> <a href="https://github.com/RailsApps/rails3-application-templates">App Template</a> </td>
<td> Devise for authentication, CanCan for authorization, Twitter Bootstrap for <span class="caps">CSS</span> </td>
</tr>
<tr>
<td> <a href="http://railsapps.github.com/tutorial-rails-prelaunch-signup.html">Rails 3.2 Tutorial: Startup Prelaunch Signup</a> </td>
<td> <a href="https://github.com/RailsApps/rails-prelaunch-signup">Example App</a> </td>
<td> <a href="https://github.com/RailsApps/rails3-application-templates">App Template</a> </td>
<td> For a startup prelaunch signup site </td>
</tr>
<tr>
<td> <a href="http://railsapps.github.com/tutorial-rails-mongoid-devise.html">Rails 3.2 Tutorial: Devise, Mongoid</a> </td>
<td> <a href="https://github.com/RailsApps/rails3-mongoid-devise">Example App</a> </td>
<td> <a href="https://github.com/RailsApps/rails3-application-templates">App Template</a> </td>
<td> Devise for authentication with a MongoDB datastore </td>
</tr>
<tr>
<td> <a href="http://railsapps.github.com/tutorial-rails-mongoid-omniauth.html">Rails 3.2 Tutorial: OmniAuth, Mongoid</a> </td>
<td> <a href="https://github.com/RailsApps/rails3-mongoid-omniauth">Example App</a> </td>
<td> <a href="https://github.com/RailsApps/rails3-application-templates">App Template</a> </td>
<td> OmniAuth for authentication with a MongoDB datastore </td>
</tr>
<tr>
<td> <a href="http://railsapps.github.com/tutorial-rails-subdomains.html">Rails 3.2 Tutorial: Subdomains, Devise, Mongoid</a> </td>
<td> <a href="https://github.com/RailsApps/rails3-subdomains">Example App</a> </td>
<td> <a href="https://github.com/RailsApps/rails3-application-templates">App Template</a> </td>
<td> Basecamp-style subdomains with Devise and MongoDB </td>
</tr>
</table><p>Want more? See an expanded list of <a href="http://railsapps.github.com/rails-examples-tutorials.html">Rails Examples, Tutorials, and Starter Apps</a>.</p>
</div><!-- class="content" -->
<div class="comments">
<div class="content wikistyle gollum">
<h2>Comments and Issues</h2>
</div>
<p>Is this helpful? Please add a comment below. Your encouragement fuels the project.</p>
<p>Did you find an error? Or couldn't get something to work? For the example apps and tutorials, please create a GitHub issue in the repository for the example app. Creating a GitHub issue is the best way to make sure a problem is investigated and fixed.</p>
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'railsapps'; // required: replace example with your forum shortname
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
<a href="http://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>
</div><!-- class="comments" -->
<div class="footer row">
<div class="span4">
<h3>Credits</h3>
<p><a href="http://danielkehoe.com/">Daniel Kehoe</a> initiated the <a href="http://railsapps.github.com/">RailsApps Project</a>. Thanks to all the users and contributors.</p>
</div>
<div class="span4">
<h3>Wiki</h3>
<p>Corrections? Additions? You can edit this page <a href="https://github.com/RailsApps/railsapps.github.com/wiki/_pages">on the wiki</a>.</p>
</div>
<div class="span4">
<h3>Last edit</h3>
<p>by <b>Daniel Kehoe</b>, 2012-07-20 23:08:42</p>
</div>
</div>
</div>
</body>
</html>