Best Programming Language for Finance

Hello,

I am currently a junior at Georgia Tech working towards a B.B.A. in Finance. I hope to into investment banking. I plan on getting an M.B.A. (Finance) in the future, or possibly a Masters in Econometrics.

I was wondering what would be the best programming language to learn in my position. I was originally looking to learn Fortran (an invincible, very powerful, and well established programming language). However some people recommended MATLAB, C, or C++.

I was wondering what people here would recommend to learn.

Any input is greatly appreciated,
Thanks in advance.

-Crandall
 
The general consensus around here is that matlab is good for prototyping, but you can create a black hole with C++ (it's just that powerful).

Of course, C++ is a pain in the *** to use.
 

DominiConnor

Quant Headhunter
Depending upon how quant you want to be, the one then it's C++, but a lot of corp fin etc uses VBA.
Fortran exists in banking, but is not a frequently demanded skill
 
Hello,

Thank you very much everybody.
I have actually covered some Excel/VBA in some of my classes. What would look very attractive as a supplement on a resume or something along those lines?

@doug_reich
Fortran is used everywhere. In fact I believe that PhD students of Finance in Stanford are required to learn Fortran. Just about every engineering student is required to learn in. There is also a 2008 revision of fortran coming out - which is going to be a fine-tuned version of Fortran 2003.
I think the use of C might be the result of legacy code though...

@IlyaKEightSix
Why do you say C++ is a pain to use? Which of those two would you recommend for a starter?

Cheers!
-Crandall
 

alain

Older and Wiser
FORTRAN is used to a degree. There are a lot of high performance libraries that are based on FORTRAN. However, I don't know if anybody teaches Fortran in finance (I wouldn't do it).

Also, I don't know what you mean by everywhere. Plenty of Math libraries written in FORTRAN are used but I don't think that many people write Fortran to code. Those libraries have bindings to other languages. They happen to be written in Fortran because mathematicians/Physicist wrote those algorithms long time ago in FORTRAN and the have been hand optimized (but never ported to other languages).

My advice, don't learn Fortran. You will be wasting your time.
 
Hello,
@IlyaKEightSix
Why do you say C++ is a pain to use? Which of those two would you recommend for a starter?

What would I recommend for a starter? Scripting language.

Compiler languages are extremely powerful when used correctly, but learning to be proficient in them is a very painful process from my schooling experience.
 

doug reich

Some guy
I believe the distinction Ilya is trying to make is between strongly typed and weakly typed languages, as compiled versus scripted languages don't make a meaningful difference, IMHO. If you already have programming concepts down then learning new syntax should not be so difficult.

FWIW, I learned BASIC first and then C then C++ when I learned to program.
 

alain

Older and Wiser
If you already have programming concepts down then learning new syntax should not be so difficult.

This is true but it's hard to bend your mind going from procedural base programming (i.e. old BASIC, old PASCAL, C) to object oriented (OO) programming (C++, Java, Objective-C and their relatives) to functional languages (LISP, OCaml, Haskell, F#, Scala, etc).

Since OO programming is mainstream now, try to learn an OO language if you plan to do a lot of general purpose code.
 
Looking through my old bookshelf, I found a big glossy black book thats says "VBA for Excel 2000" or something like that. Would it be okay to use this book? Or should I look into using Excel 2008.

Personally I cannot tell the differences between the versions of Microsoft Office. Office 2000 for me is the most stable and quick version Microsoft made. Each year they just get more gimmicky and flashy (and consequently slower and less stable). I think they get more rows and columns each year though...

So is there any problem learning it with Microsoft Excel 2000? Does it stay the same with each version of Excel?
Thanks!
-Crandall
 
More or less the same, yes. At least at your stage of learning! Excel and Word 2008 are actually really good - the versions before that were crappy, I agree, but they've increased stableness a lot!
 

Wallstyouth

Vice President
Hello,

I am currently a junior at Georgia Tech working towards a B.B.A. in Finance. I hope to into investment banking. I plan on getting an M.B.A. (Finance) in the future, or possibly a Masters in Econometrics.

I was wondering what would be the best programming language to learn in my position. I was originally looking to learn Fortran (an invincible, very powerful, and well established programming language). However some people recommended MATLAB, C, or C++.

I was wondering what people here would recommend to learn.

Any input is greatly appreciated,
Thanks in advance.

-Crandall

Unlike most I would not recommended wasting your time learning Excel/VBA you can easily pick this up in a few weeks working in any shop that is VBA/Excel intensive.

Some languages are better of learned at work i.e. MathLab, VBA, SAS, Ocamal, SQL

That being said C++, C# or Java are pretty much your only options today. Pick one and master it. Everything else will come with ease.

I agree with Alain avoid Fortran like a plague its just a waste of time imo; After a few solid months of intensive programming in C++, C#, or Java you can easily pick up any other language. Just learn to program and learn to think; Once you've mastered basic programming concepts adapting to a new language is pretty trivial.
 
Hey thanks,

I was just wondering how long it would take to become an intermediate C++ programmer? Or a C# programmer for that matter?Can anyone give me any estimates?

Also, what do people think about Python?

Is it my perception, or do Java and C++ seem a little unstable at the moment?

Thanks a lot!
-Crandall
 
Narrowed it down

Now I kind of have narrowed it down to 2.

The question is, which is better?

C# or Python. I guess I am leaning more towards Python because it is easier than C# - but VERY extensible. All it seems to be implemented more in academic programs than C#. Otherwise than that I have never heard of C# before. When I was working with programmers on my floor (I was an IT Technician) I was always hearing different conversations - and C# was NEVER mentioned. In fact TI-BASIC variants were mentioned more than C# was.

Any input would be greatly appreciated!
 
If you're planning to be a hard-core quant then learn C++ or C#. Their syntax is very similar, though C# is easier. C++ is around 30 years old; C# was developed by Microsoft less than 10 years ago, it borrowed the best concepts from C++ and Java. In fact, C# is part of curriculum at MSFM program in University of Chicago.


EDIT: I just noticed "I plan on getting an M.B.A. (Finance) in the future, or possibly a Masters in Econometrics." - then Excel/VBA.
 

alain

Older and Wiser
Now I kind of have narrowed it down to 2.

The question is, which is better?

C# or Python. I guess I am leaning more towards Python because it is easier than C# - but VERY extensible. All it seems to be implemented more in academic programs than C#. Otherwise than that I have never heard of C# before. When I was working with programmers on my floor (I was an IT Technician) I was always hearing different conversations - and C# was NEVER mentioned. In fact TI-BASIC variants were mentioned more than C# was.

Any input would be greatly appreciated!

If you want to learn any of those two, learn Python. It isn't better or worse but it will let you understand a lot of concepts in Computer Science. So, if you want to pick up any language later, you will be able to do it. However, Python is not used much outside of IT or field/group doing heavy development,

Ah, I forgot, Python is harder than C#. It will take a different mindset to write code in Python as oppose to C#. It might be easier to start with but you won't be really productive with it unless you know the deeper concepts (functional programming anyone?) and that will take you time to understand.
 
I am in Duke. My math adviser suggests me to call Fortran subroutines in a C++ program. As many friends said, FORTRAN has a tremendous high quality and efficient math Library to use and C++ can easily handle the interface operations.
 
Top