Learn Ruby The Hard Way Release 2.0 by Zed A.Shaw and Rob Sobers