If you've never used a compiler, the first can be a little overwhelming, but now that I've started using N++ with G++, it is better to learn that way. Just my two cents
Edit: Code::Blocks is also part of the GNU project and is also free.
DreamSpark is Microsoft's student software deal. All it takes is a .edu (or equivalent) email address. I have my copy of VS2010 Professional through this, and paid nothing. So yes, students do get free stuff from Microsoft.
A lot of companies do this. I got a3DS Max from Autodesk for free a few years.
Now, I am not about to try checking out, one because I don't have $500 to waste on MSVS Pro, and I don't have a student email to try to see if it works.
I went to dreamspark.com and I believe it might only be that way with certain universities. I know a lot of schools around here don't offer programming, or offer minimal courses at best. Maybe they have something set up that the school pays $100 per student, read: is included in your tuition, and then MS gives the copies to the students for free.
I personally stay away from MS software. It's more flashy and CPU intensive then I feel is nessecary. Plus, 90% of the posts I've seen on here since I've joined is about people having issues with MSVS or MSVCE and creating the correct projects, etc.
Ah you're right. The school has to have a subscription of sorts for their students to access DreamSpark. So, if you're going to school for a CS or CS related program, check it out cause you likely already paid for it (indirectly).
All this aside, I'm quite fond of Code::Block. It's free, does the job, and runs faster than VS, imo.
I <3 Code::Blocks, but I've recently switched to N++ with MingW...I love it, just, I haven't quite programmed with it yet, I'm still customizing everything. It's so much faster than Code::Blocks...and a lot smaller. You do need to know how to run the compiler from a command prompt, but it's a lot easier than I thought.
There are a few things that require some head banging against walls, but once you get everything working right, the options are endless. I currently have a nice interface than what Code::Blocks had, minus the pretty auto-complete. I don't need projects anymore, which is dumb imo, and I have everything i need within two clicks of my mouse.