by Param Khakhar

Categories

  • Experience
  • Interviews

Tags

  • Interview Preparation

image-center

Well, an article after a really really long time, reason being, I was taking exams, making submissions, giving demos, all with a compressed schedule, and after which there were the interviews for the summer internship 2021. Finally, things have settled (momentarily :P) and now the new semester would resume from 28th of September, but boy, I must say, this period was unprecedented (at least for me), and unanticipated as well. This article is mainly for the interview procedure for the internships and how should one prepare (or perhaps some of the mistakes which I did, which you shouldn’t do) in order to clear all the rounds.

Note: I’m a computer science student (junior undergrad during the time at which this is written), and my applications was mainly for the companies who offered quant based roles, and software engineering (more formally systems engineering).

Round 1

For most of the companies I applied, the first round would be a programming round wherein you’d have to write programs for the questions provided within a given time limit. Here, time could be collective for all the questions or might be the case that the individual questions have particular time frame in which they need to be solved. They are conducted on platforms such as hackerrank, hackerearth, codeground, codesignal etc. The shortlisting criteria for the companies seems to be a mix of number of questions solved and your CV/GPA i.e if you have a high GPA and solve less questions might get you shortlisted. “Seems” because this is a hypothesis, and yes I have observed some exceptions as well. The recommended language is C++ which is because of its speed and the data structures in the STL. You should know IO operations, rounding operations (for floats), and other string related functions such as substring etc, and declaring and using various data structures. Some questions may involve processing with large numbers, and in that scenarios, I used to switch to Python3, but knowing how to do that with C++ is also a plus.

Talking about myself, this round got the better of me in majority of the companies, reason being, lack of sufficient practice. On asking some of the friends of mine who cracked this round more comfortably than me, one of the most common answer was that, “I had solved this particular question or a similar question earlier”. Now, in a timed exam, if you are spending time figuring out the various methods by which a particular question can be solved from scratch i.e amongst all possible different methods, then this won’t be a good idea. There are questions which can only be done using certain techniques and if you don’t know them, then there are very less chances of you writing the correct program. Well, you may pass some of the test cases, but not all!

The solution for this would be to practice questions online from platforms such as Geeks For Geeks For Geeks, InterviewBit, and LeetCode. The main categories of the questions which I faced were:

  • Dynamic Programming
  • Graphs
  • Arrays
  • Strings
  • Trees

A particular way of doing these questions would be to sort them by the number of times they are asked in the interviews, for obvious reasons ;). Along with them, it’d be certainly better if you participate in live contests, where in you’d have to solve as many questions (out of a givne number of questions) as you can in a given time limit. Codeforces, and Codechef are two of the prominent ones, used by people out there. You need to be sincere and diligent while solving the practice questions. The above recommendations are after assuming that you’ve taken a formal data structures course. If you haven’t done that, do it ASAP, it is quintessential! If you participate in contests out there, and do good, this round would be bread and butter for you, if you simply practice the standard problems. So go start coding! Simply mugging up solutions won’t be a good idea, because in the interviews you’d be asked on how do you form the solution, so try to understand and make things clear. The feeling after understanding the solution or a particular algorithm is deeply satisfying for me, and amazing as well :).

Round 2 - 3

If you clear round 1, which for me was not easy, then you’d be quizzed by some interviewers. The questions would normally revolve around the above mentioned topics along with data structures such as hash maps (the different implementations), trees, and some algorithmic questions involving two pointers etc. So, time to revise your Data Structures course notes! If you are applying for a quant based position, then you’d be asked some questions based on probability as well. A must-do compulsory source for these puzzles is Brain Stellar, and we again have puzzles @ Geeks For Geeks. Solving them is fun :P. Along with these puzzles, you might be quizzed on typical probability questions involving random variables and expectation values, so you’d have to cover the probability basics from your probability course. Apart from this, interviewers tend to ask questions on the object oriented paradigm of programming as well, after all you being applying for an SDE role, should know it and their advantages over other paradigms. The title for this is round 2-3 because, you might be interviewed by 2 different interviewers over 2 different rounds. For one of my applications, it was probability and puzzles for the round 2, and some algorithmic questions in round 3.

Round 4

This round is interviewed by the HR, wherein they check how you value their organization, what your moral values are, perhaps your ethics etc. I didn’t experience this round for my interviews so the only thing which I can tell is that be yourself and be confident.

Other Remarks

  • I had stated this earlier, but again repeating this, start getting involved in competitive programming, if you haven’t started to do so. There are benefits in round 1 and round 2-3 as well.
  • It is indeed good to do some projects as well, but one thing which I noticed is that they would matter when you’ve cleared round 1, and performed satisfactorily in round 2-3. If these conditions aren’t satisfied, then projects won’t matter much imo. If there are two people under consideration after clearing the rounds, then the company would go with the candidate who has done relevant projects or rather the one with a higher GPA.
  • Another particular thing which you should practice is to precisely explaining the solution, verbally. This would matter as you’d verbally engage with the interviewers. You may get rejected for your inability to explain the anwer to your interviewer irrespective of the fact that you know the solution.
  • You should mention the time and space complexities of any algorithm which you explaing to your interviewer. Instead of directly jumping to think about the efficient/desired solution, you may choose to state the Brute Force solution (it’d help in case you aren’t able to formulate the efficient solution :P).
  • It might be a case that instead of the final answer, the interviewer is interested in your thinking procedure, in other words the approach which you are using to solve the problem, and the steps which you are taking to reach to the solution. It is a good habit to let your interviewers know about the method which you are thinking and why.
  • If you’re stuck, then you can ask for some hints i.e directions in which you should think for the solution.
  • Stay confident during the interview, be attentive, and have a good sleep. It’s okay to have a bad interview, but stressing out over it isn’t good. Well, after all it isn’t the end of the world or end of your opportunities! Learn from your experience and move on, I’d suggest.
  • You should know your CV inside out! Yes, you would be quizzed on it, and your inability to answer the questions on your projects could result in a bad impression. For projects you maybe asked on their motivation, challenges faced by you, and future improvisations.

Happy Interviewing!

All the points mentioned above, have been assembled from an ensemble of experiences of my seniors, my colleagues, and me as well. So a big shout out to them as well! For even more resources, my DMs are open!