Self referst to the instance of a class it is evoked from. Or in other words, it allows you to address methods on its own instance. This feature is not normally required in ruby. It is most usefull when a method's name is ambiguous between instance methods, and other methods that are in scope.
Self can also be used to define class methods, for example