Ich entwickle und arbeite nahezu ausschliesslich unter unixoiden Betriebssystemen, meist GNU/Linux oder Mac OS X, häufig auch über SSH auf entfernten Systemen. Für einfache Skripte nutze ich teilweise bash, für komplexere Aufgaben aber relativ bald Perl oder auch Python, weil diese in der Shell zwar eventuell möglich, aber häufig wesentlich weniger intuitiv und damit zeitaufwändiger zu erledigen. Perl lässt einem als Entwickler sehr viele Freiheiten, sowohl in syntaktischer wie auch in semantischer Hinsicht, was sowohl ein Vorteil (für kurze Skripte) als auch ein gewaltiger Nachteil sein kann (für komplexere Anwendungen, welche auch nach Jahren noch wartbar sein sollten). Python bietet eine kaum überschaubare Vielfalt an Zusatzbibliotheken für praktisch jeden Anwendungsfall, von Web-Automatisierung über Bildverarbeitung bis hin zu wissenschaftlicher Datenverarbeitung mit SciPy/NumPy/Matplotlib. Mit einem GUI-Toolkit eignet sich Python auch zur Entwicklung komplexerer GUI-Anwendungen, sofern diese nicht sehr performance-krtisch sind.
Für C++-GUI-Anwendungen nutze ich ebenfalls Qt, was allerdings mit QtCore, QtNetwork, QtXml u.a.m. weit mehr ist als `nur` ein GUI-Toolkit. Speziell das Signal-Slot-Paradigma als Form der ereignisorientierten Programmierung scheint mir für die Behandlung der verschiedenen GUI-Events sehr sinnvoll.
Abgesehen von den oben erwähnten Sprachen entwickle ich bei Bedarf auch in PHP, HTML, JavaScript (auch für serverseitig in Form von node.js), x86-Assembler, Java, MATLAB, LabVIEW und einigen anderen. Nicht jede Sprache ist für jeden Anwendungsfall gleichermassen geeignet. Zum Einstieg würde ich inzwischen im Allgemeinen Python empfehlen, da sich aufgrund der vielen Erweiterungen und Bindings schnell Erfolge erzielen lassen, einem der einrückungsbasierte Block-Stil eine saubere Code-Formatierung aufzwingt und man sich zu Beginn nicht mit eher komplexen und vor allem fehleranfälligen Themen wie manuellem Speichermanagement und Pointern beschäftigen muss.
Unter Windows kann ich Brother Johns Empfehlung, ein Komplettpaket aus einem Edtior/einer IDE, einer den benötigten GNU-Tools (Compiler, binutils, make, autotools, python, etc.) und ggf. unterstützender Bibliotheken zu beziehen, nur beipflichten. Eine Toolchain manuell zu installieren ist unter Windows ohne Vorwissen problematisch. Unter GNU/Linux bietet sich an, die Pakete aus den Repositories zu beziehen, wobei eventuelle Abhängigkeiten automatisch aufgelöst werden.
Ich persönlich nutze kaum IDEs, sondern einen simplen Texteditor und die Shell.