I’m going to buck the trend here - I don’t recommend starting with a book at all. Now, this is very much YMMV, but for me, getting into programming was all about having something I was excited about figuring out, and reading a book wasn’t it. I highly recommend getting yourself a project, and going from there - scripting other programs is a great way to learn the concepts, and also has the advantage of (usually) having simplified languages (ok, not compared to python {unless the scripting language is python}, but compared to C or Java).
I can’t recall exactly what my first programming project was (gimme a break, that’s at least a decade ago), but I know I was poking at the innards of video games pretty quickly. A lot of games these days have great scripting/mod languages, and whole communities you can ask for help. If video games aren’t your thing, a lot of graphics software comes with scripting access (3d especially, but also the Adobe suite), and Excel has Visual Basic for Applications. If you like animation, Flash is great for integrating programming.
If you really do just want to start from scratch, though, I can’t recommend Python highly enough. It’s much simpler than most programming languages, so there’s less ‘Oh, crap, forgot a semicolon’ nonsense, which is super-helpful at first. Another option is Processing - it’s a much less mature language, so there are some gaps in documentation and so on, but it has the really nice feature of having graphics built-in (and sort of being the point). It was designed as a programming language for non-programmers, so the graphic integration is very deliberate - for a lot of people, being able to see what your program does is more helpful than reading lines of output (or, god help you, trying to figure out graphics libraries).
But here’s a really important point: languages don’t matter very much. Honestly, once you’ve played with a half-dozen languages, you’ll have the concepts down, so getting into a new language is as easy as a help file and google. To my mind, it’s way more important to have something you’re excited about, and have fun doing, so you don’t burn out. If you find yourself staying up later than you should figuring out how to fix that one line of code, you’re in it for the long haul.