I started way back when I had a ZX-Spectrum. I played with the build in BASIC and guess the best thing I made was a small game with dices. I learned the BASIC by typing over listings from magazines.
Then I moved on to an MSX2 (later upgraded to MSX2+). I started with BASIC again, but together with a friend we made more and more complex games which became really slow when using BASIC. I then learned assembler code by just using a assembler coding program, a Z80 machine code book and a few pages from a magazine with all the BIOS hooks in it.
After that, I moved to hardware for a long time. Then the need came for an application at work that nobody knew how to make. It was for detecting hardware in a PC and then installing drivers/software for it. I build that in Visual Basic 6. This time I learned it from looking at examples on the internet, taking parts I could use and build upon that.
And then, the big moment, I got the idea for BOINCstats. Believe it or not, but the first few weeks BOINCstats only was a collection of static pages, no database, php, perl or whatever at all. The stats were calculated on my home server in VB6. I quickly found out that was not the way to do it, and I started reading in on PHP and MySQL. I messed around with it, took bits and pieces, examples if you wish, from the internet and well, you see the result. This started about 5 years ago. For BOINCstats I learned (from scratch) PHP, PERL, MySQL, JavaScript and Linux shell stuff.
During this time I got the hang of it, and at work I transferred from the technical department to operations, which does application/website development and systems management. I learned the new new versions of Visual Basic, but I'm having some trouble with C#. Tried it, doesn't work for me. I also did some 8080 assembler but never had to do much with it.
So that's the short version of how I learned to program.
But why do it?? The drive for me is the working end result, seeing it used by others. That's the kick for me.
So my advise: start with something simple, be proud of the result, then expand on it.
Please do not PM, IM or email me for support (they will go unread/ignored). Use the forum for support.