Java oder Python? Was Finanzprofis als erstes lernen sollten

eFC logo
Java oder Python? Was Finanzprofis als erstes lernen sollten

Foto: Getty Images

Wer mit dem Gedanken spielt, eine Programmiersprache zu lernen, um damit seine Zukunft in den Finanzdienstleistungen abzusichern oder einen neuen Job in der IT-Abteilung zu finden, für den stellt Python die richtige Wahl dar. Es handelt sich um eine gute Programmiersprache und sie ist sehr nützlich, wenn man für ein Fintech arbeitet. Ich selbst arbeite jeden Tag damit. Doch einen IT-Job kann aufgrund der gewundenen Interview-Praxis schnell zu einem Spiel großer Zahlen ausarten und viele Banken und Asset Manager bevorzugen immer noch Java, was sich an der Zahl offener Stellen ablesen lässt.

Als ich vor über einem Jahrzehnt selbst bei einer Investmentbank mit dem Java-Programmieren begann, hatte ich regelmäßig mit Horror von Spaghetti-Codes zu kämpfen. Seither hat sich vieles geändert und die Qualität der Programmierungen ist heute meist recht gut. Eigensinnige Java-Frameworks wie Spring erlauben mit wenig Code eine Menge zu bewältigen. Die jüngsten Java-Versionen enthalten mittlerweile viele Funktionen von Python. Obgleich beliebte Finanzpakete wie Pandas oder NumPy fehlen, bietet es dafür eine reiche Landschaft an Datenstrukturen und Libraries von anderen Anbietern.

Auch wenn das so mancher anders sieht, denke ich, dass es Leute mit einem Java-Background leichter fällt, Python zu lernen als umgekehrt. Das ist mir selbst passiert und ich benötigte lediglich ein oder zwei Wochen, um sehr produktiv mit Python arbeiten zu können. Wer Java studiert, lernt wichtige Konzepte wie Objektorientierung, Datenkapselung, Abstraktion, Polymorphie oder Erbe kennen. Frameworks wie Google Guice und Spring führen Sie in Abhängigkeitsbeziehungen ein und wie Programme strukturiert werden. Python ist zwar ebenfalls objektorientiert, aber derart offen, dass wer damit beginnt, nicht mitbekommt, wie man ein großes Programm anständig strukturiert, damit es leicht getestet und gepflegt werden kann.

Doch Python hat weitere Probleme. Wenn man mit mehreren Leuten an größeren Projekten arbeitet, dann kann Duck-Typing und Mangel an Ausführlichkeit zu Problemen führen. Beim Duck-Typing wird die Art der Variable (Zahlen, Buchstaben, Boolsche Logik) nicht spezifiziert, sie wird erschlossen. Eine weniger ausführliche Sprache bedeutet, dass mit wenig Code viel erreicht werden kann. Für Leute, die allein arbeiten, ist das gut. Aber für andere kann das rasch undurchsichtig werden.

Darüber hinaus gibt es in Finance mit Python besondere Probleme. So besteht die Athena-Plattform von JP Morgan aus Millionen von Zeilen Python-Code und einem damit nicht vertrauten Nutzer kann es schwer fallen zu erkennen, welche Daten verarbeitet werden. Die naheliegende Lösung besteht darin, sich die Komponententests anzuschauen. Doch oft existieren diese nicht, weil die Datei geschaffen wurde, bevor Komponententests Pflicht wurden.

Bei so großen Systemen wie die der Banken kann es schwerfallen herauszubekommen, welchen Zweck ein Code verfolgt. Es genügt dann einfach nicht, sich den Code anzuschauen. Falls alles in Python programmiert sein sollte, dann muss die Bank hoffen, dass ihre Entwickler anständige Leute sind. In einem Großunternehmen stellt das nicht den Idealfall dar, weil es immer eine Reihe von unzuverlässigen Programmierern gibt, die sich einfach nicht an Standards halten.

Dagegen fällt es in Java meist leichter, durch einen langen Code hindurch zu manövrieren, weil Sie immer wissen, mit welchen Datentypen Sie zu tun haben. Auch wenn es keine Komponententest geben sollte, haben Sie doch immer eine Vorstellung davon, was vor sich geht.

Java stellt eine wirklich vielseitige Plattform dar. Sie sind in der Lage, Ihren Code auf verschiedenen Plattformen laufen zu lassen und zu verpacken. Es handelt sich um die offizielle Android-Sprache. Vielleicht haben Sie auch gehört, dass Java viel schneller als Python läuft, was meist auch zutrifft. Daher werden Hochgeschwindigkeits-Trading-Lösungen, Order-Management- oder Trading-Execution-Systeme meist in C++, C# oder Java und nicht in Python aufgesetzt. Obgleich auch Python Ketten besitzt, macht man davon in Java deutlich häufiger Gebrauch und lernt, wie man damit umgeht.

Daher ist es am besten, wenn man beide Sprachen beherrscht. Doch wer wirklich ein IT-Experte werden möchte, sollte mit Java beginnen.

Bei Oscar Vorone handelt es sich um ein Pseudonym. Während er früher als Vice President in der IT einer Investmentbank gearbeitet hat, ist er heute bei einem Fintech beschäftigt.

 

Ähnliche Artikel

Close
Loading...
Loading...