Learning Ruby the hard way: http://ruby.learncodethehardway.org/book/