The way I learned is just to take others people code, get a book on the language, and sit there and go though there code. Figure out what does what change stuff and see what happens. Doing it this way can be annoying as you will get errors out the arse until you start getting a good feel for it, but IMO its the only way to truly learn outside of a classroom. Sure you could just get a book on the language and read it straight through, but you might truly retain 20% of the information from the book by the time you finish reading it if you dont experience it first hand.
If your just starting though you should make up your mind now, do you want to be a serious programmer or a hobby programmer? If you want to be a serious programmer I would recommended starting in C++ or dropping back to older years and learn Assembly. They will be tougher to learn but will you give you a strong programming base to build on. If your just going to do it as a hobby you could learn Visual Basic much quicker and easier. I'm not knocking VB or anything, but it's plain fact that its easier to learn and a little less powerful than C++, but most hobby programmers will never outgrow VB. Also an advantage to learning VB.. if your planning to write scripts for XU, vbscript is what you would want to use. It has some differnces over the regular VB but the syntax and the coding and most of the functions are the same, so you would not have to learn C++ and then also learn a scripting language.
Thats my opinino on the matter
