- Joined
- 5/2/06
- Messages
- 11,954
- Points
- 273
Interesting article from EFC written from the perspective of a managing director in technology at a major Wall Street investment bank. In this, he answers popular questions from students about which programming languages to learn and to avoid.
In short, learn Python first, then a second language (C++, Java are popular choices here dependent on which job you target).
He explains the reasons below.
For learning Python first.
In short, learn Python first, then a second language (C++, Java are popular choices here dependent on which job you target).
He explains the reasons below.
For learning Python first.
And to also get a second language.Python may be slow compared to some other coding languages, but it's the number one language used in finance now. We use it for data analytics and for data investigations and interrogation. Python is also the language of machine learning and AI, and as AI becomes more widely used in finance, so does Python.
Python's big advantage is that it's easy to learn. The syntax is human-readable and intuitive. Its power derives from the multitude of open source libraries available in Python for use with machine learning and many other applications.
And lastly, what to avoid:In finance, we use Java for the broad decision-making within algorithmic trading code, and C++ for the higher frequency portion of it. Java derivatives like Scala are used for data ingestion and languages like R and MATLAB are used in bespoke research scenarios, and are losing ground.
The languages you choose to learn should therefore depend upon the sort of banking technology job you aspire to. Always learn Python, but your second language will differ. If you want to work on trading execution algorithms, learn Java. If you want to work on derivative pricing, learn C++. If you want to work on user interfaces (UIs), you could also learn Javascript. If you want to work on tick-data level work, there's also Kdb/Q...
You can read the full article here.Pascal (too old); Julia (too new); and Slang (too proprietary).