Discover your dream Career
For Recruiters

Coding languages to learn and avoid for technology jobs in banks

As a managing director in charge of a major front office technology unit at a U.S. investment bank in New York, I get a lot of young people asking me the best coding languages to learn for banking jobs. The answer is, that it depends. However, there's one language I will always advise people to learn: Python.

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.

Alongside Python you should choose at least one other language. OCaml will catch attention, but it's hard to learn - way harder than Java and harder even than C++. However, it's the kind of language that - if you can code well in it - will give you prestige among geeky computer science nerds. Other languages in this category include Lisp and Haskell. 

Do you really want to learn an ultra-obscure language though? 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...

There are three languages I would always avoid. These are: Pascal (too old); Julia (too new); and Slang (too proprietary).

Ananda Vyas is the pseudonym of a managing director in technology at a U.S. investment bank

Have a confidential story, tip, or comment you’d like to share? Contact: sbutcher@efinancialcareers.com

Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear. Eventually it will – unless it’s offensive or libelous (in which case it won’t.)

Photo by Ilse Orsel on Unsplash

author-card-avatar
AUTHORAnanda Vyas Insider Comment
  • ad
    adamralph
    25 June 2021

    This is very context-dependent, and one of those things that six people may give six very different opinions on. Personally, I spent almost 2 decades in a very rewarding career in banking and I didnt write a single line of Python.

    I advise treating opinions in this space with care.

  • Fi
    Finance tech guy
    19 June 2021

    WTF "always learn python". No. I'm not maintaining your sh*tty code written in a language which barely gives a sh*t about types before runtime. This is why java still reigns supreme for many finance applications.

    You want something "cool" do kotlin. Why? Because it's functional, has insanely good innovations around apis, solves a lot of problems to do with java's verbosity.

    Python has good ml libraries because academics write in languages that make no God damned sense to use outside of academia. Many have never suffered through a decade of working on a truly gigantic project. Let them entertain themselves with debugging in an absolute shithouse language that's "fast and easy to write" but absolute garbage to maintain. Your code should be in something more professional. Newbies and outsiders learn python, js, etc because soft typing allows you to postpone your lack of understanding to runtime and at least get your code to compile. However those problems never actually go away.

    How do you identify an idiot in the software industry? Usually they're a blogger or a "CEO" with no employees whose telling you "java is a dying language" because someone told them so on buzzfeed.

  • Fi
    Fikret Hasovic
    18 June 2021

    Pascal too old? It's pretty much alive and kicking. Check delphi and lazarus

  • Ka
    Kaiju66
    18 June 2021

    Still billions of lines of COBOL in the banks

Sign up to Morning Coffee!

Coffee mug

The essential daily roundup of news and analysis read by everyone from senior bankers and traders to new recruits.

Boost your career

Find thousands of job opportunities by signing up to eFinancialCareers today.
Recommended Articles
Recommended Jobs

Sign up to Morning Coffee!

Coffee mug

The essential daily roundup of news and analysis read by everyone from senior bankers and traders to new recruits.