Anyway, that was a long ramble to tell you, learn what you want.
I think it essentially boils down to two schools of thought.
1. Learn at the metal first (C etc.) so you understand whats actually going on. Then if your looking to get some rad going move on to higher level stuff.
2. Essentially the opposite.
I personally think it comes down to your individual tolerance for learning curves. If its low go with option two but if you have the determination to slug it out old school go with option one.
As for specific languages, seeing as how this is a bactrack forum I would say C/C++ and python for low and high respectively.
vb.net for sure.
C sucks &*^%s. powerfull but its a real crap.
anyway you can do the same thing in vb.net it just take more line of code but a big way more easy
I believe they have an article on Wikipedia about VB.NET, you should really check it out: VB.NET
I learned on Python first, then C++ then C... then Perl (I know, i worked backwards)
Python was simple, and kind of useful for basic things... but C / C++ really were key in understanding pointers, file input / output, and most importantly of all! Seg faults... and why you get them
really though... learn with a high-level language first... but please don't get too attached to it. Use it to understandt he basics. Then I would STRONGLY recommend C++ for a much deeper understanding. It makes everything easier, especially moving to a different language if you ever have to... Perl has been a joke to learn because of what I learned through C++
If you are doing anything interactive then Expect is a great language to add to your toolkit.