A raw, brief summary of how my OCS internship season went, and general advice.
Being a CSE student, I had aimed to land an intern in either SDE or quant. After my fourth semester, I found I was not prepared for both. However, I had a good estimate of how to prepare myself, and after talking to seniors, concluded that both roles were in reach if I prepared well. I had a good CGPA and had done my courses well. So I formulated a game plan to revise previously done stuff (like DSA, Probability, Discrete Math) and learn whatever more was required. Throughout the summer, I kept in touch with batchmates who were also preparing, and we kept each other on track. Finally, after a hectic fortnight fiilled with tests and interviews, I landed a great SWE internship at Glean Search Technlogies.
Given how difficult it was for me and my friends, I'd like to share some general advice and resources on how to prepare, what to expect and how to handle weird situations that can crop up. This is keeping in mind the general population, who, like me, found it difficult to cope in the initial phases of uncertainty and high standards of some qualifying rounds.
1. Talk to seniors who got internships in the roles or companies you are aiming for, or want to find out about.
You may have no idea how the roles are different from each other. Or, maybe, you can't settle on what to prepare for. It is your job to find what roles are fit for you. In general, if you like to code efficiently, cleanly and modularly, you can go for software. If you like rigourous math and would like to apply your knowledge in the financial field, you can try quant(-itative finance). You can ask relevant people about other roles like consulting and core fields. Of course, there are certain nuances, but you should be slightly inclined to one or two of these to avoid confusion nearer to the interview phase.
For me, I am interested by both software and math, so I prepared for both software and quant.
Don't limit yourself, but get a good understanding of where you stand. Again, contact seniors who you think were in the same shoes as you.
You have to be good at algorithms as well as writing clean code. And definitely, competitive programming is a big, big boost for tests.
- Get a good grip of DSA (COL106 if done).
- If you have not done CP before, start with Leetcode. You can try the module of 150 interview problems, or sets like Striver's DSA sheet as a starting point. But this will NOT be enough for most tests.
- Then move to the CSES Problem set. It is very educational and enough to get you to think about most standard approaches.
- Use the famous CP Handbook to get a basic understanding of basic standard algorithms. There were some questions in tests which required implementation of approaches straight from here.
- Keep giving Codeforces contests regularly. Start ASAP. Discuss approaches with friends and DON'T feel ashamed if you are not able to think through. It will come to you slowly.
I wasn't good at CP at all initially. But I knew I could be better, so I worked on it. It can definitely be improved with time but the earlier you start, the better. Virtual contests helped me get faster.
- Do assignments properly. Develop a habit of using classes and encapsulation. You should be as good at writing clean code as you can, as it leaves a good impression during interviews.
- Be thorough with OOP concepts in your language. Geeksforgeeks sheets like these and learncpp.com are good resources for C++.
- Make sure you do the probability course (MTL106) thoroughly, even if you don't get an A.
- The same goes for the discrete math course (COL202 for me).
- Do problems from standard resources. Some of these are:
- Brainstellar
- Xinfeng Zhou (relevant topics)
- PuzzledQuant
- 50 Challenging Problems in Probability
- Heard on the Street
- Mark Joshi
- After doing a couple of these, you will get a hang of it and it will get easier to get through the rest.
- Discuss approaches with friends.
- Some quant tests will ask CP problems, so be ready for that.
Be collaborative with your peers, don't get too competitive amongst yourselves!
- Tests ARE getting harder every year.
- Be ready to give tests at midnight.
- Put expectations aside. There will be occasions where you think you deserved a shortlist more than someone who actually got it. Something better is in store for you.
- Support your friends, and they will support you. This is what kept me sane.
- OCS Slottings can unfortunately lead to a potential waste of shortlists. In my case, I had only two shortlists that I actually wanted in the first slot of Day 1 (Optiver and Glean). My other quant preferences were in the second slot. But I couldn't risk giving the first slot interviews badly to be able to sit for Slot 2. So, essentially, my Slot 2 quant shortlists got wasted since I had to get something in Slot 1. But it turned out well in the end.
- Face rejection with strength. It may happen multiple times if you are in the larger majority of people.
- Expect OCS to give you a hard time in general.
- Companies may delay interviews purposely. It is your job to handle the situation diplomatically so as to not reduce your chances of getting offers by telling them off, while at the same time making sure you are able to give your top priority interviews well.
All the best to future aspirants!