Programming Languages for Trading Jobs

Fellas,

I, like many of you, am trying to jobs at prop firms, hedge funds etc.. and wanted to learn some programming languages in addition to all the financial knowledge and experience since a lot of these jobs postings require some sort of programming knowledge.

Through some searching, these are the ones I've found to be the most useful:

VBA
C++
Python
Matlab

Please feel free to correct me or add on to this list. Any info would be appreciated.

Thanks,
DJR

 

VBA is by far the easiest to learn. The reality is that it's not even a real programming language, it's basically just used to write macros in Excel (or other office apps - but let's be honest, Excel is the cream of the MS Office crop). Don't get me wrong, you can do great stuff in Excel VBA - connect to databases and execute queries, automate data visualization in little bar charts (with high-end formatting!), but if you are going to do anything hard core, you need something else.

Python is basically just a scripting language. Similar to Perl, more widely used - I'd stay away from this, honestly. It's good to learn, good for web pages, and stuff like that, but it's more for BO peeps IMO.

Matlab is for hardcore math programming. Again, it's not REALLY a language. It's used for data manipulation, engineering, and at quant shops it used for model development.

C++ is really hard - but if you are an expert in C++, nobody can say that you aren't a real programmer. You can do anything in C++. For Example, the perl language and Matlab were written in C++ .....

 
MCC:
VBA is by far the easiest to learn. The reality is that it's not even a real programming language, it's basically just used to write macros in Excel (or other office apps - but let's be honest, Excel is the cream of the MS Office crop). Don't get me wrong, you can do great stuff in Excel VBA - connect to databases and execute queries, automate data visualization in little bar charts (with high-end formatting!), but if you are going to do anything hard core, you need something else.

Python is basically just a scripting language. Similar to Perl, more widely used - I'd stay away from this, honestly. It's good to learn, good for web pages, and stuff like that, but it's more for BO peeps IMO.

Matlab is for hardcore math programming. Again, it's not REALLY a language. It's used for data manipulation, engineering, and at quant shops it used for model development.

C++ is really hard - but if you are an expert in C++, nobody can say that you aren't a real programmer. You can do anything in C++. For Example, the perl language and Matlab were written in C++ .....

This information is somewhat misleading. VBA/Excel is used to do "hard core" things for most fundamental-based funds. Matlab is not a low-level language, but that doesn't mean it's not a programming language. In fact, at many more quantitative funds, literally everything is done in Matlab. Python and Perl are frequently used in hedge funds these days, even for front-office quants. C++ is generally not important at hedge funds, unless you are heavily involved in implementation / technology roles.

The type of quant that requires C++ / Java (e.g. front office trading-quant, risk management quant, etc.) is a very different type of job from the hedge fund quant.

 
Notepad:
MCC:
VBA is by far the easiest to learn. The reality is that it's not even a real programming language, it's basically just used to write macros in Excel (or other office apps - but let's be honest, Excel is the cream of the MS Office crop). Don't get me wrong, you can do great stuff in Excel VBA - connect to databases and execute queries, automate data visualization in little bar charts (with high-end formatting!), but if you are going to do anything hard core, you need something else.

Python is basically just a scripting language. Similar to Perl, more widely used - I'd stay away from this, honestly. It's good to learn, good for web pages, and stuff like that, but it's more for BO peeps IMO.

Matlab is for hardcore math programming. Again, it's not REALLY a language. It's used for data manipulation, engineering, and at quant shops it used for model development.

C++ is really hard - but if you are an expert in C++, nobody can say that you aren't a real programmer. You can do anything in C++. For Example, the perl language and Matlab were written in C++ .....

This information is somewhat misleading. VBA/Excel is used to do "hard core" things for most fundamental-based funds. Matlab is not a low-level language, but that doesn't mean it's not a programming language. In fact, at many more quantitative funds, literally everything is done in Matlab. Python and Perl are frequently used in hedge funds these days, even for front-office quants. C++ is generally not important at hedge funds, unless you are heavily involved in implementation / technology roles.

The type of quant that requires C++ / Java (e.g. front office trading-quant, risk management quant, etc.) is a very different type of job from the hedge fund quant.

I highly recommend python.. Easier/faster/more powerful than VBA.. and development time is uber short with the many built in libs.. almost as fast as C++ if you use pysco.. the gzip lib allows reading/writing to gzip-contained files so working with high-frequency (read: large file sizes) data is a breeze.. and of course sci/numpy has all the mathematical packages MATLAB has but for free..

I wouldn't do C++.. the only people using it are a) model-building quants - the ones I spoke to recommended I stay in front office b) quant developers on the buyside - implementing others' ideas

ambition is a state of permanent dissatisfaction with the present.
 

C++ isn't really all that useful without a strong knowledge of data structures and software engineering.

In any case, fifteen years ago, 80% of financial programming was done in C++. Five years ago, it was 40%- mostly mathematical number crunching. Today it is about 5-10%. Optimizations in Java have replaced a lot of C++ development.

I'm the friendly desk developer and almost all of my work is in Java. It's fast, simple, and effective.

 
IlliniProgrammer:
C++ isn't really all that useful without a strong knowledge of data structures and software engineering.

In any case, fifteen years ago, 80% of financial programming was done in C++. Five years ago, it was 40%- mostly mathematical number crunching. Today it is about 5-10%. Optimizations in Java have replaced a lot of C++ development.

I'm the friendly desk developer and almost all of my work is in Java. It's fast, simple, and effective.

Is this really the case? Why is it that all the quant job postings emphasize C++? Is Java better to learn for quant work?

 
ivoteforthatguy:
Is this really the case? Why is it that all the quant job postings emphasize C++? Is Java better to learn for quant work?
Well, a lot of them are emphasizing Java.

C++ is good if you're doing some huge quant pricing system that's designed to handle huge volumes. You put together a C++ JNI for the number-crunching, wrap your Java-based system around it, and it's done.

But if you're just trying to do something quick and dirty for the trader that doesn't need to handle 570,000 bond positions every evening, Java is a lot faster to develop and get done.

A number of quant groups still use C++ because that's how it's always been done. But that's changing, slowly but surely.

 
UFOinsider:
What's best for IBD? VBA for sure, but should I brush up on C++

I put C++ experience on my resume to show that I had more programming experience, and you bet I was asked about it in interviews, despite the fact that I never used it in my job. So in that sense, I was very glad that I brushed up on C++.

 
Notepad:
UFOinsider:
What's best for IBD? VBA for sure, but should I brush up on C++

I put C++ experience on my resume to show that I had more programming experience, and you bet I was asked about it in interviews, despite the fact that I never used it in my job. So in that sense, I was very glad that I brushed up on C++.

Ok cool. Are you using lots of VBA? I have no experience with it, but I took a look and it seems to be pretty straightforward....
Get busy living
 
UFOinsider:
Ok cool. Are you using lots of VBA? I have no experience with it, but I took a look and it seems to be pretty straightforward....

VBA is quite important on the banking side, particularly for quant-type work. Just to clarify, are you already placed into a banking position, are you searching for quant roles, or are you just interested in what you should study / list on your resume for generic recruitment?

 
Best Response
Notepad:
UFOinsider:
Ok cool. Are you using lots of VBA? I have no experience with it, but I took a look and it seems to be pretty straightforward....

VBA is quite important on the banking side, particularly for quant-type work. Just to clarify, are you already placed into a banking position, are you searching for quant roles, or are you just interested in what you should study / list on your resume for generic recruitment?

A bit of all of the above: I'm beginning planning for ER -> IBD or ER -> MBA -> IBD, so I'm wondering how to allot my spare time. I have no interest in straight quant stuff; I'm more of a relationship person, but I suppose you raise a good point about general recruitment. I'm under serious time crunch, so I have to keep it pretty basic and do what works......C++ and VBA?
Get busy living
 

Depends on what you wanna do. if you wanna be a banker anything more than VBA is overkill. on a trading desk python would be killer-useful though not so well supported so MATLAB may have a slight edge there (banks wouldn't care about the 5k license right?).. if you're talking internship its difficult to get the IT guys to install it though.. heard its well received on the buyside..

It depends on your objective as well. Do you want real skills and to be able to get shit done? Python. or are you trying to buff your resume?

ambition is a state of permanent dissatisfaction with the present.
 
JimSimons:
It depends on your objective as well. Do you want real skills and to be able to get shit done? Python. or are you trying to buff your resume?
Both. I just want to make sure I get the right programs before I plunk down a huge chunk of [what's left of] my free time learning / brushing up on it.
Get busy living
 
EarTotheStreet:
If I were you I would first learn Excel/VBA then move on to C#.net

Once you have a solid .net background you can move to other languages realtively easily.

I agree that Java/C# are also good languages to learn. They're fairly similar to C++, so given your time constraints, you should pick one of Java/C#/C++. My impression is that C++ is simply more standard on wall street (right now--who knows in a couple of years) so studying C++ may be more useful for recruitment.

 

Man so many languages I'm more confused now that I was when I posted this

To summarize: Banking: Excel/VBA, maybe Python and Matlab? Quant: C++/C#/Java

What about the differnet kinds of Prop trading firms and Hedge funds? ones that specialize in Algo? Market Makers? Are you working with the IT guys here or do they expect you to be fluent in programming?

 

Man so many languages I'm more confused now that I was when I posted this

To summarize: Banking: Excel/VBA, maybe Python and Matlab? Quant: C++/C#/Java

What about the differnet kinds of Prop trading firms and Hedge funds? ones that specialize in Algo? Market Makers? Are you working with the IT guys here or do they expect you to be fluent in programming?

 
djr:
Man so many languages I'm more confused now that I was when I posted this

To summarize: Banking: Excel/VBA, maybe Python and Matlab? Quant: C++/C#/Java

What about the differnet kinds of Prop trading firms and Hedge funds? ones that specialize in Algo? Market Makers? Are you working with the IT guys here or do they expect you to be fluent in programming?

Well, it depends. If they've hired you in as an algorithmic trader, your core competency is really programming with trading as a close second. So you'd better know your stuff. If they're hiring you in as something else, programming expertise is not as important.

Anybody can learn the basics imperative programming in Java or C++ or C#. And it's a good skill to have. However, this doesn't give you a competitive advantage if all you know is bubble sort when the competition has things so optimized that they can decide between quicksort and mergesort by sampling five elements. What gives you the competitive advantage on the technology front is algorithms, data structures, numerical methods, machine learning, fast execution, and maybe code organization.

Essentially, if you want to do algorithmic trading, a CS or ECE degree is highly recommended. That's where the competitive advantage is.

 
djr:
Man so many languages I'm more confused now that I was when I posted this

To summarize: Banking: Excel/VBA, maybe Python and Matlab? Quant: C++/C#/Java

What about the differnet kinds of Prop trading firms and Hedge funds? ones that specialize in Algo? Market Makers? Are you working with the IT guys here or do they expect you to be fluent in programming?

http://jobview.monster.com/C-Python-Developer-Job-Chicago-IL-US-9170431…

Python is newer but a better language vs MATLAB/VBA for front-office type work. Full blown Quants are C++ or bust.

Another thing worth mentioning is once you've done the other three, VBA can be picked up on the job. Thats how I learnt it anyway.

ambition is a state of permanent dissatisfaction with the present.
 

My 2 cents - for banking, VBA is plenty enough. For some slightly more technical things, Python can be used - much more capable and faster than VBA. Using a converter, you can actually use Python to manipulate Excel at incredible speeds. C++ if your job is building systems, rather than using them. Matlab same category as python, except easier to learn, and slightly more popular.

 
EarTotheStreet:
The Chicago MM I was at before was a pure C# shop. Jane street uses OCAML, which I have no clue about.
It's a functional language like Scheme rather than an imperative language like 90% of the stuff out there. JSC might use OCaml for language parsing, but methinks 90% of their coding is still in Java, C++, or the like.

Functional programming languages are a whole different monster than Java/C++. They all go off of recursion and have one line of actual execution per function call. You usually use them in compilers and the programs look pretty similar to written Backus-Naur form for language descriptions, but they're seeing a few applications elsewhere.

 

C++ is good, but you really want something more fundamental than a language course- COBOL was big back in the '80s; C++ was big 10 years ago; today it's Java. (C++ is still used for some of the more quantitative logic.) Maybe in ten years it will be Python or VBA.

It would be good to get some experience in either optimizing execution (that probably means a background in assembly and CPUs) or algorithms (CS Theory courses). At the very least, it would be good to understand order of complexity and some of the basic principles of memoization and dynamic programming.

 

VBA is pretty important. SQL doesn't hurt...

------ "its the running joke now, we now have fair trade with china so they send us poisoned sea food and we send them fraudulent securities."
 

Thank you so much for a very useful suggestion! I will try to go in this direction. Do you mean stuff like tracking whether the trade was successful or not? What was the entry point, when was it in the money, when was the profit/loss taken?

 

Thanks - this has been my focus for the past half a year or so since I joined - issue is, while it makes my work more precise and allows me to avoid mistakes - it does not bring value to the desk which was pointed out to me.

I was told that I don't use my extensive skills.

 

The only programming you'll need to do is in VBA or in Bloomberg API. A background in programming will help learning those if you don't already, and it's a pretty good way to add value in your first few years on the desk. Especially since a lot of the guys on the desk will be in their 30s and not be as good.

 

Well, I'm biased, but my view is that CS skills never hurt. (Chuckle)

That said, if you want to go into algorithmic trading, you'll need the equivalent of about 30 credit hours of CS courses, bare minimum to even think about competing against a lot of the nerds going into this field. In particular, you'll need to figure out a way to write code that is better than what anyone else can write in a certain respect (IE: algorithms, fast execution, etc.) Is that something you feel comfortable being able to do?

 
Colossus:
I interned at a BB trading desk. The Feedback from the MDs to Associates was "Programming is a skill that is not expected from a trader. We have a separate IT team to help us on such issues"
The thing is that the BBs are about 10 years behind the prop shops and hedge funds. That was approach that Citadel and GETCO were taking a decade ago, so that response is pretty expected- particularly from traders who don't know how to program and work in client services trading. Talk to most prop shops today, though, and the more successful ones that operate in the most liquid markets will tell you that they compete largely on technology.

Bottom line is that the ability to write efficient code is a significant competitive advantage for a trader to have. It lets you get ideas to market without having to wait six months for IT like you normally would at a bank. You can always have someone else write your trading strategies into code for you, but that will make him the algorithmic trader and make you the quant/financial engineer if the banks head in the same direction as the prop shops.

This can be a bit of a touchy political subject; expect a "No" as a knee-jerk response from any traditional trader; expect a "Yes" as a knee-jerk response from anyone in algorithmic trading or quant development. The answer is probably somewhere in between.

 

Interesting question. With machine learning, you can make computers a lot less mechanical than you'd think. Set up a simple MLP and give it a cue ball and it can learn to push all of the balls into one corner of the table on its own using it.

Obviously, a deterministic process is always going to be mechanical. But computers don't have to be deterministic.

 

if you are decently above average in intelligence, you should be able to easily learn programming in your company's internal scripting language within a few weeks. It will likely be a very high level language (meaning super easy and super portable).

that's for traders. if you are a quant or developer you would be using C/++ to code the heavy stuff under the hood.

 

Take a programming course, any one. You'll learn the proper way to code, and also how to hack out something that works, and hopefully when each is appropriate.

I had never seen VBA before I started and I picked it up rather quickly. Having said that, I also have experience in C++, Matlab, and several other languages. I have thus far not needed anything beyond VBA and Google searches. If things were set up properly, then I might be more inclined to use C or SQL. In either case, I'd have to learn the specifics of how to use that language appropriately for what I need to do.

You're looking for the simple answer - there isn't one. If you can say for a fact that you won't be doing anything outside of VBA, then learn VBA. Like I said - in my experience thus far as an analyst (~6 months) I haven't needed anything beyond some slightly complex VBA. If you think you might use something beyond VBA, learn C++. It's slightly more complicated, but should help you code in other languages.

The other thing to consider is if you're going to be self-taught or take a course. I would say if you're going it alone, you will make much more/faster progress if you're learning VBA (you can record macros and learn the code that way).

Hope that helps.

 

think of where this business will be in 15 years.

You will absolutely need programming... learn VBA first, then data analysis tools (MATLAB, R/Stata/SASS) and then C/C++/python

 

What is your background in programming? If you're interested in algo trading, you really need more than just an introductory class. Data structures, numerical methods, and graduate-level algorithms/CS Theory classes are all essential. If you're interested in quant analytics, there's a little less emphasis on swift computation and more emphasis on math, so if you've got a basic programming course under your belt, I'd look at numerical methods.

 

Unlike IP, I'm going to assume that you are not going to be at a algo trading firm.

The level of programming that you need isn't very advanced. You could easily teach them yourself or take introductory classes at local CC. You will probably be using Excel VBA so that's a good place to start, but starting with a real object-oriented language (C, C++, Java) never hurts because it sets a good foundation.

Picking up options finance on your own probably isn't going to be as easy (or interesting I should say). The bible of choice is Hull or Natenburg.

 

speaking as a programmer in general, completely ignoring the trader part

it's not # you know, rather what and how well, and what you're trying to accomplish

different tools are suited for different tasks

as a programmer again, ignoring the trader part, I think a good (and fairly vanilla) mix is C / Java / MATLAB and maybe [insert functional language here] -- fast systems language, fast prototyping language, computational language, mathematical language

edit: I would add rudimentary knowledge of some scripting language (e.g. perl) for when you need to slap things together, but I find scripting and computational languages are mainly a matter of just RTFM whenever you need to do something new

 

I smiled when I saw these types of responses to these threads. This was exactly my response when job searching for assistant trader or entry level trading positions. For some reason almost all of them want you to be proficient or well versed in at least one of the major programming language. Why? I have no idea. I'm interested in finance and trading .... not computer languages .... and I don't really see what benefit they provide to someone with their mind in securities and financial markets.

 

Most sell-side trading desks (at banks) don't require a lot of programming by the analysts. In general, the most programming you'd be doing would be in VBA, which is pretty easy to pick up, and it wouldn't be what you're doing all day.

Jack: They’re all former investment bankers who were laid off from that economic crisis that Nancy Pelosi caused. They have zero real world skills, but God they work hard. -30 Rock
 
Dibbs:
Traders like excel. VBA is quite useful -- and VERY easy to learn.

Indeed, im seeing this on most job apps im looking at. Either VBA fully required or, in their words, 'much appreciated'.

Since you say its easy to learn, what would you recommend as a starting point? Im thinking of purchasing the Lynda.com VBA for excel package.. i also flipped through the VBA for Dummies book at a local shop but in my previous experience with the Dummies series the books have been far too simplistic - equivalent of a wiki entry except in 200 pages.

 

I've got the VBA for Dummies book, and it was a decent intro to VBA for me. You'll definitely need to pick up another book on top of that to get any real traction on it though

 

i am trying to get my minor in computer programming, and the way i understand it is that whether or not i actually program anything, ill be able to explain myself better to the people that will be. in turn hopefully ill be able to be more efficient for whomever i work for. if i am successful and later in life want to trade my own money, i think keeping up with the computer programming skill will help when there isn't it support everywhere.

 

Magni assumenda quisquam suscipit qui. Quisquam unde sunt exercitationem hic possimus. Corporis modi aliquam doloribus quam ut ea consequatur.

Eum rerum eum suscipit cum architecto omnis. Quas et quod consequatur voluptatum est consectetur consequatur. Deserunt illo eos aliquam et qui dolorem maiores. Modi officiis quod cumque ad consequatur. Reprehenderit quidem corporis dignissimos quaerat.

 

Quas praesentium omnis dolores velit qui non. Ipsam architecto dolorem dolorum sapiente. Ad enim quia sunt totam commodi dolores atque.

Quia mollitia sint id placeat. Ab eius excepturi reprehenderit. Vel repudiandae esse ipsam et. Dolor officia dolores sit ut labore laborum illo.

Ducimus est quasi delectus dicta nihil minima ut. Repudiandae debitis qui vitae consequatur similique. Fugit tenetur cupiditate iusto aliquid. Qui ipsum nihil quos enim omnis.

Career Advancement Opportunities

April 2024 Investment Banking

  • Jefferies & Company 02 99.4%
  • Goldman Sachs 19 98.8%
  • Harris Williams & Co. New 98.3%
  • Lazard Freres 02 97.7%
  • JPMorgan Chase 03 97.1%

Overall Employee Satisfaction

April 2024 Investment Banking

  • Harris Williams & Co. 18 99.4%
  • JPMorgan Chase 10 98.8%
  • Lazard Freres 05 98.3%
  • Morgan Stanley 07 97.7%
  • William Blair 03 97.1%

Professional Growth Opportunities

April 2024 Investment Banking

  • Lazard Freres 01 99.4%
  • Jefferies & Company 02 98.8%
  • Goldman Sachs 17 98.3%
  • Moelis & Company 07 97.7%
  • JPMorgan Chase 05 97.1%

Total Avg Compensation

April 2024 Investment Banking

  • Director/MD (5) $648
  • Vice President (19) $385
  • Associates (86) $261
  • 3rd+ Year Analyst (14) $181
  • Intern/Summer Associate (33) $170
  • 2nd Year Analyst (66) $168
  • 1st Year Analyst (205) $159
  • Intern/Summer Analyst (145) $101
notes
16 IB Interviews Notes

“... there’s no excuse to not take advantage of the resources out there available to you. Best value for your $ are the...”

Leaderboard

1
redever's picture
redever
99.2
2
Betsy Massar's picture
Betsy Massar
99.0
3
Secyh62's picture
Secyh62
99.0
4
BankonBanking's picture
BankonBanking
99.0
5
CompBanker's picture
CompBanker
98.9
6
GameTheory's picture
GameTheory
98.9
7
dosk17's picture
dosk17
98.9
8
kanon's picture
kanon
98.9
9
Jamoldo's picture
Jamoldo
98.8
10
DrApeman's picture
DrApeman
98.8
success
From 10 rejections to 1 dream investment banking internship

“... I believe it was the single biggest reason why I ended up with an offer...”