Dear 100 Hour Board,
Way back in the day, circa 2002, I took a basic programming class in high school where we learned the beginnings of C++. We used Visual C++, very expensive software, to write, compile, and debug our programs. These days, it seems common for individuals and even children to teach themselves how to program at home. But I doubt they're all using a program like Visual C++. My question is, what DO you use to write, compile, and debug programs if teaching yourself at home? Free software you can download? Inexpensive software for purchase? Does it vary widely by language? I'd like to refresh what I did know about programming (very little) and learn more--maybe even take a community college/university programming class if I decide I like it enough to apply to the U's Biomedical Informatics master's program. Any other suggestions for someone who has an inkling of programming, but hasn't touched it in over a decade, would be welcome.
-Owlet, with thanks to Laser Jock, who has a lot more info below and pretty much wrote my answer too. He's the bomb.
Dear Future Programmer,
You're right, programming has gotten a lot more accessible; there's a proliferation of free software that you can use instead of having to rely on something commercial (and expensive). Owlet pointed out a good free one for Windows (Visual Studio Express); you can download a version for each of several different languages, including Visual Basic, C++, and C#. These provide you with both an IDE (integrated development environment, or a program similar to a text editor that gives you code completion, syntax highlighting, and other nice programming-related features), and a compiler. You don't have access to all of Microsoft's APIs, as far as I can tell, but it's still not bad for Windows. This would be most similar to what you used before.
For most of the IDEs I listed you'll also need a compiler, which fortunately is easy too. One of the most widely used compilers is probably gcc, which supports C, C++, Objective-C, Fortran, Ada, and Go. It's available for Windows via MinGW and Cygwin. Most other languages also have free compilers/interpreters: Java, Perl, Python, Ruby, PHP, Scheme, etc.
Personally, I tend to use Eclipse quite a bit for Java and Python; for C, I've mostly just used a plain text editor and gcc on the command line (I haven't written any huge C programs); and I'm trying out Ruby lately, using a customized version of Eclipse called Aptana Studio that has nice support for Ruby (and Rails).