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.
-Future Programmer?
Dear Programmer,
I downloaded Visual Studio Express for free for a class, and it's not limited to students. You can find it here. If you're interested, you can try the full Visual Studio 90-day free trial here.
-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.
However, you have other options, too. Curious Physics Minor suggested Eclipse, Anjuta, IntelliJ, and NetBeans (and there are more!) for IDEs. NetBeans is a good alternative to Visual C++ for C/C++ support, and it also has great support for Java and PHP. Eclipse is focused on Java, but is great for a number of other languages too, with plugins (I use one for Python for instance). IntelliJ is focused on Java but supports more languages than I can list. Anjuta is for Linux and supports C, C++, Java, JavaScript, Python and Vala. As you can see, the list goes on.
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).
—Laser Jock