The selection process had two parts – an online test and two interview rounds.
Online test: It was an MCQ type of test which had questions based on quantitative aptitude like permutations, and combinations, OOP concepts of C++ & Java, Data Structures (the focus was mostly on trees and stacks), Algorithms, and communication skills. It also had questions related to debugging and guessing the output by analyzing a logical structure (similar to pseudocode).
Round 1: In this round, I was first asked to introduce myself briefly. Then, I was asked to write code to generate the Fibonacci sequence and to merge two sorted linked lists. Then I was asked about my achievements and situation-based questions like what would you do if you had a conflict with your team manager, etc.
Round 2: In this round, I was asked why I chose my engineering college and branch. Then, I was asked a question on Binary Search. Then, I was asked about my favorite project (problems faced, and how I tackled them, the basic workflow of the project, etc.), my hobbies, and my team working skills. The interviewer dove deeper into each aspect like, for eg: When I said that my hobby was reading books, he asked me about the recent books I had read, what I had learned from them and how I applied those concepts/philosophies to real-life scenarios. The interviewer was very friendly, so we had a good rapport.
The interview rounds went well, and I was selected along with my four other batchmates.
- The most important topics for the online round (not limited to a specific company) are Dynamic Programming, Greedy paradigm, Graph algos, String algos, Binary Search, Hashing, and data structures like a stack, queue, heap, disjoint set. In addition to these, the interview rounds consist of BST and linked list-based questions. Don’t go for advanced topics like segment trees, BIT, etc. if you don’t have time. Apart from practicing, also take part in coding contests, so that you can improve your coding skill under time constraints.
- Also, you need to have a good understanding of your favorite programming language, like the OOP concepts it uses, exception handling, memory management, etc. Prepare well about the projects that you have mentioned in your resume.
- Be calm and confident. Don’t over-prepare before your interview, as it may cause fatigue. Tell your thought process to the interviewer and start coding only when the interviewer is satisfied with your approach. If you get stuck in your interview look for the clues given by the interviewer, or you can ask the interviewer for a hint. The interviewer would usually be very cool and eager to help.
I used GeeksforGeeks to learn and practice all the concepts.