We offer both introductory and advanced courses. The introductory courses assume that you have a programming background, but that you have little or no previous experience with the topic taught in the Studio. We teach the fundamentals to get you started in the introductory courses. The advanced courses assume that you have working experience with the core concepts. We teach advanced techniques, tips, and tricks in the advanced courses.

This is an advanced course. To help you determine if this Studio is a good fit for you, we've included a set of self-assessment questions below and ways to get ready. We're also happy to help you choose a Studio by e-mail or phone (303-523-2757).

Am I Ready?

  1. Are you writing Ruby code on regular basis?

  2. Do you have a good working knowledge of the Ruby fundamentals: classes, objects, methods, instance variables, blocks and iterators, and data structures?

  3. Is the following code familiar to you, and do you understand how it works?

    class Movie
    
      MAX_DURATION = 180
     
      attr_accessor :title
      attr_accessor :rating
      attr_accessor :duration
    
      def initialize(title, rating, duration)
        @title = title
        @rating = rating
        @duration = duration
      end
      
      def self.too_long?(movie)
        movie.duration > MAX_DURATION
      end
      
      def play
        if Movie.too_long?(self)
          puts "Skipping #{self.title} -- too long."
        else
          puts "Playing #{self.title} (#{self.rating} stars)"
        end
      end
    
    end
    
    class MoviePlayer
    
      attr_accessor :movies
    
      def initialize
        @movies = []
      end
    
      def play
        movies.each do |movie|
          movie.play
        end
      end
    
    end
    
    player = MoviePlayer.new
    player.movies << Movie.new("Iron Man", 5, 120)
    player.movies << Movie.new("Superman", 3, 190)
    player.play
    

How Do I Get Ready?

If you're not comfortable with the code above, we recommend a couple ways to prepare for this Studio. You could either attend the Ruby Programming Studio before the Advanced Ruby Studio or prepare on your own in the following ways:

  1. Read the book Programming Ruby and work through the exercises to gain experience with Ruby.

  2. Watch the Ruby Object Model and Metaprogramming screencast series to gain a better understanding of the Ruby object model.