What programming languages are most useful?
Hi, I will be interning at BB S&T this summer and was wondering which programming language(s) are most useful on trading/structuring/strategy desk. I interned in S&T previous summer at non-BB European bank and was on a trading desk where almost everyone was programming/automating some of their tools. Also got tasked with creating a ETF dividend analysis tool, which I quite struggled with (managed to complete it in the end using VBA but it was very inefficient and clumsy made). This year I want to be more prepared in terms of technical aspects, so apart from VBA, which language is the most common/usable/practical? Is it Python?
Python is definitely a good place to begin with. You should consider mathlab, too.
If you haven't learned any other languages, I'd start with python. A ton of people use it in finance, and it's regarded as one of the easiest/best languages to start with. Syntactically, it's not very complicated at all.
I would recommend fortran-a.
Honestly, you can do a lot with a whole bunch of languages. Python, Ruby, R, Pearl, Java, and C++ all come to mind, as does Matlab. I would suggest looking at all of 'em and seeing which one works best for you. The other thing to consider is that not every language is right for a given project.
Personally, I haven't written code in years, but I can still write Java and C++ fairly well and have been meaning to pick up either Python or Ruby (which is to a large extent, the successor for Pearl) at a more advanced level. Either way, once you know the basics of programming logic and a language's structure, it's pretty easy to go and pick up another language. At the end of the day though, the language I would use to code in depends on the project. If I'm doing something short, sweet, and to the point I'd use a compact and dynamic language like Python or Ruby. If I'm aggregating larger data sets, C++ and Java are my go to choices because they are far more effective than using Python or Ruby.
If you are just starting starting out and really don't know squat, I would focus on Python or Ruby. Both are extremely easy to learn. If you want to take a much more utilitarian approach and learn how to code in an object oriented fashion, learn C/C++ or Java. I've even found three different websites which would point you in the direction above.
Oh... one other thing... sloppy code is broken and disorganized code. No matter what language you learn, learn to properly format your code, use a set standardized naming convention in all of your code, and use comments in order to make sure that either you or whoever is reading your code knows exactly what you are doing or trying to do. That last part is important, especially when trying to debug code.
I feel that it's not the tool you should be trying to pick to use, but the knowledge of how to use the tools to do what you need. For example, if you understand that you are ultimately moving to a Hedgefund that has a focus on Asian-commodities that trade using some sort of algorithm, then you would firstly understand the applications of the algorithm and the logic, then look at the existing libraries, or the most likely libraries and the language they are written in so that you can get as close to gaining a practical skill set as possible. The language itself is easy to pickup, a hundred or so commands, but the complicated part is the architecture in your code, the logic underlying what you are trying to solve, and the tools that would best model what you want to do. Most of the time, if you are aiming for HF, they will have their own language they make you use, if you're going to that kind of a Hedgefund though.
Python, and become a master at it.
And honestly don't confuse yourself learning several languages at once...
Python ftw! cuz it has ML libraries. It highly depends on the problems you want to solve in the future, since you're going to S&T you want to trade, that's data analysis and data analysis is Python, R and Matlab.
Like everyone else said, Python is a good choice. It's easy to do all sorts of simple but useful things, such as cleaning up Excel, scraping websites, data analysis, quick and easy functions, etc.
If you were on an electronic/algo desk, being able to read or at least having some exposure to C++ would be helpful if you ever wanted to look at the execution code.
SeaHash
VB and Python are what will be expected. Matlab/R also valuable, but most likely not as applicable. Codecademy.com has a good Python intro course.
EDIT: Here's a list of my bookmarks on coding. Classes and references
Python: https://www.safaribooksonline.com/library/view/python-for-finance/97814… http://quantocracy.com/ http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/… https://www.quantstart.com/articles/Self-Study-Plan-for-Becoming-a-Quan… https://www.codecademy.com/learn/python https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-7 https://www.coursera.org/learn/python
SQL: https://www.khanacademy.org/computing/computer-programming/sql https://www.codecademy.com/articles/sql-commands?r=master
R: https://www.edx.org/course/introduction-r-data-science-microsoft-dat204x https://www.edx.org/course/explore-statistics-r-kix-kiexplorx-0#! https://www.edx.org/course/foundations-data-analysis-part-1-utaustinx-u…
Data Science: https://www.udacity.com/course/intro-to-data-science--ud359 https://www.edx.org/course/predictive-analytics-iimbx-qm901x#! https://www.coursera.org/course/statistics http://cs109.github.io/2014/ https://www.coursera.org/learn/data-scientists-tools
+1 For Codeacademy.com
Found it really really enjoyable to work through during downtime at work, throws you straight in thought without any real theory/grounding before it so make sure that's the way you want to learn (in practice I think its probably the only way to learn to code effectively, by doing).
Has improved my VBA skills in tandem which has been great for automation at work as we cant use python.
Can anyone chime in on compliance restrictions on coding?
I've heard from a friend that getting compliance/IT approval to code anything outside of VBA is extremely difficult at one of the bigger Canadian banks' trading floor (outside of the quants/algo traders). If the desk needs it, they can either build it in excel/vba, or get IT to build a tool for it.
With that you just have to check. Compliance pretty much sets the rules for that stuff.
To echo everyone else, Python (scripting) and R (data analysis). You can do nearly anything with these two. Most other major languages are easy to learn if you nail these down
I agree with everyone who is saying that Python is a good place to start. It's very approachable and is a good medium for learning the fundamentals of coding. Outside of Python, Java and C++ are pretty widely used, but it unlikely that you will have to do anything too crazy with these in a vanilla S&T role (as opposed to a quant/strats/structuring/etrading role). If you are working in vanilla S&T, I would suggest familiarizing yourself with tools such as MatLab, R, and Mathematica (you could almost put Python on this list as well). When it comes to certain types of statistical analysis and modeling work, these will save you a ton of headache compared to VBA.
I would worry more about picking up the fundamentals of computational logic than mastering a specific language- a lot of banks are using antiquated and/or in-house languages due to legacy infrastructure. For example, Goldman S&T uses an in-house language called Slang for almost everything, and you would be able to pick it up just as fast as anyone else as long as you have decent object-oriented programming fundamentals. Other banks such as MS have also invested a lot in similar systems, so I wouldn't be surprised to find some degree of this at any BB.
I have some first-hand experience coding on a BB trading desk so feel free to PM if you have any more/specific questions.
COBOL and SAS
http://news.efinancialcareers.com/us-en/197544/demand-programming-langu…
Well look who it is! Fancy seeing you round these parts ;)
Python and MatLab
You could become a SeaHash computer programmer.
You mean C#?
Thanks to all for the responses. Really helpful :)
Brainfuck
Languages are the tools you use to implement the solutions to problems. Different problems require different tools, and those tools have different properties.
If you need handle things memory handling, being close to the metal, ASM, C and C++ will do just fine. C in conjunction with ASM is widely used for Embedded systems, systems programming, hardware drivers, etc. Not something you'd use in Finance, unless you're doing work between the network and consoles. Maybe some optimization for python, at most (CPython). People usually start with C, just to understand computer better, since you HAVE to deal with memory management, and the underlying theory behind Data Structures. It's useful to learn, but that's about it, for the layman programmer.
C++ is a very big and well-defined language, used for almost everything. It was (and still is) extremely popular during the 80s/90s/00s. In fact, there's tons of quant books and Finance software written in C++. It's C with classes and a broad range of libraries.
Then you have Java, which is another heavy hitter in enterprise software. You'll see Java again and again in Fiance, without checking the actual numbers, I think it's the most used language in Financial software. C# and Python are also very popular. Python is a great language IMO, which you can jump straight into. It's being thought more and more as the first language these days.
You could write a book about all this stuff, but the general route used to be (when I started 15 years ago, still relevant today):
Dabble with HTML/Javascript/PHP -> Get a thorough understanding of C -> Pick one OOP language (C++, Java, C#, Python, etc.) and get good with it. Learn the libraries, etc. || Learn Data Structures and Algorithms on while doing that -> Learn Networking and Databases (SQL, etc.) -> Functional Programming (Haskell, Clojure, Scala, etc.) || Learn the basics of AI (In which case you'll start to look at R, Matlab, and such languages).
With all that, you should be able to pick up pretty much all languages and paradigms pretty fast. You'll probably spend some years learning, but keep at it. There's just so incredibly much to learn, so you have to pick some specialization. It's INCREDIBLY hard to be a rock-star generalist. (Notice that I didn't even mention web development, other than some basic HTML and scripting, and networking)
Overall, java is the most widely used programming language. With that said, I have never heard anyone say that it is the most widely used in finance. From what I have heard everyone say, C++ is the most widely used in the finance world.
Lots of people recommending Python. Python is great and easy to learn, but starting with C will prepare you to be a better developer and give you the foundation to easily pick up almost any other language.
If quick hacks are your goal, Python. If being proficient is your goal, start with C then C++.
While loads of people are (sensibly) recommending Python, I'd say that's not nearly as important as being able to use SQL well. If you want it to be a big part of your job then C# or Java are worth learning, the concepts are transferable and hedge funds love C#.
C and C++ are not that useful unless you want to be a Software Engineer full time.
SQL is great if you are dealing with databases. Otherwise, it's a pain in the ass to work with. Considering we don't know what exactly he will be dealing with, it's easier to suggest a more multipurpose language than go with SQL unless you are a back office developer or handling database management.
Can you help me on deciding a programming language for Trading? (Originally Posted: 12/18/2017)
Hello, I have an undergraduate degree in CS and have coded before in C and C++. Currently I am doing an MSc in Europe with a specialization in Financial Markets. Over the last one year I have been regularly using VBA for personal projects. However, this made me realise the shortcomings of VBA and am planning to pick up a second programming language.
I am confused between Python and C#. Though Python is the up and coming language with its huge libraries of inbuilt functions, I've seen trading internships looking for people who can code in C# since the systems in banks are based on it and is said to be a powerful tool for modeling.
I want to choose a language that will help me improve my chances of landing an internship in trading. So could you kindly suggest which of the two is a better option and why?
If its of any help, I am interested and am studying about Options.
I think you have your answer man - if the companies/roles you're aiming for explicitly state C#, go for that. If it makes you feel better, call up current traders/researchers at options trading prop shops for an info interview and ask directly what they'd suggest you getting experience in.
That being said - my observations when applying to US-based PT is that straight trading roles asked for Python/R scripting knowledge and that only the more quant trading/research roles asked for C++ experience (that was always considered a plus on top of the Python reqs).
Exactly.
I want to make a decision made keeping the future in mind. I don't want to be classified as a developer quant and would like to enter as a trader because I believe there are much better coders out here for developer quant positions. Also, I dont think developer quants trade that much.
I just want to prove that I have the necessary motivation to be a trader by implementing some projects on my own.
I think Python is great as a scripting/modeling language. At my firm, lot's of analysts/associates in trading use Python for fundamental models/strategy backtesting/that sort of thing while the quants use something else e.g. the systematic trading quants use Java.
Python is also very popular for quant research/trading roles at HFs.
Could you tell me more about your firm? Also do traders code as well?
Python for US based stuff. More companies are turning to Python from C++/Java because of automation tools and versatility.
What I believe is that C# is being required is more for development environment.
So python is a better option for FO roles? Because I'm currently building a personal project in VBA. But it's not being able to handle the data
Programming languages on applications helpful? (Originally Posted: 06/27/2017)
In a few years, I'll be sending out hundreds applications to various and I want to have skills that catch recruiter's eyes, in many different areas of finance.
I want to recruit for ER, S&T, and IB. Would learning coding languages help me for recruitment? If so, would it help a lot or not very much?
I'm looking at VBA, Python, and Java.
Thanks
Bump
E
For IB - no, won't help.
No programming language will really make you stand out in front of ER, IB or S&T recruiters (unless you are applying to quant firms ofc). VBA for ER and IB is like a tiny cherry on top of a sundae - kinda nice to have, but not needed at all. Python. Java and VBA may help a bit for trading, but will not be the deciding factor that helps you get an interview either
Best Coding Languages for S&T (Originally Posted: 11/15/2017)
Monkeys, I am incoming to the S&T industry and have learned that coding languages are bound to be extremely helpful in the near future. As I am still in school, what coding languages would you recommend that would be most beneficial for Sales and Trading positions?
bump
VBA for Excel (for model mockups) Python (for most everything else) MatLab (for stats projects)
Programming languages in IB? Any use? (Originally Posted: 11/27/2017)
I am an incoming 2018 SA with no previous IB experience and I am interested in coding/programming on the side and I am wondering if anyone with IB experience had any idea on what programs or languages might but useful for IB?
I have asked a couple of my friends and my understanding is that most shops don't have a lot of use for programming skills. I am in no way a programming expert and I only have a bit of experience in R and Python.
Basically, I want to know if there are any programs or languages that could be useful for IB? Based on my level of understanding of IB and programming I don't see how people could utilize programming skills in IB and I am curious if anyone else sees any use for programming in IB in the future.
programming? All you are gonna use in IB is Excel and PowerPoint.
If you want to prepare take some excel, and pptx course. Excel more important though; learn all the shortcuts and know important formulas
I am well aware that excel and PP are generally the only programs used in IB and I am comfortable with both of them.
I am only interested in programs like R and python on the side as I use them in some of my stats classes and was just curious if anyone who has worked in IB has come across any uses for programs other than excel and PP while working in the industry haha
No. VBA might be useful sometimes but it isn't really a standalone "language".
Are programming languages useful in RE? What sort of applications do they have? (Originally Posted: 04/16/2016)
Thanks!
Pretty sure I asked the exact same thing right below your question.
I was wondering if people use languages other than VBA such as Python or SQL to manipulate real estate data, and whether it's a common practice.
I wouldn't recommend learning a programming language unless it is just something that you want to do for yourself. Almost nobody in RE knows anything past VBA and you will most likely never use it.
I learned SQL back in college because I am a nerd and it took almost 8 years before I used anything I knew. We were going through the build out/testing of a BI platform about 3.5 years ago and knowing about database construction/SQL was helpful because I could help liaison between IT and the FO to get things built properly. We built the DB in Oracle and used Business Objects as the front end, but recently decided to move to Power Pivot (which uses DAX expressions) so we could integrate reporting with another newer system that is being constructed now. So basically my knowledge was useful for like a split second, but because I'm not a tech person who is always learning new programming languages, I'm obsolete (yet still tied to this project that is taking about 7 hours a week in meetings out of my schedule).
.
coding (Originally Posted: 02/13/2018)
Hi wise people of WSO, I am a freshman in college right now looking to get into coding and programming. What programming language would prove to be the most beneficial for me if I wanted to pursue a career in IB?
thanks.
Coding isn't a necessary skill for IB. VBA can be helpful (excel macros) but most major IBs will have an in-house team that will code up anything you need.
That said, coding is a tremendously useful skill in case you decide not to pursue IB. And it may be a relevant skill depending on your career track after IB (e.g. Python for machine learning-driven trading at a hedge fund).
denont,
What type of coding are you interested in pursuing? I know Python is a big one right now, C ++, visual basic, and myriad other specific programs for very specific applications (such as CNC machining).
My older son is in a double degree of Electrical Engineering/Computer Engineering. I've told him, in no uncertain terms, to learn as MANY languages as possible while in school, even if it meant teaching yourself a few.
Don't know what you're looking into, but I can tell you that a good coder, regardless of industry, makes serious bank. Hours can be grueling, but if that is what does if for you, just start taking different coding classes and you'll be surprised that you will have 10 - 15 languages under your belt by the time your graduate.
The most in-demand programming languages (Originally Posted: 06/24/2018)
I'm not sure which one to focus on for a Corporate Finance job. Any pros and cons appreciated:
Java Python C++/C# SQL
Molestiae in consequatur et est. Suscipit adipisci vel facilis quia officia. Animi et voluptatum error voluptas quis. Placeat in ut id. Ab minima numquam qui voluptatem omnis eveniet.
Quia qui laudantium veritatis qui veritatis dignissimos. Mollitia aut sit incidunt. Consequatur optio tenetur ut id dolor voluptatem aut. Iste animi enim similique necessitatibus aut. Soluta earum ducimus sit repellat consequuntur quod. Incidunt dolor officiis recusandae nostrum.
See All Comments - 100% Free
WSO depends on everyone being able to pitch in when they know something. Unlock with your email and get bonus: 6 financial modeling lessons free ($199 value)
or Unlock with your social account...
Blanditiis ipsam delectus aut impedit. Explicabo tempore saepe quaerat iusto. Totam id quae veniam ex voluptas eos. Distinctio eligendi eos nisi molestiae et asperiores id. Nihil ratione commodi error. Commodi qui aut ut rerum ut natus perspiciatis.
Et tempora reprehenderit ea sequi corrupti est non. Velit optio dolorum dolores ut. Adipisci aut officiis maxime id nisi. Officiis quis maxime nostrum iste ipsa ad necessitatibus. Qui quia magni et corrupti odit illo.
Ullam hic ea blanditiis ut quos ex aliquam esse. Deserunt et qui debitis. Quo est qui qui eos sint omnis omnis.
Eius qui rerum fugit officia omnis tempora. Voluptate quaerat earum id pariatur non. Dolorem ipsum et blanditiis harum.
Dignissimos nisi dolore natus sit et et et. Optio non minus saepe non libero. Vero fugit sunt id iure sint adipisci omnis. Eaque ratione impedit reiciendis quaerat. Quia veritatis ut tenetur sequi facilis.
Tempora dolores totam tempora aut sapiente. Blanditiis saepe voluptatum omnis eos magni eius. At incidunt nulla suscipit qui et.
Saepe sit vitae ex iusto et illum. Ex earum facere voluptates mollitia. Nesciunt eveniet qui tempora in ut. Quo ut cum quasi animi impedit.
Ut debitis quibusdam quos sequi sit aut. Neque voluptate blanditiis sed illo recusandae minima nostrum. Ab in inventore dolorem officia. Voluptas placeat rerum consequatur vel est dolore porro.
Nemo eos porro adipisci sit nobis quaerat. Inventore atque facere ullam quae nisi. Beatae delectus minima nulla quidem.