JPMorgan's Python training guide for analysts and traders
If you're interviewing for an investment banking analyst or junior trading job at JPMorgan and you don't know how to code in Python, you should probably act soon to remedy your deficiencies. Like most banks, JPMorgan wants to hire bankers and traders who can code, and where necessary it will train those who can't.
Helpfully, for anyone who's missed them, the training modules JPMorgan uses for its existing analysts and traders are freely accessible on Github, where they were placed by Tim Paine, a developer in JPMorgan's New York office who's been working on products like an artificial intelligence engine for the fashion industry in his spare time.
There are a few downsides. The Github pages aren't new: Paine last added to them in mid-2019; but they're still relevant - particularly if you're applying for JPMorgan's graduate roles in 2021. The wisdom they contain is also intended to be imparted by a classroom teacher. You might, therefore, struggle if you know nothing about Python from the outset, but you will at least have an idea of what JPMorgan wants its analysts and traders to know.
Paine starts out with a post on the rules of writing effective and simple code that's easy to read. Quoting from the 'Zen of Python', he says (among other things) that:
- Simple is better than complex.
- Complex is better than complicated.
- Flat is better than nested.
- Sparse is better than dense.
Equally, if you can't explain your code implementation Paine says it's probably a bad idea. His training documents are peppered with examples of the right and wrong ways of doing things (eg. don't sacrifice readability for performance reasons, do make sure you add comments to explain the code), and he emphasizes the need to store changes to your files and folders in a version control system (probably Github itself) that allows you to see previous iterations.
The Python wisdom Paine imparts includes:
- How to write unit tests (tests that check whether a unit in your programme is behaving as expected).
- Basic use of Jupyter notebooks.
- How to write a function that will price an at-the-money forward (ATMF) straddle.
- How to compute the Mandelbrot set.
- How to use Pandas and Plotly to create a yield curve chart.
- How to use Plotly to create a three dimensional chart showing volatility and high yield bond ETF prices.
If you work your way through Paine's pages, you won't be an expert coder. But then this isn't the intention. Paine describes the course as, "an introduction to numerical computing and data visualization in Python," and, "a motivational demonstration of how relatively complex topics can be accessible even to those without formal programming backgrounds."
Have a confidential story, tip, or comment you’d like to share? Contact: firstname.lastname@example.org in the first instance. Whatsapp/Signal/Telegram also available. Bear with us if you leave a comment at the bottom of this article: all our comments are moderated by human beings. Sometimes these humans might be asleep, or away from their desks, so it may take a while for your comment to appear. Eventually it will – unless it’s offensive or libelous (in which case it won’t.)
Photo by Markus Spiske on Unsplash