This is an excellent question, and a common one as well. The first thing to note about learning how to program is that learning programming languages is very different than learning spoken languages. If you’ve learned Spanish and now you’d like to learn Japanese, you’ll have to start again from scratch. But with computer languages, you are not learning a particular language as much as you are learning how to talk to a computer. There are general programming paradigms that hold true across all computer languages. So the skills that you pick up while learning one computer language easily transfer to virtually all other computer languages.
Now that we’ve determined that all languages are fine choices, what should really drive your decision is which language will be easiest to learn. This may actually depend on external factors more so than inherent features of a particular language. Let’s say, for example, that Python was inherently easier to learn than C++. However, you may have found that there’s a C++ course in your area. You’d probably be better off going to the C++ course, as it’s generally easier to learn in a classroom setting than it is to learn on your own.
Let’s now assume that you’ll be learning on your own or that all external factors are equal. The key factor to take into account is which language will provide the easiest learning curve. You don’t want to quit learning to code just because the syntax of your chosen language is particularly mind bending. If possible, you also want to choose a language that might have some inherent motivating factors built into it.
There are actually couple of great options to choose from. If you are interested in getting your feet wet and learning what programming is all about, Ruby makes for a great first language. Ruby was specifically designed to be intuitive to use and resemble English as much as possible. Python shares many similarities with Ruby and is another excellent choice.
However, the drawback with languages like Ruby and Python is that it’s difficult to build real things with them unless you use them in conjunction with more advanced technologies like Rails or Django, and learning those as well may be a bit much if you are brand new to programming.
There are many excellent resources out there for most programming languages. Simply Google the name of the language and words like ‘tutorial’ and ‘beginner’, and you’ll quickly find many high quality resources.