10

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: https://softwareengineering.stackexchange.com/questions/13109/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.

  • 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/… – Homde Jan 13 '11 at 8:11
  • Consider also Q/KDB+, depending on where you want to work. – LennyProgrammers Jan 13 '11 at 8:50
10

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.
  • 1
    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
6

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

  • 1
    +1 This seems the more complete answer. Am I wrong or you didn't mention any functional language? – Виталий Олегович 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
3

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

2

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.

  • 1
    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

Not the answer you're looking for? Browse other questions tagged or ask your own question.