Learn Ruby The Hard Way by Zed A. Shaw