If you are relatively new to *Mathematica*, I would definitely pick up a copy of ["Programming with *Mathematica*: An Introduction"](http://www.amazon.com/Programming-Mathematica-Introduction-Paul-Wellin/dp/1107009464/ref=sr_1_1?ie=UTF8&qid=1367686593&sr=8-1&keywords=mathematica+programming+paul+wellin) by Paul Wellin. This will give you an excellent starting point and solid foundation before you progress to more advanced material. I am still working my way through Paul's book, but it has been well worth it and has really opened my eyes to the power of *Mathematica*.