Softwareentwicklung hat mich schon als Schüler gereizt, und folgerichtig habe ich auch Informatik studiert, und arbeite heute als Softwareentwickler.
Die Herausforderung ist immer eine eigentlich ziemlich doofe Maschine dazu zu bringen, interessante Dinge so zu tun, wie sich der Entwickler das vorstellt. Und die Maschinen machen auch das, was man ihnen sagt, nur manchmal ist das, was man ihnen sagt, nicht dass was man glaubt ihnen gesagt zu haben. Wenn man also 2 und 2 addiert haben möchte, dann sollte man besser nicht 2 + 3 ins Programm schreiben.
Wichtig ist auch, dass die Entwicklung nicht stehen bleibt. Es gibt immer neue spannende Entwicklungen, neue Hardware, neue Programmiersprachen und damit immer neues zu lernen, und das macht für mich den Reiz meines Berufs aus.
Alles kann man sicher nicht lernen, dafür reicht ein Menschenleben nicht mehr, also muss man irgendwo eine Auswahl treffen und Schwerpunkte setzen. Und wenn man etwas braucht was man noch nicht beherrscht gilt: weiter lernen.
In meinem Berufsleben habe ich mich zunächst mit unterschiedlichsten Unix-Systemen beschäftigt, ab Mitte der 90er folgte dann ganz organisch Linux. Android nutze ich zwar (noch) nicht beruflich, aber ich finde das so spannend, dass der Kauf meines ersten Android-Smartphones dazu geführt hat, dass die passenden Entwicklerwerkzeuge auf meinen PC gekommen sind. Windows ist nicht so mein Ding, das nutze ich nur, wenn es gar nicht anders geht.
Wenn man unter Unix oder Linux ernsthaft arbeitet, kommt man um shell-Programmierung nicht herum, von daher sind die Bourne-shell und ihre Abkömmlinge bis hin zur bash für mich seit langem vertraute Werkzeuge, die gut in der Hand liegen, und mit denen ich gerne arbeite.
An Hochsprachen habe ich im Studium Fortran und Cobol gelernt – und nie wieder gebraucht. Was ich beruflich von Anfang an nutze, ist C und seit über 10 Jahren auch Java. Und das sind nur die drei wichtigsten Vertreter, ansonsten gibt es noch eine recht lange Liste. Wenn nichts dazwischen kommt, mache ich mich demnächst daran Python zu lernen.
Um Programmtexte zu bearbeiten braucht man einen Editor: meine Wahl ist der vi bzw. heute der vim. Für die Java-Entwicklung nutze ich Eclipse, und auch die ersten Android-Entwicklungen habe ich mit Eclipse gemacht. Da die (nähere) Zukunft dafür Android-Studio heißt, werde ich das jetzt verstärkt einsetzen.
Was braucht man noch: Buildsysteme wie make, ant oder grunt, Sourceverwaltungssysteme wie cvs, svn oder git.
Und dann braucht man eigentlich nur noch eine Idee, was man machen möchte.
Für meine Arbeitgeber habe ich in zwei Bereichen gearbeitet: einmal ein Softwarepaket zur Lohn- und Gehaltsabrechnung und zweitens mehrere Einzelhandelswarenwirtschaftssysteme. Klingt etwas trocken, aber speziell das zweite Warenwirtschaftssystem, war ein Highlight weil ich hier die Chance hatte in einem kleinen Team ein völlig neues Produkt mit einer modernen Programmiersprache (Java) zu schaffen.
Daneben habe ich bei meinem derzeitigem Arbeitgeber den ersten Webserver aufgesetzt, und auch sonst an einer Reihe von internen Projekten mitgearbeitet.
Zeigen kann ich das leider alles nicht.
Aber einige Dinge gehen dann doch.
Zu drei OpenSource-Projekten habe ich bislang kleinere Beiträge geleistet.
Und dann gibt es noch zwei eigene Entwicklungen, die ich hier vorstellen möchte.