Back when I was thirteen I bought a copy of C for Dummies in my local Oxfam shop. I learned a little but gave up half way through.
More recently I've been reading Sams Teach Yourself Java 6 by Rogers Cadenhead and Laura Lemay. I also have an up-t0-date copy of Sams Teach Yourself C++ Liberty Jones on my desk.
Another textbook that's floating around somewhere is PHP 6 and MySQL 5 Visual Quickpro Guide by Larry Ullman.
In short I've made my usual mistake of not focusing on one language and letting myself get distracted by other projects.
The motivation behind my interest has always been my desire to more fully understand the computer I use so much.
Cory Doctorow commented, in this review of his recent book, that:
"Even if you only write code for one day, one afternoon, you have to do it. Computers can control you or they can lighten your work — if you want to be in charge of your machines, you have to learn to write code."
Which is good advice, I guess. Chris Applegate has written a brief guide as to how you might start off, and recommends Python as a good place to start:
Python (along with Perl) is one of the few languages I haven't dickered around with at some stage.
If you work in any information industry, or are thinking about a career in it, learn to code. And by code I don’t mean learn something hardcore like Java or C++, or even learn a full programming language (as you’ll see below). But it means getting above the usual abstractions you see - your web browser, Word, Excel - and getting involved at a deeper level, get to appreciate what the data it is you’re reading and realise it’s not just something to look at.
I think that the important thing is that I focus on one language at a time.