C# / .NET
Visual C# Express 2010 should give you everything you need to learn to program in C#.
If you really want to learn, especially on your own, you'll need interesting projects.
I don't think you should overlook doing some Windows Phone 7 Development to get familiar with the language and libraries in a fairly constrained environment.
If your high school allows it, see if you can set yourself up on DreamSpark.com and get yourself the XNA stuff, which (last time I checked) included a free membership that will allow you to develop stuff for the Xbox 360.
Microsoft's Coding4Fun blog might also be inspiring, although it seems to me that a lot of the projects are so esoteric that they probably won't teach very much, nor will they be interesting unless you have that specific piece of hardware.
Learning C is probably best done on a Unix-like environment as this is where the language has its origins. A modern GNU/Linux distribution will give you everything you need (you may have to install the development packages yourself) which is basically:
- a text editor (choose one; many like Emacs, Vim and Scite)
- a C compiler (GCC)
- a debugger (GDB)
Any distribution should have packages for these available.
Try solving the problems from Project Euler in whatever languages you are trying to learn. Solving these will help you think analytically as well as teach you language constructs and certain library features. Ask your mathematics teacher for help if you are stuck with the maths side of those problems.
Best of luck!