Nun zunächst einmal solltest du Programmieren lernen und den Gedanken mit IT Sicherheit nach hinten stellen für ein paar Jahre. Zum programmieren lernen kannst du Prinzipiell jede Programmiersprache nehmen, ich denke es ist für dich und deine Interessen sinnvoller eine Native Sprache zu lernen, da du so mit dem System viel näher in Kontakt kommst (als z.B. bei .Net wo eine Virtuelle Maschine dazwischen hängt) und du auch so die Eigenschaften der Systeme selbst lernst.
Ada zum Beispiel ist eine Programmiersprache vom US Verteidigungsministerium unterstützt zur Entwicklung sicherheitskritischer Anwendungen. Der Ada Compiler ist teil der GCC (GNU Compiler Collection) und somit auch frei zugänglich. (Wobei sicherheitskritisch eher in den Bereich Fehleranfälligkeit fällt).
Du kannst aber natürlich auch mit jeder anderen Sprach anfangen. Andere verbreitete (native) Sprachen sind C, C++, Objective C (eher nur Mac OS, auch wenn es Cross verfügbar ist), Pascal, Oberon, Fortran, Assembler (
keine Hochsprache), Smalltalk und viele Weitere, wobei man die meißten Programmiersprachen eigentlich in: C-Artige Sprachen, Wirthsche Sprachen, Basic artige Sprachen und der Rest (Sprachen die größtenteils Unikat sind so wie z.B. Smalltalk) unterteilen kann.
Du kannst natürlich auch problemlos nicht Native Sprachen lernen wie z.B. Python, Ruby, Perl, Java, C#, VB(.Net), etc. An den Konzepten der Programmierung ändert sich nicht viel, nur wer halt in C für Unix entwickelt lernt durch das C lernen allein schon eine menge über z.B. das Dateisystem oder Socket System, etc von Unix, womit z.B. ein Java Entwickler eher selten in Berührung kommt, da dieses auf viel höherer ebene Abstrahiert wird
Neben diesen Imperativen Programmiersprachen gibt es auch noch Funktionale und Logische Programmiersprachen, wie Haskell oder Prolog, aber ich denke diese fallen eher weniger in deinen Interessensbereich.
Im Gegensatz zu dem was tayfe geschrieben hast benötigst du für
keine (mir bekannte) Programmiersprache eine IDE. Eine IDE (Integrated Development Environment) ist ein Programm, eine Art Toolsammlung zur Anwendungsentwicklung, dazu gehören meißt:
1. Ein Editor mit so fancy Funktionen wie Syntaxhighlight, Code Vervollständigung, Code Jumps, sowie das Handeln mehrere Quellcode Dateien
2. Ein Interface für den Compiler, die IDE übernimmt die Funktion einer Grafischen Oberflache für den Compiler mit der einfach Compilereinstellungen gesetzt werden können und die Compilerausgaben aufbereitet und Dargestellt werden.
3. Ein Interface für einen Debugger, zur simplen Steuerung des Debuggers und dem Darstellen des Codes wärend dem Debuggen
4. Ein Projektsystem mit dem man verschiedene Dateien, Compiler-und Debuggereinstellungen in Projekten zusammen gespeichert werden können.
Dazu können IDE's noch über tolle Tools wie SVN oder Git Unterstützung, Tools zur Teamarbeit, GUI Builder, etc. verfügen
Und damit sind IDE's zum Produktiven Entwickeln ein nahezu unverzichtbares Mittel.
Aber ich bin der Meinung dass man zumindest am Anfang so etwas gar nicht benötigt, eher sogar dass eine IDE die viele Fehler präventiv, durch z.B. die Code Vervollständigung, behebt dem lernen der Syntaktischen Eigenheiten einer Sprache entgegen wirkt (wie soll man wissen wie ein Ausdruck Syntaktisch korrekt ist wenn man noch nie ihn selbst geschrieben hat weil es IDE immer für einen macht Übung macht den Meister) und da empfehle ich eher Simplere Editoren mit "nur" Syntaxhighlight und wenn nur eine ziemlich beschränkte Code Vervollständigung. Unter Windows nutze ich gerne Notepad++ und unter Unix am liebsten VIM (VI Improved) auch wenn dieser ein wenig einarbeitungszeit voraussetzt.
Was du aber auf jeden Fall benötigst ist:
1. eine PC am besten mit Administrativen rechten.
2. Einen beliebigen Texteditor nach Wahl, je nach Compiler und Sprache musst du in der Lage sein plaintext mit bestimmten Encoding(ASCII, UTF8, UTF16) und Zeilenumbruchtüpen (CR LF, LF, CR) abspeichern zu können (Ein RTF Editor wie Apples TextEdit kommt also nicht infrage)
3. einen Compiler oder Interpreter
Optional: Einen Debugger (z.B. den GDB)
Als Anfang in die Programmierung eignet sich immer ein
gutes Buch. Je nach Programmiersprache die du wählst solltest du dich dann mal schlau machen was es in diesem Bereich für gute Bücher gibt.
Natürlich solltest du auch wenn du in den Bereich Sicherheit gehen willst dich mit den Verschiedenen Systemen auseinander setzen, ein Windows server mit Microsoft Software hat natürlich andere Kritische Punkte als ein *nix server. Gute *nix Systeme (mit denen ich Erfahrung hatte) sind Linux Systeme und Mac OSX. Informationen über Linux Systeme bekommst du gut auf

. Ich selbst verwende an Linux Open Suse mit KDE in einer VM, und muss sagen dass ich damit recht zu frieden bin (auch wenn ich es nie aus der VM lassen würde, dafür hat linux mir schon oft genug das System geschrottet).
Natürlich können sich deine Präferenzen auch jederzeit ändern, z.B. du weckst plötzlich ein Interesse an Eingebetteten Systemen, dass lässt sich noch nicht voraussagen, aber allgemein programmieren zu lernen ist denke ich ein guter Einstieg in nahezu jeden Bereich der Informatik.
Am Ende möchte ich noch darauf hinweisen für diesen Sicherheitskritischen Bereich reicht nicht nur Programmierung, man muss auch ein wenig Kreativ und Experimentell sein, wer rein Linear und in Schemata an die Sache ran geht wird wohl eher weniger erfolgreich sein, da diese Lücken ja grade dort auftreten wo man sie nicht erwartet, gebiete bei denen man sich vielleicht nicht mal bewusst ist dass dort Risiken bestehen. Außerdem ist es auch Stark Mathelastig, um gebiete wie Analysis, Lineare Algebra und Stochastik wirst du wohl nicht herumkommen. Sowie natürlich aus wissen im Bereich der Theoretischen Informatik und Technischen Informatik definitiv von nutzen, wenn nicht sogar Voraussetzung sind.
Um ehrlich zu sein denke ich dass die beste Wahl um in diesem Segment Erfolg zu haben ist tatsächlich ein Informatik Studium, zumindest ein Bachelor, da die benötigten Wissensbereiche sich über jeden Teil der Informatik (und Mathematik) streuen.
Aber sieh dir zunächst mal Programmieren an und überlege ob es überhaupt etwas für dich ist, und ob dieser Bereich dann immer noch deinen Vorstellungen entspricht