I'm a dabbler, not a professional, nor even an amateur. But...
If you want to familiarize yourself with basic programming concepts and practices just to see if you like it, then I highly recommend this resource:
http://interactivepython.org/runestone/static/thinkcspy/index.html
I've done the whole course, including every practice exercise, twice. It's very, very good. If you register, you can save all your code snippets. There's nothing to download; the course provides space to write and run code from the browser. The language it teaches is Python 3 which is a very versatile language, though not hugely popular. The important thing though, is that it's a very easy language to learn and forces you to develop good programming habits. Its syntax is clean and easy to read, making it very friendly to beginners though no less powerful than other languages.
If you know what you want to do, then you can consider learning a specific language:
iPhone apps: Objective-C
Android apps: Java
'Web' programming server-side: PHP, ASP.NET, Java, C/C++, Python, Ruby, etc. (depends on what back-end a website uses)
'Web' programming client-side: JavaScript
Web design: CSS, HTML, JavaScript
Video Games: C++, Java, C# (Microsoft)
Database: SQL
What's in demand? (Everyone seems to have a different opinion on this)
http://mashable.com/2014/01/21/learn-programming-languages/
http://www.lifehacker.com.au/2014/02/picking-a-programming-language-python-and-java-still-top-the-charts/
https://www.udemy.com/blog/best-programming-language/
http://www.techrepublic.com/blog/career-management/best-programming-languages-to-learn-on-your-own-time/#.
I've dabbled in Python, C++, {JavaScript, HTML, CSS} (grouped together because they all work together) and Fortran (many, many moons ago).
There are tons of resources out there for each and every language.