While not required, I recommend the following pre-reqs:
* Buy a Mac or install Ubuntu on your dev machine
* Read “The Pragmatic Programmer”:http://pragprog.com/the-pragmatic-programmer
* Learn Vim or Emacs
* Learn Git & make a “GitHub”:http://github.com account
* Use Firefox with the Firebug extension or Google Chrome for development
Understand this protocol or prepare yourself for perpetual confusion. Read “the RFC,”:http://www.w3.org/Protocols/rfc2616/rfc2616.html or at least the following sections:
* “HTTP Message”:http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html#sec4
* “Status Codes”:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10
Read “The Pickaxe”:http://pragprog.com/book/ruby3/programming-ruby-1-9 if you don’t know Ruby or could use a refresher.
Read “Agile Web Development with Rails 4th Edition”:http://pragprog.com/book/rails4/agile-web-development-with-rails
“Rails Guides”:http://guides.rubyonrails.org/getting_started.html is an excellent free companion resource to “the official Rails api docs”:http://api.rubyonrails.org/
Do “this Twitter clone Rails tutorial”:http://ruby.railstutorial.org/ruby-on-rails-tutorial-book
Read “CSS Mastery 2nd Edition”:http://www.amazon.com/CSS-Mastery-Advanced-Standards-Solutions/dp/1430223979
* Read chapters 1, 2, and 3 for the basics on CSS selectors, specificity, the box model, and positioning.
* Read the rest if you want even the slimmest chance of helping your app not look like it has drunken clown makeup smeared all over it.
If you finish that book and your app still looks like someone sat on a bunch of ketchup and mustard packets, read “The Principles of Beautiful Web Design 2nd Edition.”:http://www.sitepoint.com/books/design2/
Do the following jQuery tutorials:
* “How jQuery Works”:http://docs.jquery.com/Tutorials:How_jQuery_Works
* “Getting Started with jQuery”:http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery
Read the “jQuery Types Documentation”:http://docs.jquery.com/Types and the “jQuery API Docs”:http://api.jquery.com/ – all of it.
Now would also be a good time to learn “Coffeescript”:http://coffeescript.org/
h3. Extra Credit (which is also required)
* “Old yet good REST article”:http://www.infoq.com/articles/rest-introduction
* “REST stands for Representational State Transfer”:http://en.wikipedia.org/wiki/Representational_state_transfer
* “Underscore.js (required by backbone, and useful in it’s own right)”:http://documentcloud.github.com/underscore/
* “MongoDB”:http://www.mongodb.org/ is easiest to transition to from ActiveRecord if you use use “Mongoid”:https://github.com/mongoid or “MongoMapper”:http://mongomapper.com/
* “Dive into HTML5”:http://diveinto.html5doctor.com/
h3. Extra Extra Credit
Do it again using “Ember.js”:http://emberjs.com/ instead of Backbone.js.
h3. More Resources
* Install “Bundler”:http://gembundler.com/ and use a Gemfile to manage your dependencies for each project.
* “Know what works in which browser.”:http://www.quirksmode.org/compatibility.html
* “What gem or plugin should I use for X?”:https://www.ruby-toolbox.com/
* Deploy your demo apps to “Heroku.”:http://www.heroku.com/
* Use “Capistrano”:https://github.com/capistrano/capistrano/wiki to deploy elsewhere.
* Try “HAML”:http://haml.info/ & “SASS”:http://sass-lang.com/
h3. Independent Study
If you’re bored with everything being a RESTful resource represented in your database, Rails model, Rails controller, Backbone.js model, and view, (or just not sure what to do next) then try a different approach altogether.
Rewrite your sample app using “FAYE”:http://faye.jcoglan.com/ and “Node.js”:http://nodejs.org/ to build your app on a publish-subscribe model of communication between your client and server.
If I missed anything important, please let me know.