Getting started with zero experience

I don't have any experience or anyone to teach me. So far, the most advanced thing I've done with my Uno is make a button turn a LED on and off, and that was with a tutorial. Everything I read seems to assume you have some sort of prior knowledge and I simply don't have any.

Are there any good books for people like me?

I don't think a book is the best way to learn this stuff. I recommend the hands-on trial and error process. Start with the blink sketch(File > Examples > 01.Basics > Blink). Go through the sketch line by line and make sure you understand what everything does. If there's something you don't understand get on Google and start searching until you do. The Arduino reference page has a lot of information but don't limit yourself to only that one. You're going to find some bad information mixed in with the good but this is a valuable lesson in itself. Don't just blindly believe anything you read, whether on the forum or in a book. You need to develop the ability to search for information efficiently and critically evaluate the results. At first this may be a slower process than reading a book but as you progress in your explorations internet searches will inevitably become your primary source of information so you might as well use it from the start.

Next, use your understanding of the Blink sketch to make some modifications. Make the LED blink faster, make it change blink speeds, make it blink randomly. You can actually have a lot of fun with just a simple LED.

Continue this process through the examples. You don't necessarily need to do every example as some may deal with subjects that aren't useful to you but definitely learning the basics like digitalWrite(), digitalRead(), analogWrite(), analogRead(), debouncing, and Serial.print() as well as general programming functions are essential.

Everything Pert said is absolutely right - there are fantastic references on the internet!

But some people love their books, ya know. If you're one of them (us), then check out Programming Arduino (vol1) Getting Started, and (vol 2) Next Steps, both by Simon Monk. He's got a personal style that delivers information pretty quickly - gets you up and running, fast.

If you don't know C (or C++) at all, check out Jack Purdum's Beginning C for Arduino.. Plan on a couple weeks or so before you know what you are doing. Or, if you've seen C, Java, Javascript, or maybe Pascal, or even a structured Basic, just muddle along with whatever examples you find. Either way, you'll do fine.

Even I am moderately familiar with C++ and Java and there is still a pretty steep learning curve. I've read the guides checked out some youtube videos but really all there is to it is trial and error.