Cisco visited our campus for hiring interns for 2020-21. Every process was done virtually due to the pandemic.
Round 1(Online Round – 60 min): The first round consisted of 2 coding questions and 15 MCQs. The time allotted was 1 hour. The MCQs consisted of aptitude, basic output questions, networking, and some other topics also. The test was conducted on Hackerrank and navigation among the questions was allowed. Only three languages were allowed for coding questions: C, JAVA, and Python.
Two players are playing ‘n*n’ scrabble game for some time. Cells with letters are marked as 1 and empty ones are marked as 0.
The goal is to count the number of ways with exactly X characters solved on the board.
Sample Input: 00100 11100 10111 10010 11111 X=3 Sample output: 4
The exact same problem is given below with some different descriptions. https://www.codechef.com/problems/H1
I solved both the coding problems completely and solved more than half of the MCQs. The result came out after 3-4 days, and I was shortlisted for the interview. The interview was scheduled on Cisco WebEx.
Round 2 – Technical Interview (60 min): This round started with a brief introduction of myself and a quick walk through my resume. I had mentioned team collaborator as my soft skill, so he asked me to give a situation in which I had acted as a team collaborator.
- He asked about the storage classes in C. I explained to him the various classes and their details. Then he asked about static keyword in C. Then he asked the difference between global static variables and global variables. I didn’t know its answer, so he moved on.
- He asked me to write a code of a structure in C, and he gave me the variables for that structure. Then he asked me to tell the size of that structure. I asked him if I had to consider structure padding or not. He told me to simply tell him what will be the size of that code is run. Then I told him the size considering structure padding. He asked me to explain what is structure padding. Then he did some modifications in the given structure and again asked me to tell the size and how I calculated the size. Then he asked if there was any way to avoid structure padding. I told its answer and he seemed satisfied with it.
- Then he basically gave me two character arrays and asked me to calculate the number of occurrences of one in another. I told him naive pattern searching will take O(m*n) time, and so I would use the KMP algorithm. He asked me to simply write down its code. I wrote the code, and he asked me to do a dry run on a given sample input. As I explained the code, there was a bug in it and I identified it during the dry run and I corrected it. He seemed satisfied with it.
- He asked me if computer networking had been in my curriculum and I replied in negative. However, I had done my project in socket programming, so he asked me how I had done it and explain the concept of sockets and how they work. Then he asked me about the types of sockets. I told him about TCP and UDP. Then he asked me to explain those and tell the differences. I had studied them and I explained the details and working of those. Then he asked me if about other protocols at a lower level. I told him about Internet Protocol. Then he asked me if I had heard about IPv4 and IPv6. I told him, yes, then he asked me to explain them. I told everything in detail, including the key differences, and he seemed quite satisfied with it.
After that, he asked me if I had any questions. I asked me a couple of questions and it was over.
After 20 minutes, I got informed that I was selected for the Managerial interview.
Round 3-Managerial Round(45 min): The interview started with a brief introduction of me. The very first thing the interviewer asked me the projects mentioned in my resume. I had mentioned two projects, so I explained in brief about both the projects.
He didn’t ask any cross-questions about the projects.
- Then he said to me that, since I had mentioned C++ in my resume, he asked me to tell anything that I had done especially in C++. I told him that I use C++ mainly for competitive programming. Again he asked me to tell him something I had done in C++. Initially, I didn’t understand his question well but then, I told him various competitive programming problems I had solved using C++.
- Then he asked me about the various data structures I have studied. I told him arrays, stacks, linked lists, graphs, and trees. Then he asked me to write a code for a linked list. I asked if it was a singly linked list or doubly linked. He told me it was the singly linked list. Then I wrote code in NotePad and shared my screen. Then he asked me to write a function to traverse the linked list. I wrote the code, and he asked me to dry run it, which I did. Then he asked me if I had studied the graph, to which I replied positively. Then he asked me how graphs can be represented. I told him about the adjacency list and adjacency matrix. He asked me to represent it as a linked list node. Then I started writing code for it and asked him if the maximum number of nodes to which a graph node is fixed or not. If it is fixed, I would use a static array of GraphNode pointers to represent the connected nodes, whereas in another case, I would dynamically create the child nodes. He was impressed with my question. I again asked him a couple of questions, if the graph was directed or undirected, and if the graph was connected or disconnected. I discussed different structures of graph nodes with different cases. He seemed impressed with it and kept complimenting me about my thinking process.
- Then he asked me to write a simple, undirected graph node, which I did. He then asked to write a function to traverse the graph. I started writing code, but he asked me to discuss the approach only which I did.
- Then he asked me if the various subjects I was studying in the current semester. I told him, and he asked what was being taught in each subject. I told you about job scheduling in Operating Systems. He asked me about the various types of job scheduling algorithms. He then asked me the data structure used in preemptive job scheduling. I told him priority queue, but he was expecting the queue used in the Round Robin algorithm. I got it when he repeated the question, and he seemed satisfied with it.
Then he didn’t ask any other questions and asked me I had any questions. I asked the same questions I had asked in the previous round which he explained to me.
Round 4- HR Round(10 min): 2 hours approximately after the 2nd round, I was called for the HR round. It was a very chill round. It started with my introduction. Then the interviewer asked me about the project which was very close to me and why. She then asked about my job preference and relocation preference. She asked me if I had any questions and I asked how interns are assigned projects. She explained the whole process and after that, this round was over.
In the evening, the list of selected students, and I was quite happy to find my name in it.