Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

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

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  
+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

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