Best Coding Language to Learn

Any tech savy monkeys out there want to chip in and give their 2 cents on the best programming language to learn?

I'm currently in an IBD role as an analyst but I have a serious entrepreneurial bent and I would definitely be into working at a startup at some point (hoard some gold, pay some debt down, learn valuable skills then start my own business or join up with a small startup).

I'm a total neophyte with what coding languages are in vogue, so if anyone has any view into this I would love to hear your opinion.

 
PTS:
The first language i kind of self taught was C++ and then some C#. Not sure specifically for trading but C++ gave me a strong foundation in algorithm building and just the logic and flow of programming. Its also fairly straightforward.

Good self teaching C++ books? Any experience with python or R?

 
Best Response

tl;dr... I learned VBA, and started R. Learning a second language is easier and I feel VBA is a good starting point.

For quant roles, the most talked about are: C++, Java, Python, Matlab, R, Perl, & VBA.

I don't do quant work, but I learned VBA in about 2 months at work. I'm not going to say I'm awesome at it, but I'm at the point where I can write code off the top of my head - any issues I run into I could solve with a quick Google search. Most programs/tools I write are about 10-15 pages long. In my opinion, it wasn't too difficult to learn but takes practice!

If you want to learn VBA, I recommend VBA Power Programming, by John Walkenbach. Read the first few chapters to get a background on objects/subroutines/functions/logic/etc. Then find yourself a project to or problem to solve. Some ideas are a sudoku puzzle solver, blackjack/5-card draw poker game.

Side note: I was already very good at Excel - that may have cut down my learning curve.

I'll do what I can to help ya'll. But, the game's out there, and it's play or get played.
 

First off there are dozens of quality threads on this but since you're new here I'll forgive you. For trading, your first language should be an object oriented language such as C++/Java. Learn it well enough that you can talk through basic data structure and algorithms and you will pass that portion of an interview. Once you feel that you have a firm grasp on it, branch out to a python/R/VBA if you're interested. You'll soon recognize that most languages are very similar and thus easier to pickup.

Making money is art and working is art and good business is the best art - Andy Warhol
 

Java's great as a first language since there's many fewer ways to screw yourself over than in e.g. C or C++. It's also very similar in basic syntax to C/C++, so it's a good launching pad. Java also has an enormous built-in library that can do most things you'd be able to think of doing in a platform-independent way (e.g. your code will compile / run both on Linux / Windows without changes)

C and it's standard library are extremely bare-bones -- e.g. you could learn the entire language and associated libraries in a few weeks if you had some background and dedication. Most of the useful things such as networking and built-in algorithms (sorting, binary search, etc...) are not included and must be provided by external libraries, usually system-dependent.

C++ is sprawling; the standards document defining it is nearly 1000 pages long. It's probably not a good place to start, as it preserves and adds on to all C's ways to shoot yourself in the foot. However, it does have significant feature additions in its standard library compared to C, in the form of data structures and algorithms (e.g. built-in maps, lists, queues, sorting / searching algorithms...)

I don't have a recommended book for Java (I'd say the best way to learn is by taking apart some simple code and modifying it), but I recommend Kernighan + Ritchie for C and Bjarne Stroustrup's "The C++ Programming Language" if you choose to go that route.

I can go on if you have any specific questions or want to know about other languages.

 

If you need to get the most bang for your buck, learn VBA for Excel. Almost every company in the world uses it. It is easy, dirty, but it works. If you need a real language, I would suggest C/C++ or C#. The learning curve is steeper though.

 

Depends on what you want to do. If you are going into IB then just learn VBA so you can make your own macros and save yourself some time. If you want to do it for fun and to learn to code a bit then Python is going to be what you want.. very simple syntactically.

This to all my hatin' folks seeing me getting guac right now..
 

I second VBA for excel - will give you that extra 5% advantage over your peers. I did a week long course and it helped, but I've forgotten most of it as I just don't use it enough.

I would actually recommend not taking the extra class and spending that extra time networking, preparing applications, and preparing for interviews...not to mention enjoying college!

 

CS grad here. My suggestion is python. If you do well in any python 101 or 102 class from reputable CS dept, you have no problem learning other languages like VBA in a day (except low level ones like c or c++ but I doubt u ever need those)

Do not start with c or c++. There is reason why all top CS schools abandon low level languages in introductory class.

 

I haven't learned VBA for Excel, but agree that it's probably the best thing to learn ahead of IB. You don't need it, but you can do extra things with it.

I'm learning C++ in my spare time at the moment for its computation capability. I started with Javascript to pick up coding concepts before wading into C++. Khan Academy and Code Academy both have free online courses for Javascript. While they cover some common ground (Khan Academy a little more graphical for game coding), I recommend doing both to reinforce the concepts.

Those who can, do. Those who can't, post threads about how to do it on WSO.
 

Thanks for the input guys. I've heard about VBA and it definitely seems like the way to go initially since I do use Excel quite a bit. Python sounds like a good second option to pick up as well.

Quant (ˈkwänt) n: An expert, someone who knows more and more about less and less until they know everything about nothing.
 

Like euroanz said... if you're an excel jockey and just want to learn a language on the side for "fun" I'd say to learn VBA so that you can create some macro's that will automate some of your work for you.

If you want to go in to the quant side of things, learning any higher level language, C++, JAVA, etc. will be usefull because once you learn one, it's easy to learn the second as it's just different context but the flow and algorithms still work pretty much the same. If you have one of the languages down well, you can easily study up on the one the firm is requiring you know for a couple of weeks and be pretty sufficient in it.

I have friends that did this and it worked for them. Applied for a job that required C++, except he never did C++ so he said that he had the requisite years of experience in C++ and then just studied the crap out of before the interview. Since he was already proficient in other languages this wasn't a big deal to him.

make it hard to spot the general by working like a soldier
 

Don't really need to know programming for IB. VBA can help get things done in excel quicker, but I find it easier to just use code written by other people previously which can easily be found through google.

If you want to learn programming for personal enrichment, which I would definitely be a supporter of, start with python. Its a pretty easy language to understand for beginners and has a lot of functionality. If you want to start from the beginning of programming, start with C.

 

VBA and SQL will be helpful. Echo the sentiment around Python - flexible language that can also be used for statistical analysis (for example)

BubbaBanker:

Next semester I'm going to be enrolled in a basic VBA course, but after listening to a lot of people who were in it, it doesn't focus on working with macros, so I'm thinking of dropping it and taking another class instead. In the meantime over the summer, I was thinking of learning VBA (refreshing what I did this past semester in a spreadsheets class) along with picking up SQL and some other language maybe. What are common ones for IB, or good ones that useful later on for quant work? I've heard a little about Python, R, Matlab, SAS, Java, and C/C++. Any input would be greatly appreciated.

http://ayainsight.co/ Curating the best advice and making it actionable.
 

In my opinion, a beginners course on Java is useful. Learning some basics of a programming language is a practical and marketable skill. I studied economics and math in undergrad, and then went to grad school in economics. If I could do it all over again, I'd major in computer science (and minor in math and econ).

 
D.Brent:
Hi all,

Reading this forum makes you realize that some programming skills could be quite useful in the trading field. Unfortunately, my school offers a very limited range of programming courses for non-programming students. Although, they do offer a beginners class in Java.

So, would that kind of course be of any use? I guess R, MATLAB and Python etc are more desired, but I can't be picky at this time :)

Thx!

a great website is Codecademy.com. they have python, javascript, ruby, etc. I don't think they have R or MATLAB. but check it out.
MIT also has open courseware (http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/…) in their comp sci dept. I've only been learning python so far so that's all i've kept an eye out for, but i wouldn't be surprised if they had other languages and courses.

So basically even though your school doesn't give you a ton of options, there are definitely good resources out there.

Remember, once you're inside you're on your own. Oh, you mean I can't count on you? No. Good!
 

Quos assumenda eum voluptates tempora deserunt. Maiores occaecati aut est deserunt voluptates doloremque dolore.

Nihil in eveniet qui eaque explicabo iste. Necessitatibus officia et aut quae est eum repellendus. Sapiente eos rerum omnis illo amet est. Voluptas quis quis nihil voluptatibus fugit occaecati pariatur.

Ut temporibus at dolores facilis est minus sit. Corrupti itaque hic non quibusdam quo error. Quia natus voluptatum molestiae quo debitis veritatis.

Eos a sit in culpa in voluptas consectetur assumenda. Repellendus quis distinctio eos iusto ipsum nemo velit.

Remember, once you're inside you're on your own. Oh, you mean I can't count on you? No. Good!

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 (87) $260
  • 3rd+ Year Analyst (14) $181
  • Intern/Summer Associate (33) $170
  • 2nd Year Analyst (66) $168
  • 1st Year Analyst (205) $159
  • Intern/Summer Analyst (146) $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
BankonBanking's picture
BankonBanking
99.0
3
Secyh62's picture
Secyh62
99.0
4
Betsy Massar's picture
Betsy Massar
99.0
5
kanon's picture
kanon
98.9
6
CompBanker's picture
CompBanker
98.9
7
dosk17's picture
dosk17
98.9
8
GameTheory's picture
GameTheory
98.9
9
bolo up's picture
bolo up
98.8
10
Jamoldo's picture
Jamoldo
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...”