Josephus, I think you're starting well in the way you've asked the question -- as opposed to others that Ehtyar linked to, that asked simply what language to use, since that's only one part of the question.
It's like saying "I want to learn how to drive" is better than asking "how do you use the steering wheel and brake?". There are so many other factors: understanding traffic control devices and the rules of the road; vehicle dynamics; etc.
Extending the analogy, then, to learn software development you must obviously learn a particular language. But there's so much to learn beyond the language itself. You should also be looking for an understanding of data structures and algorithms (e.g., how does one sort a list?; what's a linked list for and how do I create one?), design patterns (common solutions to the problems that recur frequently; I recommend the book of the same name by Gamma et al), understanding how operating systems work, and so forth.
-CWuestefeld
*sigh* Had you bothered to check any of the links, you'd have found the
first is a link to article discussing the best beginner languages. And your contribution to his question is...?
If your idea is to progress, I'd recommend something like Java or C#. A good start could be a web technology like php, if you intend to follow that path.
Anyways, even though autohotkey (the language mostly used here at DC for making coding snacks) is a great language for making fun and useful stuff, it really isn't very good for those that want to progress, as it's pretty limited.
-jgpaiva
Although I personally detest the philosophy of C#, and find Suns behavior regarding the development of Java as a language appalling, I must agree that both languages offer possibly the best opportunities for money making, and an understanding of object oriented programming.
However, nither language will offer you the possibility of creating your own operating system, and they have limited scope in the freelance market; they're geared more toward the corporate money-clinging types in the business arena.
In short, these two offer excellent learning potential, but they don't fit well with your future goals. I suggest picking one, learning it, then reassessing your goals before choosing a more powerful language to work with.
Ehtyar.