My cousin graduated last week and asked me if I could get some resources together for him to learn to program. He's interested in taking it as a major in college, but doesn't know if he'll like it. Hopefully these will help him out. If you're in the same situation, these can obviously help you out as well.
Code School is one resource I am currently using to learn Ruby. They have great courses where you watch a video discussing a topic and then have an interactive session in the browser that validates what you have done. For absolute beginners, it is recommended that you start with the Try Ruby course.
Code Academy is another great resource. They focus more on frontend web development, which could be seen as more of the presentation that the user sees. This is opposed to the backend which deals more with the storage and processing of data. This is still a great way to get started and dip your toes in the programming pool.
Dive In
That expends the actual teaching sites I know of. The other way is to just dive in and start with some tutorials. Nettuts+ is a great site, and they even have a PHP tutorial track. I think PHP is a great way to get started, since it is a pretty forgiving language.
The key is to learn whatever you can whenever you can. Ignore the common refrains of "You shouldn't learn X, you should learn Y instead. It's a better language." Learn both and decide for yourself.
My last bit of advice, start a blog. Then blog about the things you're learning and the troubles you've encountered. You'll be able to look back and see how far you've come. Plus, you may help someone else along the way.