So do you want to just "learn how to program", or are you actually majoring in Computer Science / Programming at University?
Java is a really good (in my opinion) language to learn for beginners -- It's Object Oriented, which makes it a littler tougher to learn at first, but then once you're familiar with the language, really easy to visualize segments of code for larger projects.
You learn a lot of basic programming necessities along the way, such as datatypes, recursion, encapsulating your code, etc -- All things that you will learn that will carry from language to language. One really nice thing that Java has over a language like C++ is that all the memory stuff is handled automatically for you -- When you're done with an Object, just null out any references to it, and you're done! Other languages might require you to handle about allocating/deallocating memory yourself, which just adds to extra overhead of things you're trying to learn.
Now that's good if you just want to "know how to program" in general; if you plan on majoring in it, math is going to be essential -- Multiple semesters of Calculus, Physics, and Discrete Math, just to name some. If you're math shy, brush up now!
But yeah, for starters I would definitely recommend Java. To be totally honest (and I really don't want to be one of "those people", but here it goes anyway...) if you want to get serious in programming, I would not recommend trying to learn another BASIC type language. Not that I don't like them (I love them!), but because BASIC is very rarely used in any sort of academic field anymore -- The only exception really would be VB.net, but you really don't typically start out learning that in college -- It's almost always Java or C/C++ that you start with. That's just for your academics though, you should still keep DBPro handy for leisurely game programming!
As for compilers/IDE's, as was suggested before,
do not start with a full blown IDE like Eclipse or anything of that sort when you are just learning. Those are excellent for when you're already experienced, but number one they'll just confuse you with all the buttons and options, and number two a lot of the "tedious" code is automatically filled for you as you write -- Really handy for when you've got a large project to write, but really bad for when you're trying to learn the language and the program is writing the code for you.
TextPad is a nice free-ish (it technically costs money, but you can use the trial for as long as you wish, without limiting any of the features) editor that has plug-ins for compiling in many languages -- Sort of an "all in one" basic text editor/compiler.