Advanced Ruby Self-Assessment
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?
-
Are you writing Ruby code on regular basis?
-
Do you have a good working knowledge of the Ruby fundamentals: classes, objects, methods, instance variables, blocks and iterators, and data structures?
-
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:
-
Read the book Programming Ruby and work through the exercises to gain experience with Ruby.
-
Watch the Ruby Object Model and Metaprogramming screencast series to gain a better understanding of the Ruby object model.
