First of all, best is relative to the task at hand. You have to use the proper tool for the job. What may be best for me, is not for you, because of how we personally think. However, it is a good starting place.

Get rid of Windows! Visual Basic is not x-platform and if you really want to hack. The skills, if you want to call them that, are not really going to help too much because of the lack of being able to transfer them legally to others in the computer world.
The recommended BIG five: Python, C/C++, Perl, LISP and Java. These are probably the most important hacking languages and each approach will hone another skillset in a valuable way.   
A lot of people forget a big one. In our generation the Internets have changed how we live, work, and converse with one another so having XHTML in your bag of tricks will enable you to communicate with other programmers throughout the hacking world.
Now how do program if I can’t use Windows? There are plenty of free OS’s available to choose from: Linux, BSDs, Solaris and others. Pick one and use it daily!
Don’t think there is a Cliff Notes to programming because there is not. Most likely it will take about 10 years or so to become proficient at the languages you choose. That pretty close amounts to about 10,000 hours. How do I program? Hang around IRC, forums, USENET, find a project you enjoy and start contributing. You will never be a true hacker without sharing with others in the computer world. When those who are more skilled start referring to you as a hacker. You haven’t arrived; you’ve just started your journey.
Definition of Hack/er: One who constructs computer applications or helps others find deficiencies in their software and helps protect the data therein.
Definition of Cracker: One bent on destruction of someones hardware and/or software and using the information gained for personal gain.

Powered by Blogilo