Java vs Python : lequel devez-vous apprendre en premier dans la finance ?

eFC logo
Java vs Python : lequel devez-vous apprendre en premier dans la finance ?

Si vous envisagez d’apprendre un langage de programmation pour sécuriser votre carrière dans les services financiers ou pour passer à un poste dans le secteur technologique, le langage du jour est Python. Un bon choix en soi et très pratique si vous voulez travailler dans la fintech, ce qui est devenu aujourd’hui mon quotidien. Cependant, décrocher un poste dans le secteur de la technologie peut s’avérer difficile du fait de processus d’entretiens méticuleux, sans oublier que dans de nombreuses banques et de gestionnaires d’actifs, Java règne toujours en maître dans les emplois à pourvoir.

Lorsque j'ai commencé à coder en Java dans les banques d'investissement il y a plus de dix ans, je devais régulièrement batailler avec le code spaghetti. Depuis, les choses ont considérablement évolué et, dans l'ensemble, la qualité du code que je vois au quotidien est maintenant plutôt bonne. Les frameworks Java comme Spring signifient que vous pouvez faire beaucoup avec très peu de code. Les derniers développements de Java contiennent de nombreux aspects fonctionnels disponibles dans Python. Bien qu’elle manque de progiciels financiers populaires tels que Pandas et NumPy, Java se rattrape grâce à un riche environnement de structures de données natives et de bibliothèques tierces.

D'autres peuvent ne pas être d'accord, mais je pense qu'il est beaucoup plus facile d'apprendre Python à partir de Java plutôt que l'inverse. Je l'ai fait moi-même et il m'a fallu une semaine ou deux pour devenir très productif en Python. En étudiant Java, vous apprendrez d'importants concepts concernant l'orientation des objets, tels que l'encapsulation, l'abstraction, le polymorphisme et l'héritage. Des frameworks tels que Google Guice et Spring vous initieront à l’injection de dépendances et à la structuration des programmes afin qu’ils soient faciles à tester et à maintenir. Python est orienté objet, mais son langage est tellement ouvert que si vous commencez par lui en premier, vous ne saurez peut-être pas comment structurer correctement les programmes volumineux.

Python a aussi d'autres problèmes. À une échelle où vous partagez et travaillez sur du code avec de nombreuses autres personnes, Python peut présenter des problèmes en raison du duck tiping où vous ne spécifiez pas le type (comme un entier, un caractère ou une valeur booléenne) d'une variable. Et un langage peu bavard signifie que beaucoup peut être accompli avec peu de code. Tout cela est bien en termes d’autonomie, mais cela peut rendre ce qui se passe très opaque pour les autres.

Il existe des exemples concrets des problèmes de Python en finance. Par exemple, la plate-forme Athena de JPMorgan contient des millions de lignes de code Python et les utilisateurs novices peuvent avoir des difficultés à discerner le type de données manipulées. La solution évidente consiste à examiner les tests unitaires, mais souvent, il n’en existe pas car le fichier a été créé avant l’application de la règle de test unitaire obligatoire...

Dans des systèmes aussi grands que ceux utilisés par les banques, il peut être difficile de comprendre l’intention du code de base simplement en regardant Python. Lorsque tout est codé en Python, les banques sont obligées de compter sur les développeurs. Dans une grande organisation, ce n’est pas idéal, car ii y aura naturellement toujours une proportion de codeurs ne respectant pas les normes.

En revanche, en Java, la navigation dans une grande base de code peut être plus facile, car vous savez toujours à quels types de données il est fait référence. Même s'il n'y a pas de tests unitaires, vous avez toujours une idée approximative de ce qui se passe en un coup d'œil.

Java est aussi vraiment multi-plateforme. Vous pourrez conditionner et exécuter votre code sur de nombreux types de machines, et il s’agit de la langue officielle d’Android. Vous avez peut-être entendu dire que Java est beaucoup plus rapide que Python, ce qui est vrai la plupart du temps. De ce fait, le trading haute fréquence, la gestion des ordres et l'exécution du trading vont très certainement être implémentés dans un langage comme C ++, C # ou Java, plutôt que Python. Et même si Python a des threads, vous les utiliserez beaucoup plus en Java et vous en apprendrez beaucoup plus sur la façon de coder de manière multithread.

Avoir les deux langages à votre portée est vraiment l’idéal, mais croyez-moi, commencez par un langage comme Java si vous souhaitez vraiment devenir un technologiste de premier plan.

Oscar Varone est le pseudonyme d'un ex-technologiste VP en banque d'investissement qui travaille désormais dans une fintech.

Vous avez un scoop, une anecdote, un conseil ou un commentaire que vous aimeriez partager ? Contact : tiochem@efinancialcareers.com

A lire aussi…

Secteurs les plus recherchés

Loading...

Recherche emploi

Rechercher articles

Close
Loading...