If you want to learn programming you should definitely start with C. Why? Because it will teach you what is going on under the hood. You will learn stacks, pointers, arrays, etc... This will give you a good foundation. It will help you learn good programming style so when you want to learn other languages such as java, C#, etc... the understanding will come fast.
Visual basic is a great rapid development programming language. If you just want to pump out an application without really caring about learning "programming" then visual basic is a good choice for a language.
Here is a good compiler for C
http://www.mingw.org/download.shtml
I would recommend getting the book
http://www.amazon.com/Programm...&qid=1204389667&sr=8-1
and as a supplement (advanced)
http://www.amazon.com/Programm...&qid=1204389667&sr=8-2
Those are the best two book for C on the market in my opinion. The first one will guide you through the language. After you know those concepts the second book will increase your understanding of those concepts.
The best way to learn a programming language is to set deadline dates of certain programs you want to make.
I would start with these:
1. Finding Prime numbers
2. Find Prime numbers and print it out as a matrix
example
3 7 13 15
17 19 23 29
You can also learn visual basic at the same time. That can be the language for making those cool applications, like games, etc... since it is so easy.
I've made a lot of cool visual basic programs and I never read any books on visual basic. It's funny. I started with C++ then wanted something more low level and learned C. I feel in love with C. Then any program I wanted to make in visual basic just made sense. It's really forgiving. If I had a question on how a certain thing such the syntax for for loops in VB I would just look it up online really quick.
Good luck.