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.
This article by Michael Herman provides some details on the different styles of both languages.
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/.
I learnt Ruby from Programming Ruby, which is now in it's fourth edition. The first edition (which covers a much older version of Ruby) is available for free online.
If you're new to programming I'd recommend the Learn to Program tutorial, which has since been expanded and converted into a book.
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 love feedback and questions — please feel free to get in touch on Mastodon or Twitter, or leave a comment.