You'll come away from this course feeling like a Ruby Master. You'll not just know Ruby in depth, you'll also understand why things are the way they are. You'll have moved beyond the basic toolbox of the average Ruby developer—you'll be able to exploit the libraries and constructs the true pros use to make their code powerful, compact, and fun to work with.

Learn how to:

Gain best practices and Advanced Ruby Programming Techniques.

Solve real problems using Ruby like a pro.

What the community says

"The course material was great and comprehensive. I walked away with so much new knowledge and even better, a huge list of things to look into and learn."

David Naffis on 25th Apr 2014

About the Author

Dave Thomas is recognized internationally as an expert who develops high-quality software--accurate and highly flexible systems. He helped write the now-famous Agile Manifesto, and regularly speak on new ways of producing software. He is the author of six books, including the best selling The Pragmatic Programmer: From Journeyman to Master (Addison-Wesley) and Programming Ruby: A Pragmatic Programmer's Guide (Pragmatic Bookshelf).

Thanks to our partners

Object Oriented Design in a Dynamic Language

Ruby is different than the languages you're used to. If you're still using the techniques that work with those languages, you're not exploiting the power of Ruby, and you're writing more code than you need.

Reuse mechanisms unique to Ruby and dynamic languages

Modules and mixins

Composition and delegation

Runtime class extensions

The Ruby Object Model

Understand the underlying object model in Ruby, and everything falls into place. By truly understanding the Ruby object model, you'll be a better Ruby programmer.

The internals of objects and classes

How classes really aren't anything special

Why self is important, and how it changes

How methods are called dynamically

Meta-programming

Metaprogramming lets you program more expressively. It makes your code easier to write and easier to maintain and extend. You'll learn how to apply Ruby metaprogramming techniques to your advantage.

How blocks act as closures, and why that's vital to metaprogramming

Creating methods on the fly using define_method

Evaluating code at runtime using eval, instanceeval, and classeval, and when to use one versus the other

Advanced Programming Techniques

Using reflection to discover and inspect classes, inheritance hierarchies, defined methods, and instantiated objects at runtime

Hook Methods

Ruby hook methods are a way for your application to hook itself into the execution of the Ruby interpreter. Using hook methods is crucial for some kinds of metaprogramming, and they can make your code more flexible.

Mixing methods into classes using included

Decoupling code using inherited to keep track of subclasses

Using method_missing to create magic methods

Applying const_missing in both global and localized situations

Practical uses for hook methods

New Ruby 2 Features

As a Ruby programmer, you'll want to stay on top of all the new syntax and language features.

Overview of the new classes and libraries

Major changes to String

Keyword arguments

Lazy enumerators

More powerful regular expressions

Multi-nationalization of code and data

Fibers and threads

Refinements

And more!

Real-World Ruby

We may know all the secrets of coding Ruby, but we still need to make it work in the real world.
- Performance
- Debugging and Profiling
- Practical tips, tricks, and techniques

In addition to the prepared topics, you'll have time to ask questions and spark discussions with other experienced Ruby programmers.

Audience

Intermediate Ruby Programmers (1 to 2 years experience).

This course will be a good fit for you if:

You have a good working knowledge of the Ruby language, but you want to take it to the next level.

You've tried what you consider to be advanced features in Ruby, but you want to understand when and how experts use those features.