I have been developing web applications since 1999. I mostly developed in PHP until a few years ago when I finally made the transition to Rails and never looked back.
For me, learning Ruby on Rails was one of the most painful exercises in learning a new language and framework. Most of the tutorials out there skipped over many idioms and features of the Ruby language. They show how "easy" Rails is by just adding a few magic lines of code here and there. This is great, but next to useless for actually understanding what is happening under the hood. Once I understood what was going on underneath all this magic, I became super productive in Rails.
That's how I will be approaching teaching you Rails. To start, we will cover object-oriented Ruby and write our own MVC Rack-based blog application. This will show you how Ruby web apps work, how to hook up with a database and how to render using ERB views.
We'll then do a deep dive into Rails. We will take a project-based approach and build an actual web application that will look pretty decent! We will cover the Rails architecture, scaffolding, routing, asset pipeline, gems, testing and deployment. I'll also point you to invaluable resources where you can continue on your journey to mastering Rails.
Note: This class is not for complete beginners to web development. Here's what you need to already know:
Software-wise, here's what you need installed before coming to class.
A working Ruby 2.x environment. Check out Rails Installer or Boxen.
Ruby on Rails. Install using
gem install rails. Make sure that you can create a new Rails app using
rails new [appname] and run it with
ImageMagick. I recommend using Homebrew to install this.
Sqlite. Also recommend using Homebrew for this.
(Optional) MySQL or Postgres if you want to be a bit more advanced and run your app off a real DB.
Your favorite code editor. I recommend Sublime.
Note that I will be working on Mac OS X.
Leo is CEO of ArtStation, the leading showcase platform for games, film, media & entertainment artists with millions of users worldwide.