My must-have book for learning to program the Arduino.
I highly recommend Simon Monk's "Programming Arduino: Getting started with Sketches" and the follow up book "Next Steps".
And heck! If you don't have an Arduino just yet, you can try one out virtually first! I like 123D Circuits by AutoDesk; however, there are many other simulators with Arduinos built in. Google them! :-)
Like it but don't like the $$$? You can make your own! There are many tutorials online for making a bare bones Arduino with cheap* electronics components.
I really like @schorhr book suggestions. To add on, the following books are great for Arduino beginners: Programming Arduino: Getting Started with Sketches & Make: Getting Started with Arduino. Also, great tutorials can be found here: tronixstuff Arduino Tutorials & Ladyada's Arduino Tutorials.
Good luck!