Learning to code

I was wondering the other day about whether I should put an emphasis on learning programming or not (not VBA, but more hardcore stuff), given that I might lateral to some more quantitative trading stuff in the future.

What if somebody didn't have a degree in comp sci, can he/she still become very good at it? Isn't there a glass ceiling in how good you can become at a certain programming language? I mean there are some guys who eat coding for lunch dinner and breakfast from an early age, then do an ugrad, then a masters in this subject, so obviously they are rockstars compared to us, lowly finance guys. But even if just somebody does a degree in comp sci - they already got the big advantage.

I mean it's kinda like asking what language should you learn for investment banking - where the answer is that if you can't become native in that particular language you'd like to learn then there's no need to start practising it in the first place: for the simple reason that there is a great number of kids who know the technicals just as well as you, only their mother tongue is that certain language as well.

 

If you studied a quantitative subject like stats/physics and are already partially wired to code, you can become decent enought to pass quant interviews by studying a bit, then enhance your skills on the job.u You could then go to stuff like machine learning data science, where coding is essential but not the core of the subject.

If what you want is to become some hardcore tech guy like a video game developper or to write source code for google, you will never be good enought to compete on developper roles unless you put absurd amounts of time. You are so far behind the curve that it doesnt make much sense.

If you studied business or some soft stuff, just do yourself a favor and forget about this.

 
Zafrynex:

If you studied a quantitative subject like stats/physics and are already partially wired to code, you can become decent enought to pass quant interviews by studying a bit, then enhance your skills on the job.u
You could then go to stuff like machine learning data science, where coding is essential but not the core of the subject.

If what you want is to become some hardcore tech guy like a video game developper or to write source code for google, you will never be good enought to compete on developper roles unless you put absurd amounts of time.
You are so far behind the curve that it doesnt make much sense.

If you studied business or some soft stuff, just do yourself a favor and forget about this.

By 'hardcore stuff' I meant mainly the stuff going on at the hedge funds/top prop shops (not the developers/quants but the traders).

 
Best Response

Are you in school right now? What are you studying?

It's not impossible to become a strong coder a few years into college or even in your 20s or even your early 30s, but you are at a significant disadvantage. Your brain loses plasticity as you get older. It's easier to learn Calculus at 17 than it is at 20. It's easier to learn boolean logic, proof by induction, proof by contradiction, and modus tollens when you're age 18 than when you're 21. And it's fricking tough to learn the Girsanov Theorem (stochal) at age 27, even if you have years and years and years of coding experience and have been occasionally touching math in the interim. And the firmer these foundations are, the easier it is to build stuff on top of that. In the world of production coding- certainly with the 48 hour development cycles you would see as a quant, boolean logic and modus tollens are things that should be completely instinctive. You should be able to do them in your sleep, you should be able to explain it without thinking when going through a code review with someone. And it just gets harder to make stuff instinctive as your brain ages.

Then you have to learn binary trees (including depth limiting trees like red-black and AVL and also the shifts done to maintain depth), then linkedlists, then hashmaps (including what to do when you have collisions- then how different languages implement them), then various graphs, and patricia trees. In the meantime, you are learning the order of complexity of all of these guys.

Then we have the algorithms courses, as well as multithreading (how to get multiple points of execution running at the same time on the same piece of code- this is how the server running this website responds to your HTTP requests and mine at the same time). You'll be asked to get stuff from O(n^4) time down to O(n^2). You'll be asked to create memo tables, to prove that stuff is NP-complete, and to design distributed solvers.

You'll also want to take a database class. How to use a relational database and how to use more modern document-oriented databases.

Now, this is just to get to be a hardcore coder. We haven't even gotten to the quant stuff yet. To get the very very basics, that's going to require 400-level courses in Calculus (through multivariable), Probability, and Linear Algebra. And you'll probably want to stack on Econometrics, Regressions and Time Series, and Stochastic Calculus at some point.

So this is what some of the harder-core quant developers, researchers, and traders have to use and apply every day. And most of them still answer to guys with PhDs.

To work in the quantitative strategy world, you need some sort of quantitative PhD or fairly selective quantitative Master's degree, or for a few exceptional people I know, a STEM undergrad and LOTS of relevant experience.

To work at a HFT firm, you need to be an excellent coder, or you need to have some sort of STEM background to be a trader in HFT. Most of the traders I know at the Chicago shops either have some quantitative master's degree or PhD or got there by being top 5%, maybe top 2% programmers. The bar is fairly high.

I'm flattered that over the past four years on WSO my CS background has gone from being dismissed as an IT guy to having some sort of cool HFT/Quant trading background. And I don't want to dissuade you from this career path, but just know that this is the material you'll need to learn, that you'll probably be at a disadvantage, and that even the Princeton MFEs that I know- who have these backgrounds- probably aren't quite as baller as you think they are.

If you still want to pursue this, I'd join the forums at QuantNet and start getting some advice. There are a lot of people out there with finance degrees who want to be quants and don't realize that a STEM degree might very well be an order of magnitude harder than a more general finance undergrad.

 
IlliniProgrammer:

Are you in school right now? What are you studying?

It's not impossible to become a strong coder a few years into college or even in your 20s or even your early 30s, but you are at a significant disadvantage. Your brain loses plasticity as you get older. It's easier to learn Calculus at 17 than it is at 20. It's easier to learn boolean logic, proof by induction, proof by contradiction, and modus tollens when you're age 18 than when you're 21. And it's fricking tough to learn the Girsanov Theorem (stochal) at age 27, even if you have years and years and years of coding experience and have been occasionally touching math in the interim. And the firmer these foundations are, the easier it is to build stuff on top of that. In the world of production coding- certainly with the 48 hour development cycles you would see as a quant, boolean logic and modus tollens are things that should be completely instinctive. You should be able to do them in your sleep, you should be able to explain it without thinking when going through a code review with someone. And it just gets harder to make stuff instinctive as your brain ages.

Then you have to learn binary trees (including depth limiting trees like red-black and AVL and also the shifts done to maintain depth), then linkedlists, then hashmaps (including what to do when you have collisions- then how different languages implement them), then various graphs, and patricia trees. In the meantime, you are learning the order of complexity of all of these guys.

Then we have the algorithms courses, as well as multithreading (how to get multiple points of execution running at the same time on the same piece of code- this is how the server running this website responds to your HTTP requests and mine at the same time). You'll be asked to get stuff from O(n^4) time down to O(n^2). You'll be asked to create memo tables, to prove that stuff is NP-complete, and to design distributed solvers.

You'll also want to take a database class. How to use a relational database and how to use more modern document-oriented databases.

Now, this is just to get to be a hardcore coder. We haven't even gotten to the quant stuff yet. To get the very very basics, that's going to require 400-level courses in Calculus (through multivariable), Probability, and Linear Algebra. And you'll probably want to stack on Econometrics, Regressions and Time Series, and Stochastic Calculus at some point.

So this is what some of the harder-core quant developers, researchers, and traders have to use and apply every day. And most of them still answer to guys with PhDs.

To work in the quantitative strategy world, you need some sort of quantitative PhD or fairly selective quantitative Master's degree, or for a few exceptional people I know, a STEM undergrad and LOTS of relevant experience.

To work at a HFT firm, you need to be an excellent coder, or you need to have some sort of STEM background to be a trader in HFT. Most of the traders I know at the Chicago shops either have some quantitative master's degree or PhD or got there by being top 5%, maybe top 2% programmers. The bar is fairly high.

I'm flattered that over the past four years on WSO my CS background has gone from being dismissed as an IT guy to having some sort of cool HFT/Quant trading background. And I don't want to dissuade you from this career path, but just know that this is the material you'll need to learn, that you'll probably be at a disadvantage, and that even the Princeton MFEs that I know- who have these backgrounds- probably aren't quite as baller as you think they are.

If you still want to pursue this, I'd join the forums at QuantNet and start getting some advice. There are a lot of people out there with finance degrees who want to be quants and don't realize that a STEM degree might very well be an order of magnitude harder than a more general finance undergrad.

Fair enough. I will be studying towards a degree called investment and financial risk management so probably it's enough quantitative (there's like only two modules on coding though, both are introductory courses to Python/VBA). My thinking is that if I ever land a position on an options desk at a BB, I'd love to move from there to a hf/prop, and most probably I'd be in the need for decent coding skills. I'd be happy to learn programming because it seems interesting, so no problem with motivation, once again I'm just unsure if I could ever make it to a good level with self-teaching over my undergraduate years (and even then, I'd not compare to STEM people).

 

I feel like there are a lot of people out there who look at a STEM degree and say "Oh, that's a college degree. Just like studying Hotel Management for four years. The average person with a 500Q on the SAT is cut out for a STEM degree. Maybe I'll try that now." This probably isn't OP, but I'm concerned that some people will later read this thread and think this. I don't want to play up the degree or talk down to people who don't have a STEM degree, but I feel like this mentality does a disservice to the material, to the individuals who need to know the material for their careers, and to the people who blindly go in assuming that a STEM degree isn't an order of magnitude harder than Hotel Management.

These guys will have it much harder than we did. I learned to code (just basic instructions- not pointers and data structures) at age 16. I did it casually, mostly to put together websites (Perl scripts- not just HTML) and to code up calculator programs to solve stuff on tests in math class. These guys are learning this stuff 5, 10, even 15 years later. And it gets a lot harder to learn a new language, learn music, learn math, or learn to code as you get older. You lose brain cells, your brain becomes less plastic, and at some point you may also start drinking.

So to everyone out there with a Hotel Management or Kinesiology degree who wants a career change into being a quant, I'm not saying "don't do it", but I am saying "don't assume it's easy" and "you'll probably have to earn it even more than we did, and we'd like to think we really had to earn it."

 

It was easy for me to learn it later in life when I went in and got my degree. I like to think I am 'special' :)

As far as STEM goes, the only ones that actually matter are CS and engineering disciplines, unless the student is looking at going into medicine or getting a PhD for research. I've never met anyone who thought those degrees were easy, I think the 'softest' degree outside of finance that I would recommend is Information systems management or informatics.

 

I suggest starting off with Python, it is a really easy programming language to learn, but at the same time it can hold it's own against a lower level language like C. I think a lot of algo driven hedge funds use it as well. Even if you don't end up using it in the workplace, it will introduce you to the programming world so learning another language should be relatively easy.

 

Python is a great scripting language, and it's very easy to start and finish a project quickly using it, but for hardcore production coding, you still really want something like C, C++, or Java. Amazon is a huge web company, and you'd think everything would have gone to Python and Javascript, but their backend runs on Java. The same is true for the core production code at most banks and trading firms. There's stuff that Javascript and Python just can't run quickly and efficiently enough. All of these languages are imperative (I've seen a few functional-looking variants of Javascript though), but Java, C, and C++ have features like static typing, references and inheritance that IMHO require a little bit of formal instruction and a little bit of creative thinking around.

Fair enough. I will be studying towards a degree called investment and financial risk management so probably it's enough quantitative (there's like only two modules on coding though, both are introductory courses to Python/VBA). My thinking is that if I ever land a position on an options desk at a BB, I'd love to move from there to a hf/prop, and most probably I'd be in the need for decent coding skills. I'd be happy to learn programming because it seems interesting, so no problem with motivation, once again I'm just unsure if I could ever make it to a good level with self-teaching over my undergraduate years (and even then, I'd not compare to STEM people).

What math classes are required to graduate? DiffyQs? Calculus-based probability? Numerical Methods? Econometrics? Calculus-based statistics? (EG MLEs, convergence, symmetric non-asymptotic confidence intervals)?

Does your school offer a course in algorithms or in data structures? Does this Python course meet the prereqs to take it? Or (if not) can you substitute the CS majors' C++ or Java course to fulfill this requirement?

If you're still a freshman or sophomore in undergrad, and you are excellent at math, it's clearly not too late for you to become a quant. And if we do some planning around your courses, it's not too late for you to set yourself up for an elite MFE upon graduation or a few years after it. It may very well be too late for you to become one of those microseconds or even hardware level HFT guys- certainly if you don't pursue a CS or CE major- but we can definitely leave the door open for you to become a strategist or a quant at an HFT firm, hedge fund, or bank.

 
IlliniProgrammer:

Python is a great scripting language, and it's very easy to start and finish a project quickly using it, but for hardcore production coding, you still really want something like C, C++, or Java. Amazon is a huge web company, and you'd think everything would have gone to Python and Javascript, but their backend runs on Java. The same is true for the core production code at most banks and trading firms. There's stuff that Javascript and Python just can't run quickly and efficiently enough. All of these languages are imperative (I've seen a few functional-looking variants of Javascript though), but Java, C, and C++ have features like static typing, references and inheritance that IMHO require a little bit of formal instruction and a little bit of creative thinking around.

Fair enough. I will be studying towards a degree called investment and financial risk management so probably it's enough quantitative (there's like only two modules on coding though, both are introductory courses to Python/VBA). My thinking is that if I ever land a position on an options desk at a BB, I'd love to move from there to a hf/prop, and most probably I'd be in the need for decent coding skills. I'd be happy to learn programming because it seems interesting, so no problem with motivation, once again I'm just unsure if I could ever make it to a good level with self-teaching over my undergraduate years (and even then, I'd not compare to STEM people).

What math classes are required to graduate? DiffyQs? Calculus-based probability? Numerical Methods? Econometrics? Calculus-based statistics? (EG MLEs, convergence, symmetric non-asymptotic confidence intervals)?

Does your school offer a course in algorithms or in data structures? Does this Python course meet the prereqs to take it? Or (if not) can you substitute the CS majors' C++ or Java course to fulfill this requirement?

If you're still a freshman or sophomore in undergrad, and you are excellent at math, it's clearly not too late for you to become a quant. And if we do some planning around your courses, it's not too late for you to set yourself up for an elite MFE upon graduation or a few years after it. It may very well be too late for you to become one of those microseconds or even hardware level HFT guys- certainly if you don't pursue a CS or CE major- but we can definitely leave the door open for you to become a strategist or a quant at an HFT firm, hedge fund, or bank.

Sent you a PM.

 

So my view is that OP's curriculum is a finance degree that tries to add a little bit of math, but I'm not seeing lots of substance to that math. There's a Mathematical Finance degree that his school also offers that I'm suggesting he consider if he can easily switch majors. It's designed both for careers in trading and actuarial work and IMHO contains a superset of the material in a classical finance degree. However, the material would probably be more challenging on the math front.

 

Excellent info here.

Trying to teach myself to code right now as well, and it definitely requires time. Just like learning any language requires time. Hoping to maybe turn it into a viable skill in the future.

"When you stop striving for perfection, you might as well be dead."
 

Programming is about practice and persistence. This summer, I cracked down for a few weeks and learned a language. At first it was difficult because of the syntax and logic (mostly the syntax) but over time, when you do a few projects, it just starts to make sense.

My opinion on this (and obviously take it with a grain of salt): If you don't plan to spend a lot of time on coding, just don't do it. To really build things, you need to immerse yourself in it and you need to keep pushing through when it feels like you just can't figure out how to solve the problem. It just isn't worth spending time "sort of" learning it.

Start with Codecademy/something like that to get your feet wet, and then move forward with the O'Reilly books. O'Relly even makes books like "Python for Finance" and "Python for Data Analysis."

 

Qui molestiae et error nihil. Ea omnis et ea dolor perspiciatis. Laborum tempora excepturi et corporis ab quia. Accusamus quasi et impedit quidem. Dolorem porro maxime molestiae doloribus sed.

 

Ipsa dignissimos nam ut quia ipsam. Sed quam minima consequatur ut incidunt autem consequatur. Quaerat exercitationem totam perspiciatis quaerat id ut nemo placeat.

Id nemo dolorem enim dolorum impedit soluta. Ea aliquid aut non eum molestias. Non distinctio ipsum beatae sint asperiores sit. Ab possimus facilis qui quasi. Illo expedita atque beatae qui impedit dignissimos. Et commodi facere ut et neque a. Repudiandae qui quia autem nobis iste.

In quia ab repellendus sapiente nisi. Voluptatem quidem aut nesciunt reprehenderit atque sit non. Non aspernatur ipsum est voluptas.

Sequi omnis possimus beatae inventore iste velit culpa. Voluptatum natus harum voluptatem rerum quis ipsa eius qui. Et cum natus inventore commodi impedit. Est possimus non deleniti et sed doloremque dolores. Doloremque facilis esse quae soluta impedit. Et sunt et id aliquam.

Currently: future neurologist, current psychotherapist Previously: investor relations (top consulting firm), M&A consulting (Big 4), M&A banking (MM)

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 (86) $261
  • 3rd+ Year Analyst (13) $181
  • Intern/Summer Associate (33) $170
  • 2nd Year Analyst (66) $168
  • 1st Year Analyst (202) $159
  • Intern/Summer Analyst (144) $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...”