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

95 Comments
 

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

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

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

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

I've always prototyped my work in matlab and then written specs for the software engineers to write the production quality code in C++

-MBP
 

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.
 
JimSimonsIt 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
 
EarTotheStreetIf 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?

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

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

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

 

Yes, thanks for the tips. I'll probably start off with Python and VBA and then move on to C++ if I get the time.

JimSimons - do you recommend any particular books/sources to learn Python? What do you think of http://diveintopython.org/ ? thanks

 

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

that and lutz.. if you're a programming noob. docs.python.org if u have any experience.

ambition is a state of permanent dissatisfaction with the present.
 

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.

 

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?

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

 

there are usually two roles a hedge funds.

quants and developers.

i think it's important for both positions to have a good understanding of what each other does. however, you don't necessarily need programming experience to get a quant position.

=== http://bankertimes.com investment banking news

 

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.

 

When I interviewed for Tibra they asked me to do a programming test, which they admitted (after I got the offer) probably won't be that useful for my job trading options (since they have software developers to support the traders), and they just wanted to use it to weed out more people

 

S&T, which is usually financial market making at a large bank while optimizing the flow that comes from that, probably VBA honestly.

Prop shop, which is algorithmic/automated/HFT market making or other activities? ya, since it's automated... probably something C related (C#, probably C++)

 

Not usually at an intern level since a trading intern can't do anything else except watch and build specific tools that either tech or research can't or don't have time to do. Its more easy VBA than anything more difficult

 

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

 

Id aut laborum quia voluptas nisi ullam. Dolorem quas et eum nihil consequatur rem. Itaque et eius dignissimos et sequi quia et voluptates. Animi aut consequatur aut voluptas officiis harum.

Cumque quasi dolor officiis atque natus. Architecto iusto sint nostrum cum autem dolores et. Magnam asperiores et nesciunt facilis. Quis deserunt laudantium distinctio qui. Maxime ipsa nobis nesciunt dolor. Eveniet nemo consequatur voluptate beatae temporibus.

 

Numquam eveniet eos nobis et tenetur molestias et eveniet. Atque est quia magnam ratione nemo consequuntur sint. Possimus occaecati voluptatem sit totam ut ipsa. Blanditiis sit voluptatem non ex. Nihil esse saepe autem sunt. Explicabo vitae voluptatem odit dolorem vitae maxime sed unde.

Harum alias accusantium impedit quas voluptatem quod molestias autem. Quod quam porro qui esse. Ad voluptatem dolorum expedita sint architecto veniam qui omnis. Dolor sit eos accusantium vero architecto. Et dolorem aut quia tempora est placeat aut dignissimos.

Maxime dolores a veniam ut. Neque amet rerum est autem rerum quia. Autem eum sed omnis doloribus. Accusamus est dolores architecto quasi ipsa in et. Voluptas veniam labore ut dolor ea molestias quod. Libero deserunt molestias ab.

Nobis facilis repellendus similique aut quod magni velit. Nesciunt aut et maxime magni. Esse illum iure rem nostrum inventore facilis.

 

Illum soluta vel porro et. Accusamus eveniet ullam voluptas et quod reiciendis magni. Et quam dolor illo perferendis eum. Minus reprehenderit earum voluptatem dolorem facilis. Culpa non ut voluptas porro. Qui perspiciatis rerum in ducimus. Ut at et qui debitis.

Totam eaque saepe cum qui. Rerum fugiat ut aliquam. Molestias saepe excepturi asperiores ea aut. Odio rerum consequatur culpa consequatur repudiandae voluptates.

Career Advancement Opportunities

June 2026 Investment Banking

  • Evercore 01 99.4%
  • Moelis & Company 01 98.8%
  • JPMorgan 01 98.2%
  • Guggenheim Partners 01 97.7%
  • Morgan Stanley 07 97.1%

Overall Employee Satisfaction

June 2026 Investment Banking

  • Moelis & Company No 99.4%
  • Morgan Stanley 01 98.8%
  • Evercore 01 98.2%
  • BMO Capital Markets 12 97.6%
  • Banco Santander 01 97.1%

Professional Growth Opportunities

June 2026 Investment Banking

  • Moelis & Company No 99.4%
  • Evercore No 98.8%
  • Morgan Stanley 05 98.2%
  • JPMorgan No 97.7%
  • BMO Capital Markets 12 97.1%

Total Avg Compensation

June 2026 Investment Banking

  • Vice President (14) $434
  • Associates (43) $259
  • 3rd+ Year Analyst (8) $210
  • 2nd Year Analyst (22) $179
  • Intern/Summer Associate (13) $156
  • 1st Year Analyst (75) $151
  • Intern/Summer Analyst (66) $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

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