Hallo Kharg
Zunächst einmal zu der Frage ob Windows oder Linux(Ubuntu) besser für dich ist.
Unter Windows wird dir das Programmieren in mancher Hinsicht erschwert. Es fehlt dir einfach eine effiziente Kommandokonsole und auch viele Programme. Das hast du unter Linux.
Allerdings musst du natürlich auch mit Linux zurechtkommen.
Ansonsten nutzt dir das Linux nichts.
Wobei dir auch dabei geholfen werden kann.
Ich würde dir also Linux (Ubuntu) empfehlen.
Wie du das am Ende handhabst, ist deine Sache.
Unter Windows wirst du nur mehr oder weniger stark an Microsoft gebunden sein.
Dann zu deiner eigentlichen Frage, der Frage nach dem Compiler:
Grundsätzlich empfehle ich den gcc, Compiler wie der Visual Studio sind, wie schon erwähnt, auch nicht schlecht.
Der gcc läuft so von sich aus nicht unter Windows.
Möchtest du ihn also unter WIndows benutzen, musst du eine sog. Portierung verwenden.
Das ist eben
MinGW.
Du musst dir MinGW nicht unbedingt so einzeln installieren.
Du kannst ihn dir auch zusammen mit einer IDE (Integrated Development Enviroment) herunterladen, dann kannst du gleich mehr damit anfangen. Eine solche IDE wäre z.B.
CodeBlocks.
MfG
Daniel