Arcesium Summer Internship (On-Campus) 2022
There were 3 technical rounds of 45 mins each and 1 HR round of 20 minutes (varies).
1st Technical Round: The interview started with a discussion on arrays and linked lists. I was asked some questions:
- Structure of the linked list. Follow up, if you have to insert an element at a specific position, what would you prefer, linked list or array? Next, you have an array of size 10, you want to insert another element into the array, how would you insert it? We create a new array of double the size, copy the original element and then add the element. Follow up, Why did you double the size, why not triple it?
- Given a linked list, find the starting point of the loop in the linked list. If you know the proof of the Floyd Cycle Detection Algorithm, that’s a plus, I wasn’t able to prove it correct.
- There were follow-up questions. He made changes to function, instead of passing the pointer, he pass the node as a value.
- Given two strings, s1 and s2. Find if the characters of s2 can be reshuffled to create s1. We had to check if the frequency of each character is the same or not. He asked which data structure I would use to store, I said I would use a vector of size 256 as ASCII has that many characters.
- He asked about hashmap.
- We could also use the unordered map to search, insert and delete in constant time. So, he asked why did I use vector then. The answer was, even though, an unordered map takes constant time but the constant factor in itself is very large while for vector it is quite low.
- He then asked about the worst time complexity of an unordered map and when does it occur, collisions, how can we avoid them.
- How does hash map work, why does it take constant time?
- Given a binary tree, check if it is a BST. There were some follow-up questions again.
2nd Technical Round: There was a discussion about my project. Questions asked were:
- Which technologies I have used and the reason for using them.
- Why did I use a NoSQL database, Among NoSQL databases why MongoDB?
- How many rest endpoints does my project have?
- What does happen when a user creates an account?
- Present load the application can handle?
- How can you scale it?
- He asked me to write a SQL query. Given a table containing roll_id, course_id remarks, score print the roll_id of students securing the top 3 highest marks of each subject.
- Questions about ACID properties?
- How does the database maintain consistency?
- How does it maintain durability?
- Normalization and its forms?
3rd Technical Round: There was a slight discussion on my project again. This round was focused on OOPS and OS. Questions asked were:
- 4 pillars of OOPS?
- How is abstraction achieved?
- Why do we need inheritance? Example?
- Then, he wrote two classes and asked me to inherit one of the classes.
- Access specifiers? Why do we need them?
- Questions about the dynamic allocation of memory? How to de-allocate them?
- What happens if we don’t de-allocate it?
- Garbage collector?
- If class B inherits from class A, can the pointer of class A type point to the object of class B?
- What happens if a class inherits from two classes and both have a common method?
- Compile-time error or a run-time error? How do we avoid them?
- Virtual functions?
- Compile-time polymorphism vs run-time polymorphism?
- Implement their code. Scheduling algorithms? Which is the best?
- Process vs Threads?
- context switching?
- Process Control Block?
- Disadvantages of Threads?
- Can there be a problem if two threads access the same memory?
There were some more questions.
HR Round: Behavioural questions were asked. The questions can be a bit weird. So, be prepared.
Arcesium asks many follow-up questions. So, when preparing a topic, make sure you read through the details. Apart from coding, they also ask OS, OOPS, and DBMS. Hence 3 technical rounds.
Please Login to comment...