Softwareentwickler werden, war ursprünglich nie mein Wunsch. Jedoch bereute ich diesen Schritt nie. Wie..
.. es dazu kam, was ich erlebte und wie Du davon profitieren kannst, das erfährst Du hier.
Ursprünglich…
In meiner Jugend faszinierte mich alles, was mit Zusammenbauen und Logik und Kreativität im Entferntesten zu tun hat. Dazu gehörten:
Computer kannte ich nur als Großrechner. Schon früh hatte ich einen programmierbaren Taschenrechner von HP, der einen Basic-ähnlichen Dialekt verstand.
Die ersten C64 waren meinen Eltern zu teuer, sodass ich damit nie in Berührung kam.
Im Bereich des Schach organisierte ich mir sehr viel Schachliteratur, um hier schnell voran zu kommen. In den Ferien ging ich früh jobben im Rechenzentrum der Bank, bei der auch mein Vater arbeitete. Schach war schon bald mehr als ein Hobby. Ich baute in der Schule eine Schach-AG auf und machte mir schon bald in der Region einen Namen, als Jungprofi. Innerhalb weniger Jahre sammelte ich viele Pokale und war auf allen einschlägigen Events, die ich nur erreichen konnte.
Ganz nebenbei legte ich so meine extreme Scheu ab, vor Menschen zu sprechen. Zugleich entdeckte ich eine Begabung dafür, anderen etwas näher zu bringen, für das sie ein Eigeninteresse haben.
Mathematik war mein Steckenpferd in der Schule. Daher lag es nahe, auch mit Mathematik-Nachhilfe während der normalen Schulzeit Geld zu verdienen. Wie Du vielleicht dir denken kannst, fehlt bei vielen potenziellen Nachhilfeschülern das Eigeninteresse. Nicht selten sind die Eltern die Treiber, während die Sprösslinge lieber andere Dinge tun würden.
So manche Nachhilfen brach ich dann sogar ab, was gerade die Eltern und Lehrer nicht immer verstanden. Ich konnte mir das allerdings leisten, denn ich hatte auch eine Erwachsene, die locker meine Mutter hätte sein können. Ich betreute sie gerne, denn sie hatte ein klares Ziel und war extrem wissbegierig. Mit meiner Unterstützung machte sie im Fernunterricht Abitur und war bereits im Germanistikstudium, bevor ich mit dieser Nachhilfe stoppte.
Diplom-Studium Mathematik
Wir wohnten im Einzugsbereich von Mannheim-Ludwigshafen. An der Universität in Mannheim kam für mich nur Mathematik als Studienrichtung in Frage. Beim Nebenfach hatte ich die Wahl zwischen BWL und VWL. Letzteres hat viel mit Statistik zu tun und dies erschien mir als die beste Ergänzung zur Mathematik. Die Uni Mannheim betrieb damals ein Rechenzentrum, das bei allen Wahlen stark im Fokus stand, denn dort wurden die Hochrechnungen betreut.
Es wurden auch Programmierlernkurse für Cobol, Fortran und Pascal angeboten. Das Angebot war für die Studenten der Mathematik frei. So kam ich das erste Mal mit den Programmiersprachen in Verbindung.
Ein Jahr nach meinem Studienbeginn eröffnete die Fakultät Mathematik den neuen Studienzweig Wirtschaftsinformatik. Während mit mir in Mathematik nur etwa 60 Leute starteten und auch nur einmal pro Jahr ein Start möglich war, explodierten die Zahlen der Studienanfänger in Wirtschaftsinformatik.
Das stellte den Lehrstuhl und die betroffenen Mathe-Professoren, die ja einige Mathevorlesungen mit anbieten mussten für die angehenden Wirtschaftsinformatiker, auf eine harte Probe.
Große Hörsäle waren vorhanden, um die 400 Studenten aufzufangen. Doch wer soll die Übungen betreuen, wer die wöchentlichen Aufgaben kontrollieren und bewerten?
So war ich nach dem Vordiplom schnell einer der Tutoren am Lehrstuhl, die diese Aufgaben übernahmen.
Es gab für die 400 Wirtschaftsinformatiker sechs Gruppen, auf die sich diese einigermaßen gleichmäßig verteilten. Anfangs hatte jeder zwischen 65 und 70 Arbeiten zu korrigieren und in einer 2-stündigen Übung lernten die angehenden Wirtschaftsinformatiker den Stoff der Vorlesung in Form der Lösungen zu den Übungsaufgaben nochmal kennen.
Schnell beobachtete ich, dass die 90 Plätze im Raum sich immer mehr füllten. Mein Stapel an zu korrigierenden Übungen wuchs ebenfalls Woche für Woche.
Auf meine Nachfrage kam ein nettes „Du kannst das alles viel besser und unterhaltsamer erklären“ zurück.
Die Profs rissen sich fortan um mich, denn offensichtlich erzielten meine Studenten auch die besten Ergebnisse in den Prüfungen.
Algorithmen als Programmiercode
1984 holte mich dann Professor Dr. Günther Meinardus an seinen Lehrstuhl. Sein Spezialgebiet war die Optimierung. Die Studenten bekamen jede Woche die Aufgabe einen bestimmten Algorithmus zur Lösung einer Aufgabe zu finden und Programmiercode zu schreiben, der das löst. Hinsichtlich Programmiersprache gab es allerdings keine Vorgabe. Der Code war auch nur als Quellcode zu liefern auf Papier.
Diese Freiheit nahmen die Studenten sehr ernst und sportlich. Jeder versuchte möglichst eine andere Programmiersprache zu nutzen. Wohl auch mit dem Hintergedanken, dass ich dann keine Fehler finden würde.
In kurzer Zeit beherrschte ich alle erdenklichen Programmiersprachen, die damals bereits verfügbar waren. Meine Studenten waren fasziniert, wie ich das meisterte. Ich selbst fand das erste Mal Zugang zur Softwareentwicklung. Es ging hier nur um den Programmiercode zu Themen wie Fourieranalyse, geometrische Reihe, asymptotische Lösung zu Optimierungsaufgaben und vieles mehr. Der Code wurde nicht auf einen Rechner zur Ausführung gebracht. Schnell war mir klar, dass ich später Softwareentwickler werden möchte.
Professor Meinardus arbeitete damals an einer Fragestellung im Bereich der Mandelbrotbäume. Hierzu benötigte er Grafiken und organisierte dazu einen der ersten Desktop-Rechner mit MS-DOS 3.0. (Siehe hierzu die Historie). Dazu hatte er einen ansteuerbaren Plotter. Mit QBasic als verfügbarer Programmiersprache erarbeitete ich dann die Bilder für sein Buch auf diesem System.
Das war mein erster Job als Softwareentwickler.
Diplom-Arbeit
Professor Meinardus bekam dann Verstärkung durch Professor Nürnberger. Beide prägten damals und später die Fakultät Mathematik. So kam es, dass ich in der Diplom-Arbeit über „Verfahren der semi-infiniten Optimierung“ schrieb.
Das Buch füllte am Ende fast 260 Seiten. Die Betreuung übernahm Professor Nürnberger, der kurz danach als jüngster Mathematiker einen Lehrstuhl auf Lebenszeit in Erlangen erhielt.
Es gab damals kein Internet, kein Zoom oder Ähnliches. so fuhr ich viele Male von Mannheim nach Erlangen, um die Fortschritte mit ihm zu besprechen. Der Umfang wuchs dabei immer mehr und sprengte den üblichen Umfang bei weitem.
Aus heutiger Sicht weiß ich, dass die erarbeiteten Algorithmen in vielen Bereichen Verwendung fanden, ohne dass irgendwo diese Quelle genannt wird. Man arbeitete damals in solchen Arbeiten zwar auch akribisch mit Quellenangaben. Doch die Verwendung solcher Algorithmen in Programmcodes, Anwendungen usw. fand noch ohne Quellenangaben statt. Kommentare in Quellcodes waren nicht erwünscht, da diese den Sourcecode nur unnötig aufgebläht hätten.
Verfahren der semi-infiniten Optimierung in der KI
Als ein Betatester von Google Bard wollte ich wissen, in wie fern meine Diplomarbeit in die KI einfließen konnten. Hierzu befragte ich diese KI (ohne die Antworten tatsächlich verifizieren zu können) mit folgendem Prompt:
„Bard, Du bist Top-Experte im Gebiet Angewandte Mathematik und KI. Erkläre kurz an einem Beispiel aus der KI und für einen Laien verständlich, was Semiinfinite Optimierung ist. Wie profitiert die KI von den Algorithmen zur Lösung von Problemen aus der semiinfiniten Optimierung?“
Eine der Antworten lautete:
Semiinfinite Optimierung in der KI: Beispiel und Vorteile
Semiinfinite Optimierung (SO) ist ein Teilgebiet der Optimierung, das sich mit der Lösung von Optimierungsproblemen befasst, bei denen die Anzahl der Variablen unendlich ist. Das mag zunächst kompliziert klingen, ist aber in der KI gar nicht so selten.
Beispiel: Stellen wir uns vor, wir möchten ein neuronales Netz für die Bilderkennung trainieren. Das Netz hat Millionen von Variablen, die Gewichte der Verbindungen zwischen den Neuronen. Wir wollen diese Gewichte so optimieren, dass das Netz möglichst viele Bilder richtig erkennt.
Problem: Die Menge der möglichen Bilder ist unendlich. Wir können also nicht einfach eine Funktion über alle Bilder definieren, die wir minimieren möchten.
Lösung: Die SO bietet verschiedene Algorithmen, um solche Probleme zu lösen. Ein Beispiel ist der Schnittflächenalgorithmus. Dieser Algorithmus zerlegt das Problem in eine Reihe von endlichdimensionalen Teilproblemen, die dann effizient gelöst werden können.
Vorteile:
- Effizienz: SO-Algorithmen können Probleme mit unendlich vielen Variablen effizient lösen.
- Genauigkeit: SO-Algorithmen können sehr genaue Lösungen finden.
- Flexibilität: SO-Algorithmen können an verschiedene Arten von Problemen angepasst werden.
KI-Bereiche, die von SO profitieren:
- Maschinelles Lernen: SO kann verwendet werden, um die Hyperparameter von Lernmodellen zu optimieren.
- Computer Vision: SO kann verwendet werden, um Bild- und Videoerkennungssysteme zu verbessern.
- Natural Language Processing: SO kann verwendet werden, um Systeme zur Verarbeitung natürlicher Sprache zu verbessern.
Fazit:
SO ist ein leistungsstarkes Werkzeug, das in der KI zur Lösung von Optimierungsproblemen mit unendlich vielen Variablen eingesetzt werden kann. SO-Algorithmen sind effizient, genau und flexibel und können in verschiedenen Bereichen der KI eingesetzt werden, um die Leistung von KI-Systemen zu verbessern.
Hinweis:
Dies ist nur eine kurze Zusammenfassung. Für ein tieferes Verständnis der SO empfehle ich Ihnen, sich Fachbücher oder Online-Kurse anzuschauen.
Hinweis von mir zu dieser Antwort
Beachte: Die KI-Systeme neigen bei komplexen Fragen gerne auch zu Fantasien. Wiederholt man den Prompt mehrfach, so bekommt man Variationen. Tatsächlich beschreibe ich in der Diplom-Arbeit im Kapitel II.3. Ein Schnittebenenverfahren, auf das die Antwort in der Lösung unter der Bezeichnung Schnittflächenalgorithmus offensichtlich Bezug nimmt.
Es ist tatsächlich so, dass die KI auf solche Verfahren der angewandten Mathematik basieren. Es dürfte nicht mehr nachprüfbar sein, in wie weit meine Diplomarbeit hier eine Rolle spielte, denn sie liegt bis heute nur in Buchform vor.
ATM und Abwärmesimulation
Ich bewarb mich gegen Ende des Studiums dann bei damals renommierten Firmen. Ich wollte Softwareentwickler werden und mein Spezialwissen aus dem Studium sowie der Diplomarbeit anwenden. Ich schrieb 7 Bewerbungen hatte 6 Vorstellungsgespräche und danach die freie Wahl. Den Zuschlag von mir bekam SEL in Stuttgart.
Hier arbeitete ich zunächst in einem Team aus Mathematiker, Elektrotechnikern und Software-Entwicklern an der Neuentwicklung der ATM-Technologie. Mithilfe einiger Algorithmen aus meiner Diplomarbeit erzielten wir die Marktreife dieser Schlüsseltechnologie für die Datenübertragung über Glasfaser (ATM).
Danach wurde die Abteilung aufgelöst. Ich führte damals ein Gespräch mit meinem Chef. Er gab mir extrem wertvolle und geheime Tipps für meine anlaufende Karriere, die ich immer sehr beherzigte. Diese waren einer der Schlüssel für meine komplette doch erfolgreiche Karriere.
Du willst Softwareentwickler werden mit überdurchschnittlichem Erfolg. Dann sind diese Tipps ein wesentlicher Schlüssel.
In komplexe Aufgaben wachsen, das begleitete mich dann weiter. In der Folgeaufgabe ging es um die Abwärmesimulation in Schaltschränken der Post. Dort sind in einem geschlossenen Kasten dicht an dicht Leiterplatten zu finden, die Du heute an jeder Ecke stehen siehst. Dort werden eigehende Telefonate vollautomatisch weiterverteilt. Die Herausforderung besteht darin, dass diese System sich selbst passiv kühlen und auch im Hochsommer nicht zu heiß laufen.
Das Simulationsprogramm musste die durch warme und kalte Stellen entstehenden Konvektionsströme im kompletten Schaltschrank simulieren, so dass an keiner Stelle ein elektronisches Bauteil zu heiß wird. Dabei war diese Schrank und die jeweiligen Leiterplatten fiktiv und in Entwicklung. Der Kunde, damals die deutsche Post, gab exakte Randbedingungen vor inklusive den Ausfallwahrscheinlichkeiten.
Es war eine spannende Aufgabe, die ich alleine meisterte. Innerhalb von 4 Jahren stieg mein Gehalt um knapp 50 %. Aus heutiger Sicht ist das kaum noch vorstellbar.
Stellenabbau war schon immer
SEL machte in der gleichen Zeit keine erfreuliche Entwicklung durch. Alcatel kaufte das Unternehmen auf und löste weniger rentable Bereiche auf. Bis 1990 schrumpfte die Belegschaft von 42- auf rund 28-Tausend. Ich suchte mir eine neue herausfordernde Aufgabe und fand diese bei FEIN in Stuttgart.
Hierbei suchte der Firmenchef einen Softwareentwickler für ein unfertiges selbstgestricktes Projektmanagementsystem, das zuvor eine Mathematikerin aufbaute. Sie verließ vor Fertigstellung das Unternehmen. Ziel war es, die Entwicklungszeit zu halbieren.
Der damalige Inhaber stellte mich persönlich ein und gab mir freie Hand. Ich vereinbarte mit ihm, dass ich den Status Quo ermittle um dann mit ihm gemeinsam das weitere Vorgehen zu planen.
Zunächst war ich bei FEIN weit weg vom eigentlichen Thema Softwareentwicklung. Schnell stellte ich fest, dass bestenfalls 20% der Software fertig war und im Kern am Ziel komplett vorbeiging.
Wir – Herr Fein und ich in einer Besprechung – kamen zum Ergebnis, dieses Projekt komplett zu stoppen und stattdessen zuerst zu ermitteln, wo der Flaschenhals und Zeitfresser im Unternehmensprozess wirklich liegt.
Die Firma bestand aus 3 Standorten, an denen jeweils Teile der Entwicklung saßen. Mit jeweils anderen Software-Lösungen wurde dort je ein Teil der Entwicklung betrieben. Die Kommunikation erfolgt mit viel und lange dauernder Fußarbeit.
So schlüpfte ich in die Rolle des Stakeholders / Productowners und erarbeitete das Pflichtenheft sowie die Zielarchitektur, was heute in der Rolle eines Softwarearchitekten liegt.
Danach ging ich am damaligen Offline-Markt auf die Suche nach einer fertigen Software-Lösung, die mit mehr oder weniger Anpassungen das eigentliche Problem lösen sollte.
Ich fand die Software CORA II von HoSoft aus München, die extrem anpassungsfähig war und sich für solche Problemstellungen ideal nutzen ließ. Zusätzlich war diese Lösung nicht nur flexibler sondern auch deutlich günstiger, als vergleichbare Systeme der Branchenführer.
Bis zur fertigen Implementierung, Integration, Schulung der betroffenen Mitarbeiter und Inbetriebnahme vergingen fast 3 Jahre. Doch bereits nach 2 Jahren waren die Zeitfresser ausgeräumt. Die Entwicklungszeit der Elektromaschinen hat sich dabei aber nicht nur halbiert, sondern schrumpfte auf ca. 10 %.
Fühl dich niemals sicher
Es gab eine Wirtschaftskrise, Kurzarbeit, doch ich wähnte mich sicher. Im Mai 1994 kam wurde ich zum EDV-Chef gerufen. Kurz zuvor wurde mein Verantwortungsbereich von der Entwicklung auf seine Verantwortung übertragen. Ich rechnete mit allem, aber nicht damit. Er überreichte mir ein Auflösungsvertrag zum 31.12.1994.
Selbstbewusst dachte ich jetzt nicht im Traum daran, dass ich in der verbleibenden Zeit von 7 Monaten keinen neuen Arbeitgeber finden könnte.
Online gab es damals noch nicht. Bewerbungen erfolgten noch in Papierform per Briefpost. Schon bald schrieb ich Deutschlandweit alles an, was nur irgendwie passen könnte. Mit der Zeit wurde immer klarer: Ich war den Unternehmern schlich zu überqualifiziert, zu teuer und sie befürchteten, dass ich sie nur als Sprungbrett nutzen könnte.
Privat sah es so aus: Wir hatten 4 kleine Kinder (Alter: 7, 5, 3 und 1 Jahr) und ein Haus mit deutlich Schulden. Meine Frau war immer zuhause und kümmerte sich um die Kinder.
Ende 1994 war ich arbeitslos, ratlos und am absoluten Tiefpunkt meiner Karriere.
Keine Lösung gibt es nicht
Nachdem ich offensichtlich trotz der bisherigen Streuung meiner Fähigkeiten zum überteuerten Fachidioten abgestempelt wurde, hieß es für uns, wir brauchen eine Alternative.
Wir entschieden uns für eine Umschulung und Weiterbildung zum Allrounder für die Softwareindustrie. Hierzu gab es eine Fortbildungsmaßnahme im 800 km nahe gelegenen Berlin. Dauer 1 Jahr.
Trotz aller Nachteile wählten wir gemeinsam diesen Weg, so hart er auch für alle war.
Softwareentwickler werden mit Rundum-Wissen
Teilweise fühlte ich mich in Berlin sehr unterfordert. Teil der Fortbildung war ein Praktikum. Vorgesehen war die Vermittlung durch den Träger die AEG. Doch am Ende musste jeder selbst sich kümmern.
Ich kam dann genau bei jenem Softwareunternehmen HoSoft in München unter, deren Software ich bei Fein eingeführt und angepasst hatte. Du erinnerst dich noch?
Zum zweiten Mal durfte ich Softwareentwickler werden. Doch hier kümmerte ich mich um nahezu alles von der Planung, über die Softwareentwicklung bis hin zum Deployment. Dazu kamen Dokumentation, Support und Demoaufbau, sowie Vorstellung von Lösungen auf Messen und bei Kunden.
So konnte ich die neu gelernten Marketing-Skills bei Kunden nutzen.
Cebit 1997
Anfang 1997 kam Bewegung in die noch junge neue Internet-Welt. Jetzt konnte man mit Formularen in HTML arbeiten und über eine Schnittstelle namens CGI (Common Gateway Interface) Daten vom Server anfordern und mit viel Programmierung erstmals eine „dynamische“ Webseite bauen.
PHP wurde erst ein Jahr später erfunden und nutzt bis heute exakt diese Schnittstelle, die ich damals entdeckte und verwendete.
In einer Kooperation mit 2 großen Hardwareherstellern (HP und DEC) baute ich eine Umgebung und eine Lösung, auf die die Industrie schon lange wartete.
Diese Lösung schlug auf der Cebit 1997 ein, wie eine Bombe.
Nach 7 Tagen hatte ich alleine ca. 100 potenzielle Kunden, die am liebsten die Lösung direkt von der Messe weg gekauft hätten. Die Firma HoSoft war darauf überhaupt nicht vorbereitet. Davor hatten man bei Messen bestenfalls 5 bis 10 Interessenten eingesammelt, die man dann nach und nach in Kunden umwandelte. 3 Messen im Jahr reichten so, um den 10 Mann-Betrieb gut betreiben zu können.
Ich hatte jetzt 100 Kunden, die jeder für sich mehr Umsatz gebracht hätten, als davor im Jahr üblich war.
Es kommt erstens anders und zweitens als man denkt
Nach 6 Wochen kamen bei mir die ersten Anfragen von Messekunden, wann es denn weiter ginge. Erste Kollegen verließen die Firma. Dann eröffneten uns die Firmeninhaber Herr und Frau Hoffmann, dass sie das Unternehmen kurz zuvor an den amerikanischen Konzern Applicon verkauft hatten. Es hieß, wie immer: Für uns würde sich zunächst nichts ändern.
Doch diesmal hatte ich den Braten richtig gerochen.
Die Neuorientierung begann. Diesmal fand ich eine Firma im Nachbarort Sankt Wolfgang unseres damaligen und heutigen Wohnortes Haag in Oberbayern.
Es ging wieder zurück in die eigentliche Softwareentwicklung. Ich wollte wieder Softwareentwickler werden, denn darin lag schon immer meine größte Leidenschaft.
Bewerbungsgespräch mit umgekehrten Vorzeichen
Das Bewerbungsschreiben landete an einem Donnerstag kurz vor weihnachten im Briefkasten. Ich war bereits in den Weihnachtsferien. Am Freitag morgen kam ein Anruf, ob ich mich noch am gleichen Tag vorstellen könne. Wir dachten uns nur, das passt und stimmten zu.
Gut vorbereitet kam ich zur Firma. Es erwartete mich in damals noch unüblicher legerer Kleidung der Entwicklungschef. Er sagte er würde meinen künftigen Chef vertreten, da dieser bereits in den Weihnachtsferien wäre.
Dann startete er mit dem Bewerbungsgespräch. Wie es weiterging, das stelle ich Dir im nächsten Beitrag vor. Sei gespannt!