Start with a BOOK... Find one that covers something that interests you and "learn" from that. . .
My Quickbasic, Turbo Pascal, DBase, C, VB, Perl, and Fortran 77 books hardly ever get used, but lots of times, code samples save me from rethinking or redoing -- all i have to do is translate. . .
Anyway, as an example, I just had to dig up the old family tree stuff for a project my daughter had for school... its in a DBASE database - the only thing that it would print to is LPT1 - I tried getting windows to capture the port, it wouldn't print to my USB printer. . .
I was about to load dbase or the compiler to change it, but that was way too much work... I could have finished the conversion that I started to C or VB, again way too much work...
I have a little utility from a 1987 PCMAG written in ASM (prn2file in case your interested...), that i kept around that allows you to redirect LPT ports to a file...
BAM ... done. . .
The important thing here is not WHAT language you learn but WHAT you want to do is START... Build a toolkit, take the resources you have and use them when appropriate. . .
VB is great because it shields you from alot of the windoze API's but you eventually will need to learn them to get windows to do things the way you want it to . . . hence your journey into C...
I have never started a C or ASM program from scratch . . . Always started by changing an existing program. . .
In Linux, C, perl, python PHP, etc. . . ANJUTA is quite handy . . . and lots of source code is available for you to pick apart and change. . .
If you want something "Portable", try Python (*if your thinking about website stuff, try PHP*). . .
If you want something real easy, try VB. . . You will eventually get learn other languages... trips start with a step toward the car. . .
In any case, get a book on something and start there...