See how your post is quickly turning into a passionate debate :)
I've used Ubuntu for two years since version 10.04 Lucid Lynx and that's what I'd recommend you to use (current version 12.04.1) with classic GNOME. It's the most popular distribution with a great support, most of the questions...
Their tutorial is nice as it gives a beginner a quick birds-eye view of language capabilities but it's not nearly detailed for the job. If you are a CS major it's all should be familiar to you. No tutorial on STL (as Duffy said). Their Reference section was very useful however they still haven't...
IB does offer FIX. It's on their website:
But FIX is complex, you'd be better off using their proprietary API. I am using FIX because I am running Linux.
It depends on broker what sort of API they offer. Retail brokers usually do not offer FIX because it is complicated to program, most of the time they offer some kind of proprietary API. Which broker do you have in mind?