An object oriented language of choice. (I recommend C++, C#, or Java.)
A good programming IDE. (Eclipse is a good free solution for C++ and Java. For C# Visual Studio 2010 is going to be the best IDE, but can be legitimately obtained for free by High School and College students via DreamSpark or MSDNAA
A legitimate willingness to learn
The following is the first edition of the Basic Programming Concepts series of tutorials.