Dates & Pricing

$1695 Alumni and Groups of 3+
$1995 Early Bird:
(for Reston thru March 12)
(for Chicago thru March 31)
$2295 Regular

The Mastering Ruby and Rails course is a team-based workshop that combines instruction, hands-on labs, and discussions. We've taken the best of our Advanced Ruby and Advanced Rails courses and designed this 4-day master course for experienced developers.

Ruby and Rails are both incredibly powerful technologies. But that power comes at a price—as a developer, you're constantly faced with choices, you're constantly asking yourself "What's a good way to do X?" This course is designed to help you answer those questions.

  • Move beyond the basic toolbox of the average developer by learning advanced Ruby and Rails techniques the pros use to make your code more powerful, compact, and fun to work with.
  • Gain a deeper understanding of Ruby and Rails so you can use them with more confidence and efficiency.
  • Learn how to migrate your Rails 2.x applications to Rails 3.0.
  • Save time and frustration by getting answers to your questions from folks who have solved tough problems.

You'll come away from this Studio feeling like a Ruby and Rails Master!

Who’s It For?

Experienced Developers. This is an advanced course designed for experienced developers who are ready to take the next step to Ruby and Rails mastery. This is not an introductory course. It's an advanced course designed for experienced Ruby and Rails developers. It will be a good fit for you if...

  • You have at least one Rails application under your belt
  • You have at least 6 months experience with Ruby and Rails

If you're just getting started with Rails, then consider attending the Ruby on Rails Studio.

What Will I Learn?

In the labs, attendees will work in teams to create a complex Rails application. Along the way, you'll bump into design and coding challenges that typically cause Rails applications to grow in complexity, and you'll find yourself asking "What's a good way to solve this problem?" But now you won't be alone.

We'll discuss the issues, explore solutions, and see how advanced Ruby and Rails programmers use the power of the language and framework (and the growing number of third-party tools) to simplify their lives. We won't have all the answers, but we will show you how we go about finding them.

More than that, we'll try to show you the best of modern Ruby and Rails development. The field is changing fast, and solutions that were common a year ago may no longer be the best.

Ruby

The quickest path to Rails mastery is through Ruby. We'll dig deep into Ruby with topics including:

  • Ruby 1.9: Ruby is a-changin'. As a Ruby programmer, you'll want to stay on top of all the new syntax and language features.
  • Blocks, Procs, and Closures: Ruby programmers use these all the time without thinking too much about it. We'll dig deeper so you really understand what's going on and how to design your applications around them.
  • Design in a Dynamic Language: Ruby is different than the languages you're used to. If you're still using the design techniques that work with those languages, you're not exploiting the power of Ruby, and you're writing more code than you need.
  • The Ruby Object Model: Understand the underlying model, and everything falls into place. Dave has been digging into that model for the last ten years, and has a fresh (and simple) way of looking at it.
  • Metaprogramming: Metaprogramming lets you program more expressively. This makes your code easier to write and easier to maintain and extend.
  • Making Domain-Specific Languages: Everyone talks about domain-specific languages (DSLs), but let's see how to do it for real.
  • Library Organization and Gem Use: As your Rails application grows, keeping all the assets organized becomes more important. We'll discuss best practices for file and directory organization, require and load tricks, and using and creating gems.
Rails

We'll move beyond the basic toolbox of the average Rails developer with topics including:

  • Complex Forms and Views: You can get by with basic forms and views, but often you'll want to design more sophisticated forms for a better user experience.
  • Rich Domain Modeling: You want to design your models "the right way", and yet there are many ways that would work: inheritance, :through associations, polymorphic associations, and so on. How do you decide which design is better? We'll look at the options and discuss when they might be appropriate.
  • Application Integration: Learn to create APIs and talk to other applications using Active Resource, respond_to formats, and other methods.
  • Meta-Programming Rails: Once you understand meta-programming in Ruby, you can use these techniques to extend Rails to your advantage.
  • Background processing: Learn tools and techniques for handling asynchronous tasks in a Rails application.
  • Debugging: Approaches, tools, and strategies to finding and fixing problems fast.
  • Beyond Rails: Navigating the ever-changing world of Ruby on Rails plugins and gems.
  • Transitioning to Rails 3.0: Steps to migrating your Rails 2.x application to Rails 3.0.

But that's just the plan: the reality is that the content changes each time we give the course, simply because each group is different.

Who Teaches the Course?

Dave and Chad

Dave Thomas and Chad Fowler. This course is taught by programmers for programmers. You'll learn directly from two renowned authorities on Ruby and Rails development.

Dave Thomas is the co-author of The Pragmatic Programmer, Programming Ruby, and Agile Web Development with Rails. Along with Andy Hunt, he runs The Pragmatic Programmers.

Chad Fowler is a well-known author and Ruby and Rails trainer and consultant. He is cofounder of Ruby Central, a non-profit corporation responsible for the annual International Ruby and Rails Conferences, and is a leading contributor and frequent speaker in the communities.Chad is the author of Rails Recipes and The Passionate Programmer, a contributor to Programming Ruby, and CTO of InfoEther.

What's a Studio Like?

Interactive Learning. You'll learn in a significantly different way in a Studio than by reading through books or working on your own. Attending a Studio complements what you may have read, but in a hands-on, collaborative learning environment where you'll:

  • get your questions answered by experts and your peers
  • learn through guided hands-on programming exercises
  • discuss up-to-date topics, tips, and tricks
  • discover new techniques in live coding sessions
  • reinforce the concepts you've learned in books
  • dig deeper into topics that aren't in books

We think Studio offers the best developer training around. But don't take our word for it. Just ask our alumni. Check out their reviews and applications they've built.

“Certainly one of the best training experiences I've ever had...The materials are good, the guys are experts and the entire thing was fun—which is hard to say about any training program.”

—Hunter Hillegas

What Should I Bring?

Laptop

You and Your Laptop. It wouldn't be a hands-on course if you didn't walk away having written some code. You'll be most productive on the laptop you use regularly. (On average, 60% of attendees bring Mac OS X, 30% bring Windows, and 10% bring Linux.)

A few weeks before the Studio, we'll send out detailed instructions for installing everything you'll need. During the Studio, you'll get hands-on experience working through prepared exercises, and experimenting on your own, too.

Your Registration Includes

  • A continental breakfast, beverages and snacks, and a hot lunch each day
  • A binder with all the printed material
  • All the example source code to refer back to later
  • Internet connectivity and power during the Studio
  • An invitation to our alumni-only mailing list for help after the Studio
  • Discounts on books, screencasts, and future training
  • A stylish Pragmatic Studio t-shirt and more!

Register