This tutorial was recommended by someone I trust on another site. I haven't worked through it myself but read the intro, and I think it looks promising. If it appeals to you and is appropriate for your current programming skill level, please try it out, and let us know what you think.