Take the 2-minute tour ×

I am a freshman in college and doing a software engineering/ finance double major. I've been learning programming on my own and have a good bit of familiarity with php by now. I was wondering what you guys think the most relevant programming language is for financial/investment banking use?

I have read this thread: Books on developing software for financial markets/investment banks

I want to start learning/reading up on a language (the basics not financial/quant stuff) to set a foundation for the future financial/quant stuff.

share|improve this question
I say this only half jokingly: COBOL :) –  Dan McGrath Jan 13 '11 at 7:20
I have work in finance and we used Java and C#. It all depends on sensitivity of the project, and what is demanded. For example security, reliability, flexibility etc. –  Amir Rezaei Jan 13 '11 at 7:22
I've noticed that functional languages are making their way into the financial sector, especially OCaml. Extra reading: janestreetcapital.com/minsky_weeks-jfp_18.pdf –  dan_waterworth Jan 13 '11 at 7:37
Functional programming is suited for financial calculations like quantiative finance. Try F#, I hear it's getting more and more popular in the finance sector blogs.msdn.com/b/dsyme/archive/2011/01/12/… –  konrad Jan 13 '11 at 8:11
Consider also Q/KDB+, depending on where you want to work. –  LennyProgrammers Jan 13 '11 at 8:50
show 2 more comments

closed as not constructive by maple_shaft Apr 29 '13 at 9:01


4 Answers

up vote 10 down vote accepted

Working in the financial sector myself (albeit, in Australia), the languages I've seen used commonly among the other institutes I've talked with are

  • Anything .NET (C#, ASP, etc)
  • Java
  • C++

Database knowledge will also come in very handy for you. Try learning some dialect of SQL like MS SQL or Oracle.

I know there are quite a few small institutes that also use multivalued DBs for their core transaction systems. This means something like

  • UniData/UniBasic
  • UniVerse/UniBasic
  • jBase

If you are really interested in learning specific languages that you can directly use for a job, my advice would to peruse the job adverts in the local area where you want to get a job to get a feel what the financial institutes there are using specifically.

However, 2 things to note from this are:

  • What skills they are looking for now could change by the time you graduate
  • It doesn't matter that much. Learn the fundamentals and you should be able to pick up whatever you need.
share|improve this answer
Thanks for the in depth answer! –  NoviceCoding Jan 13 '11 at 7:36
I second the vote for learning SQL especially if your interested in high-frequency trading. –  M. Tibbits Jan 13 '11 at 7:39
No problem @NoviceCoding –  Dan McGrath Jan 13 '11 at 7:41
Excellent list. Also needs VBA and/or Excel in there too. I separate the two, because it's a mix of Excel VBA and then worksheet stuff like VLookups –  Ian May 27 '12 at 11:42
add comment

It's a VERY broad field, but some things to consider...

Building custom Front Office Interfaces - Java

Building package systems - Not language specific. Murex, Calypso and Sophis are some of the technologies.

Maintaining legacy code - Java, C++, and (yes) even COBOL.

Front office trading analytics - VBA (Yes) and other scripting languages to a much lesser degree.

Low latency trading - C++

Quantitative analytics - C++

Integration - Java, XML, FPML (Financial Products Markup Language)

General - You need to know UNIX and SQL

share|improve this answer
+1 This seems the more complete answer. Am I wrong or you didn't mention any functional language? –  Vitalij Zadneprovskij May 27 '12 at 11:08
I have never seen it for real work. Perhaps once to solve an in house brain teaser. I have seen scripting languages like Python here and there too. –  MathAttack May 28 '12 at 17:33
add comment

Smalltalk: JP Morgan's Kapital. From conversations I've had, many current or ex-Smalltalkers come from UBS, and a large percent of South Africa's Smalltalkers came from, or were taught by people from, Rand Merchant Bank, a large local investment banking firm.

OCaml: Jane Street

share|improve this answer
add comment

I was once told by a managing director at Morgan Stanley that the future of financial programming would be dominated by Python -- to which I thought, "So says the man who never programs..." The person to his immediate right was a black belt C++ coder who knew enough to hand optimize routines in Intel assembly (after obtaining 2 PhDs).

That aside, I'm sure that every shop is different. However, we found it best to prototype in Matlab - most quants have a good math background and this is an easy enough language to pick up. Then all production code was rolled in C/C++ with customized front-ends for either Excel or their own, homebrew, high performance cluster software.

However, if I were to start my own fund, I'd substitute R for Matlab, because I spent countless hours (while on a first name basis with the only guy I'd trust) on the phone with Matlab tech support debugging their flexlm licensing and C++ interface.

share|improve this answer
Re: Python, interestingly, the U.S. Securities and Exchange Commission recently proposed a mandate that would require securities issuers to submit a computer program that maps the logic flow of funds, and that “this computer program be filed… in Python”. sec.gov/rules/proposed/2010/33-9117.pdf –  Steve Tjoa Jan 13 '11 at 7:47
Wow. Had no idea. Since I switch btw Ubuntu & Windows, I just can't take a language where whitespace (tabs vs. spaces) matters... –  M. Tibbits Jan 13 '11 at 7:50
@MTibbits, what, Ubuntu doesn't have spaces? :) –  Benjol Jan 13 '11 at 8:17
@Benjol, Ubuntu has spaces, it must be windows that doesn't. –  dan_waterworth Jan 13 '11 at 8:46
It all depends on what you want to achieve. I know several people in investement banks doing prototyping in Python using a Python-binding to their C++-library. Regarding describing trades in Python: several people mentioned back then, this is not a good idea, because you can not verify Python programs. A programming language in the ML-family would be a better fit. –  LennyProgrammers Jan 13 '11 at 8:53
add comment
