Learning coding on your own for finance?

I started using codecademy to learn a little bit about javascript. I am not necessarily interested in pursuing a career in tech but I think nowadays it is important to have a minimum understanding of how programming languages work. Also, I want something different to challenge myself. I think that knowing a little bit about programming will make my resume richer and will expand my opps. Which programming language is the most useful in finance? Do you think javascript is a good first programming language for a beginner? I am more interesting into software development rather than web development which is why I am regretting learning javascript. I researched a lot but I got very mixed feedback, mostly based on personal experience...I noticed that people tend to suggest whatever first language they picked first.

Do you think knowing programming gives you a competitive advantage in finance?

What Coding Language Should I Learn for Finance?

Generally speaking, our users feel that if you are interested in traditional corporate finance/IB jobs - VBA and SQL are the best languages to learn. SQL is most useful for financial planning and analysis jobs. VBA is used for excel based programming and analysis. SQL is used for data analysis.

Learn more about SQL in the video below.

Should I Learn R for Jobs in Finance?

For portfolio and asset management, some jobs will look for candidates with proficiency in R. When it comes to things like portfolio management or credit, a lot of what analysts are doing is building statistical analysis looking for factors that correlate to stock price or insolvency. Excel can do this, but typically the number of data points is too high for Excel. R* can do this much more efficiently, with much larger datasets.

Read More About Programming on WSO

Looking to Break into the Hedge Fund World?

Want to land at an elite hedge fund use our HF Interview Prep Course which includes 814 questions across 165 hedge funds. The WSO Hedge Fund Interview Prep Course has everything you’ll ever need to land the most coveted jobs on the buyside.

Hedge Fund Interview Course

 

Still a student but I've been programming since I was 9 years old so my input isn't totally irrelevant.

I started programming as a kid in a small scripting language based loosely off C and it was specifically to make 2D games. I worked with that for awhile before I picked up c++ for dummies, learned Pascal, Java, and a hand full of other languages.

I'm saying this so that it doesn't seem like I'm just blurting out the first language I learned or something that I barely understand.

If you want to do software I'd start with c#. It's becoming pretty big now that it's cross-platform and it's typed pretty much identical to Java. It'll give you a solid understanding of programming knowledge that can transfer to pretty much any other language. Some other languages you'll learn some other tricks or things specific to them such as C++ (it's a little lower-level typed language.) but the core knowledge is a fantastic thing to have as you can pick up a new language within days if you truly understand what's going on.

As for finance specifically, I've talked/seen people working with R, Java, Python, and some web stuff just to name a few. Feel free to PM me if you have any specific questions and I'll do my best to answer them, same goes for anyone else.

 

What he said.

Also some of it isn't even worth asking "why". Just go with the flow when it comes to what the market wants. These I'm getting from job postings.

For R* I can testify why they need it. When it comes to things like portfolio management or credit, a lot of what you're doing is building statistical analysis looking for factors that correlate to stock price or insolvency. Excel can do this, but typically the number of data points is too high for Excel. R* can do this much more efficiently, with much larger datasets.

Corpfin requires SQL because a lot of your financial data will be sourced from a database of journal entries, hence SQL.

VBA is useful for anything that is extremely excel intensive. The applications of this for IB should be self evident. If you can code a tool that will build any kind of chart you need for a given deal, that's a great way to set yourself apart from other analysts.

 

Python is the programming language you want to learn. The reason is that it is extremely flexible and can be used in all sorts of contexts - the desktop, the web, for data science, for interactive graphics - you name it. The beauty of python is that there are loads of 'libraries' out on the web that you can just take and use. No need to write it and reinvent the wheel yourself. Want to do matrix algebra? theres a library for that. Want to compute regressions? theres a library for that. Want to tell a machine learn and find patterns in complex sets of data? theres a library for that.

If you were a full time developer more on the tech side - then definitely go for javascript. Google 'Stackoverflow developer survey 2017' for some very interesting reading...

 

How do languages like SAS, C# and MATLAB stack up? If you aren't a CS major, does learning computer science really give you an edge? Definitely want to have a future-proof skills set..

 

C# and Matlab are sometimes required for quant roles along with Python/C++. But learning MATLAB alone isn't enough.

GoldenCinderblock: "I keep spending all my money on exotic fish so my armor sucks. Is it possible to romance multiple females? I got with the blue chick so far but I am also interested in the electronic chick and the face mask chick."
 

Java is worthless. SQL, R, and Python are the languages you want to know. IMO if you aren't in banking (because it's the industry that will be the LAST to ever implement any sort of change) and you don't know SQL in the next few years you're basically useless.

 

I did internships that required Java and Python before my ib interviews and then put the two languages on my resume. Honestly, all it does is give IB interviewers with programming backgrounds more tough questions to ask you during interviews (think write my some code in Python on this piece of paper that does X and Y or compare the programming languages you know). HFs care a bit more but most IBs could care less.

 

Speaking as someone with a CS degree & time as a software engineer: learn whatever language you need that allows you to complete a project.

Learning theory using something like codeacademy is great. Using that foundation to achieve something (write an iPhone app, build and maintain a website) is where you'll really get a grip on the concepts.

Most of those concepts will then be transferable ... I became proficient in C (embedded systems) and C++ (OO principles), but have delivered projects using C#, python, VBA, Java ... Sure, there will be nuances across all of them, but you'll have the basics (function calls, if/else, for loops, variables, libraries, etc.). Even a significant JavaScript project (in conjunction with other web technologies), will be useful.

Not to mention, if you put any language on your resume and can't talk passionately about something of value you were able to deliver with that expertise, it's pointless. And you'll quickly get caught out if you do land a job and meet people that really understand programming ...

 
Best Response

As someone who has a fairly deep knowledge of R, MATLAB, Javascript, Python, etc. and works in a transactional role, I can say that if you're gunning for IB, you really don't need this stuff in the slightest.

IB rewards its employees for 1) generating deal flow, and (2) managing the teams and processes that result in a finished work product that gets in by the deadline.

If you think that you will be rewarded for knowing how to code a model which estimates a company's value more closely than what's already industry standard, think again.

IB is fairly conservative in that clients don't come to the big investment banks for cutting edge technological solutions to M&A advisory - they come to get the same treatment that has been dished out in the past, i.e. the treatment that gets the desired transaction completed with the lowest risk of failure. It is all about stability and predictability, not about innovation.

If you want to code new, inventive things, go to silicon valley. If you want to spend 99% of your time (especially as a junior employee) wondering in the back of your head why you're running a billion dollar deal on a legacy computer system that was made obsolete in the late 90s/2000s, then IB is for you.

TL; DR: The value of coding knowledge in IB is mostly going to be relegated to the following:

Being able, generally, to evaluate a proposed work process and say "guys, this is fucking stupid, there's an easier way to do this in Excel".

I leave it to you to determine if this is something worth spending your time on - as someone who did it, it is nice, but far from necessary.

EDIT: That said, if you are thinking about being in PE someday, especially anything related to tech, I think it makes a lot of sense to familiarize yourself with this. It is absolutely incredible how quickly technology is progressing, and how it is in turn impacting the economy.

Understanding what is on the cutting edge should be the basis of backing it as an investment opportunity, and you will be miles ahead of the competition in understanding if you read up on coding, and on AI.

For example, anyone with a passing knowledge of how support vector machines and other AI image recognition models work would have been able to tell you 30 or 40, 50, maybe even 60 years ago that there were someday going to be million dollar enterprises built up around self-driving cars, or optical character recognition. That's because once you understand how the tech works, you will understand what it is capable of. And once you understand that, you will understand the inevitable conclusions that a market based economy will draw from it and its profitability.

Array
 

For IB, wouldn't the time be better spent learning how to use excel and ppt shortcuts without the mouse to save time? That way you can work faster. Instead of learning some useless language barebone just to show on your CV with little to no use. I am talking about IB in the interest of the WSO.

 

1st off and as many have said, you really don't need this stuff for IBD or high finance. No one will ever care. With that being said, for broader finance and business roles the most useful language to learn would be R, SQL, and Python which have been all listed above. These languages tie closely to data analysis which is often used in various finance/business functions outside of high finance.

If you're actually looking to learn just so you can know how to code and you're not trying to connect back to finance, you'll get a bunch of different opinions ranging from python to javascript to java to C. Everyone has their own opinion on the best language to learn first. My opinion is that both Javascript and Python are relatively easy to pickup and you can start building things relatively fast. For context, almost all coding bootcamps build off of javascript as its flexible and one of the more in-demand languages for junior engineers.

 

The comments above are all super relevant. Just to add, Javascript is a complete waste of your time unless you want to go into web-development related things.

If you are thinking banking and then moving into investing roles (and I mean mostly fundamental hedge funds), VBA and Python might still be useful. Of course no one will be paying you (or hiring you) solely because you knew this languages, but they are handy tools to know in the 21st century. If you are in school and the opp cost is not large, definitely pick those languages up. There are also quite a few books which go over beginner's VBA, Python, R, etc... for people in finance. Of course these books will vary and are usually meant for people in quant roles but the first 2-3 chapters will give you an idea of the basics and you'll be able to figure out for yourself how these will be helpful in your future.

 

Agreed with vik2000, technology nowadays is changing at such a rate that to be able to really use it, you need to be keeping abreast of the developments occurring in each successive patch of a coding language, what functions and packages are being deprecated, etc. That's really not possible unless you're forced to confront these issues as a matter of course in your job.

Array
 

Python is a great way to start since it has a plethora of built-in libraries, just make sure you download Python 3.X.

Here's a great book to start with: http://faculty.stedwards.edu/mikek/python/thinkpython.pdf

I have also heard great things about 'Dive into Python 3', but I'm yet to give it a read.

Most prop firms use C++ or Java, while Jane Street uses OCaml and it's been recently brought to my attention that Goldman uses their own internally developed language called 'Slang'.

 
Macro Arbitrage:
Python is a great way to start since it has a plethora of built-in libraries, just make sure you download Python 3.X.

Here's a great book to start with: http://faculty.stedwards.edu/mikek/python/thinkpython.pdf

I have also heard great things about 'Dive into Python 3', but I'm yet to give it a read.

Most prop firms use C++ or Java, while Jane Street uses OCaml and it's been recently brought to my attention that Goldman uses their own internally developed language called 'Slang'.

I don't think a lot of people have made the switch yet to Python 3. Obviously its good to know the latest version of any language, but since Python 3 isn't totally compatible with 2 a lot of places haven't updated their code yet. If the OP is looking to become competitive in a language for employment after senior year, a Python 2 book might be a better choice. Have a lot of people made the switch to 3 yet?

looking for that pick-me-up to power through an all-nighter?
 

Lot's of helpful stuff here, thanks guys! I'm going to start off by working through that book Macro posted and go from there.

"Life all comes down to a few moments. This is one of them." - Bud Fox
 

Feel free to PM me if you need any help along the way.

With regards to the differences between Python 2 and 3, they are apparent but not too significant. True story: I started with Python 2 and realized my school's intro compsci course uses python 3 just a few days prior to my final exam (certainly helped explain away my mid-term/ assignment messups), and it didn't take me too long to pick things up.

 

Python is an easy language that has all the modern features of programming languages. Furthermore it's interpreted so this will allow you to immediately test code. As a result programming in Python is extremely fast and you can write useful programs within 1 hour of starting learning the language (e.g. an email client). I would recommend picking up Python. Perl is also useful. Some top univesities in UK start their students (CS major) with CamL and Prolog. These can be useful. In general learning programming principles is more important that the language. These days I pick up a new language in about 2 days and can become extremely good with a language within a week because the principles are what takes time to learn.

EDIT: There's no substitution for reading a book. Videos are BS. The last video I saw was going to completely fuk you up had you used if for learning. The video showed ridiculous design and brainless code. I think that's a flaw of all programming learning videos because their are created by morons. It's much harder to write a book than to create a video. Just pick a book. Don't be intimidated by the size of most programming books. Also try to pick one that is shorter as some authors tend to stretch what can be put in 2 pages into 20 pages.

 

Possimus sit consectetur eligendi facilis numquam. Autem vero velit et quis ea. Perspiciatis dolores aut quo sequi sed. Animi quae optio perspiciatis veniam.

Et quam natus laboriosam autem. Ea repudiandae consequatur eaque amet impedit distinctio. In commodi beatae error doloremque deleniti dolores.

At iusto molestiae odit ullam unde eaque et. Dolorem molestiae consequuntur illum voluptas ratione dolores. Sint consectetur odio est consequuntur iste non. Ipsum sint optio expedita sint quia illum eveniet fugit. Libero dolor ea tempora facere. Tempore consequuntur nihil odio itaque.

A numquam nesciunt consequatur quisquam ea sed labore. Inventore atque possimus quo voluptatem unde assumenda. Nulla ut impedit dolorem dolorem deserunt. Rerum accusantium mollitia magnam repellendus. Suscipit voluptatum eum voluptates molestiae quaerat. Sit ex aliquam quam omnis porro corporis.

heister: Look at all these wannabe richies hating on an expensive salad. https://arthuxtable.com/
 

Doloremque repellat eos esse ullam sit rerum. Voluptatem ullam cum aut rerum voluptatem veritatis ab.

Sunt debitis animi quos optio occaecati maxime. Voluptates ipsum consequuntur laboriosam dolorem occaecati. Voluptate quia harum minima. Et corrupti porro autem ab nisi repellendus laboriosam necessitatibus.

Numquam nihil qui vero tenetur. Repellendus non iure et dicta non. Reiciendis quibusdam sapiente explicabo cum eaque et repellendus. Dolorem praesentium nobis itaque et illum incidunt porro. Id explicabo fugit consectetur consectetur.

I'm an AI bot trained on the most helpful WSO content across 17+ years.

Career Advancement Opportunities

March 2024 Investment Banking

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

Overall Employee Satisfaction

March 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

March 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

March 2024 Investment Banking

  • Director/MD (5) $648
  • Vice President (19) $385
  • Associates (85) $262
  • 3rd+ Year Analyst (13) $181
  • Intern/Summer Associate (33) $170
  • 2nd Year Analyst (65) $168
  • 1st Year Analyst (198) $159
  • Intern/Summer Analyst (143) $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
Betsy Massar's picture
Betsy Massar
99.0
4
kanon's picture
kanon
98.9
5
Secyh62's picture
Secyh62
98.9
6
dosk17's picture
dosk17
98.9
7
CompBanker's picture
CompBanker
98.9
8
GameTheory's picture
GameTheory
98.9
9
bolo up's picture
bolo up
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...”