To get the basics down, I'd recommend
http://codeacademy.com,
http://teamtreehouse.com/, or a
http://udemy.com or
http://lynda.com course.
I'm self-taught as a youngster, just pure curiosity, started in Visual Basic 3.0 to 6.0, and eventually Visual Basic.NET, and eventually got into web design (PHP, Javascript).. but I have no idea what would've been had I learned it later in life. But my girlfriend has used codeacademy.com in the past to learn the basics of javascript, html, css, etc.
While these are definitely good learning areas, the best way to learn is to have a real assignment in practical application. In other words, it would be coming up with a few applications that are useful.
To-Do lists.
Reminder lists.
Building a contact form.
Learning how to use and implement API.
Learning how to connect and utilize a MySQL database.
As for what program to learn? It is best to look up whats in demand and what is likely going to be in demand in the future. And for that, I could only suggest learning Ruby, Python, or Java/Javascript.
Go, R, Swift, C++, C#, C, PHP are all languages that wouldn't steer anyone wrong, either.
Learning the basic concepts of at least two different programming languages and syntax are especially important. If you can grasp the concept of at least two, you can most likely learn them all and it wouldn't be much of a hard transition for any of them.