Thanks for a wonderful article Dave. I do have a question for you though. You said that you wanted to improve your problem solving skills in object oriented way of thinking. So why did you chose Ruby for this language? What do the other languages lack that you chose Ruby over them? Could it be the choice was random? I doubt that's the case though.
Also, it is same in writing. You read a finished book, and you think "What a wonderful author! I could never write like that."
In reality, the original draft is riddled with tons of mistakes and errors, but you never get to see that side.
Source: I'm a blogger and a small-time author.