Reply to comment
It's a real jungle you're about to enter, so I feel very inclined to give you some advice.
You asked for one's motivation. A lot of people are motivated by money, and those mostly end up doing what they wanted: churning out lots and lots of mediocre code for a monthly salary. My personal motivation is using the computer like I would use a musical instrument: as a means to give my ideas and creative urges form, along with the kick of writing beautiful code. Others just like to fiddle around with the innards of the machine all day, moving stuff from one register to another.
If you think that the reasons for your wish to learn programming is akin to mine, I have more advice.
Use a sensible language. Don't use C, C++, Java, PHP or Perl. Try Ruby, Python, Haskell, Scheme or Common Lisp (the latter one being my personal favourite after years of draught). The Icon language is also nice for beginners. Stick to one language at the beginning.
Using the command line and programming small scripts is also a good way to get started, but not for everyone.
In any case, try not to rely on IDEs. Use a good editor that you feel comfortable with. If a language is almost unusable without an IDE (think Java), kick it out of the window.
Start small and experiment. Feel what it's like to expand your capabilities with each new language construct you learn. Feel the goodness of looking at and using your creation. Try to do something with nice graphics to aid you in this, especially if you're an artsy person (the aforementioned Icon gives results here very quickly[1]).
If you don't succeed on your own, send me a message (polzer@gnu.org) and I might be able to help you.
Good luck! :)
Leslie

There's a lot that can go wrong
Leslie (not verified) — Fri, 02/22/2008 - 05:46