Learning to Program
If you're just starting out with programming, you should pick a language and start working through a free tutorial. It doesn't matter too much which language you pick to begin with, but if you don't have a strong inclination either way I'd recommend that you try Python or Ruby. They're both accessible, highly useful, and (should you ever fancy programming professionally) have buoyant job markets.
I've linked to a couple of tutorials for Python and Ruby below. Which you'll prefer is largely a matter of taste, so it's worth exploring them both for an hour or two before making up your mind.
If you're new to programming I'd recommend that you start with the official Python Tutorial first and see how you get on. Also take a look at Zed Shaw's Learn Python the Hard Way -- which takes a slightly different approach -- and see which works for you.
If you've already got some programming experience then I'd definitely recommend Mark Pilgrim's Dive into Python. I read it many years ago and learnt a lot very quickly.
You can try Ruby immediately in your web browser at http://tryruby.org/.
If you fancy a highly entertaining read, whilst learning Ruby as you go, make sure you check out Why's Poignant Guide to Ruby. It's free.
I've been meaning to get around to playing with Erlang for a while now. Tonight I set aside 30 minutes to watch the first of the Pragmatic Programmer's Erlang Screencasts by Kevin Smith: Erlang By Example.
Each screencast is very reasonably priced at $5 a piece. I bought the first one, in which you learn how to build a simple chat system.