Stephen Waits wrote: >I just finished my "Learn Ruby" talk for the programmers here at work. >(Game programmers, strong in C/C++). > ... > I'd very much like to improve the document, so any feedback is > appreciated. It also might be useful to others in my situation (teaching > Ruby to programmers). While we're on errata, the @instance_var in the section on Variables may be misleading to newcomers. In that scope, it's "one per instance" of the class Dismissed, and there will only be one of these. It's only in an instance method (e.g. initialize) that you will have a variable for each instance of the class. Again in the Idiomatic Ruby section. class Foo @instance_var = 0 # belongs to Foo itself def bar @instance_var = 0 # one per instance end end Mixins: LessThanOrEqualComparable#>(other) should be "not self < other and not self == other" >= should probably be not self < other Also, I'm surprised you didn't cover Range in the core classes. All you have to do is r = 1..5 #=> 1..5 r.class #=> Range r.each {|i| puts i } Under Everything is an Object, you didn't use is_a? kind_of? or superclass, and you didn't actually show that anything was an object. You did show everything has a class, and that Class is a Class. In particular, this is not implied by Object.class #=> Class. You can demonstrate it like this: "foo".kind_of? Object #=> true Class.kind_of? Object #=> true Person.superclass #=> Object Class.superclass #=> Module Class.superclass.superclass #=> Object Cheers, Dave