- Leetcode (and/or) Interviewbit, Interviewbit already has structured roadmap kind of thing of topics and lot of leetcode sheets are also pretty easily available on the internet.
- Give codeforces/atcoder contests, now companies have started to increase difficulty of the problems they ask, so better to practice some non-conventional algo problems.
- CSES is also a great resource to practice topic wise problems. If you are somewhot comfortable with Leetcode/Interviewbit, better to practice this.
- Coming to topics, OAs and interviews wont ask anything ahead of Graphs and DP. There might be 1 or 2 outliers though which may get into Segtree etc.
- You may learn C++ but thats pretty optional.
- DSA/CP - see SWE section.
- Learn C++ in depth, OAs and interviews both ask questions related to it.
- Learn CS fundamentals if time permits.
- OOPs - Inheritance, Polymorphism, Encapsulation, Abstraction, Constructors, Destructors, Rule of 5, Virtual functions, Copy semantics, etc.
- Templates
- STL - Vectors, Maps, Sets, etc.
- Smart Pointers
- RAII
- Move Semantics
- Concurrency - Threads, Mutexes, Semaphores
- learncpp.com
- Cherno's C++ series, Jason Turner's series.
- bequant.dev roadmap
- Some relevant CPPCon talks
- Nice collection of notes and resources - https://github.com/Shivam5022/Knowledgebase-SV (see C++ section)
- Implement basic data structures in C++ (e.g., circular queue,
unique_ptr,shared_ptr). - Analyze tradeoffs between different implementation strategies as these will be asked in interviews with good firms.
- Understand memory allocation: identify which parts of a data structure are on the stack versus the heap.
- Look into internal implementations of common STL data structures, what things do they store, what algos they use etc.
These mostly don't appear in depth much with oncampus companies. But its good to have some knowledge if you have time.
Processes, Threads, Concurrency, Synchronization, Deadlocks, Scheduling, Memory Management, File Systems, Virtual Memory, etc. Resource - OSTEP, Lectures from CS330 - Link
Relational Algebra, SQL, Normalization, Transactions, ACID Properties, Concurrency Control, Indexing, etc.
OSI Model, TCP/IP Model, HTTP, DNS, Sockets, etc.
- Optiver - SWE OA round had some fast mcq type questions on algos, and very basic CS fundamentals - OS, DBMS, Networking. Apart from that, there was one coding problem which wasn't very tough, just had a very long story and had to think what data structure is best to use. GD round was quant like only, no swe questions.
- IMC - OA round had 2/3 problems, very implementation based. They shortlist lot of people for GD round. In GD round, they give a code snippet and ask you to find bugs, optimize it etc. The code was in C++, related to processing of orders in trading, and used knowledge of concurrency - threads etc. Also knowledge of algos used in Scheduling in Operating system would have helped.
- Graviton - 2-3 1500-1900 type CF questions were given in pen-paper format.
- Atlas - Pretty hard 4 cp questions in the OA Round. 2nd round was pen paper test(quant and swe mixed), swe part again had one easy, one quite hard CP problem. Also there was one question related to performance difference because of row major order, column major order - spatial locality. In interview, was asked to implement some data structure in C++, move semantics, Networking(DHCP, congestion control etc), garbage collector.
- Alphagrep - OA had easy-medium problems, ig interview round was based a bit on C++ knowledge and some DSA.
- Jump - OA has Implementation problems. For interview, should be pretty thorough with CS fundamentals and C++.
- Quantbox - Had lot of C++, CS fundamentals knowledge problems in OA, but everyone pretty much everyone gpted them.
- Practice fast maths - Zetamac pretty much does the job. Although, no test would directly be testing this.
- Practice probability, combinatorics, expectation problems and puzzles.
- Look at market making, bid-ask spread, arbitrage etc.
- Xinfeng Zhou's A Practical Guide to Quantitative Finance Interviews (Ch 1,2,3,4,5)
- 50 Challenging Problems in Probability
- Brainstellar
- Puzzledquant - although has mostly repeated problems from other sources, still have some new problems, and also really nice to learn about new approaches through comments sometimes. This sheet contains all problems(even the locked ones) - Link.
- Market making - 1, 2, 3
Optional -
- quantguide.io
- Gurmeet's Puzzles
- Dice Problems: https://www.karlin.mff.cuni.cz/~nagy/NMSA202/dice1.pdf
- https://www.math.lsu.edu/~smolinsk/Quant_Interview_Prep.pdf
General Recommendations:
- While practicing, sort problems into some categories into your mind and try to make a generic framework. After a point, every problem would start to look like some variant of a problem you've already solved.
- While solving a new problem, try to look for other solutions on internet, like on mathstackexchange or puzzlestackexchange. Lot of times you will get faster, and very nicer solutions than the conventional ones.
- Maintaining notes while solving problems would be helpful in the end.
- Make a nice resume, mentioning all your achievements, projects, internships etc. Keep it to 1 page and relevant to the job description.
- Look for openings here - https://github.com/northwesternfintech/2027QuantInternships . These repo only includes link for US/UK openings mostly, but try looking for any openings in general of the mentioned firms. Apply anyway, even if you think getting OA/interview is not possible.