TCS digital interview
Summary
I successfully navigated a two-round interview process for a TCS Digital role, which included an online assessment featuring a 0/1 Knapsack problem and a comprehensive face-to-face technical and HR interview covering Java, system design, and general technical knowledge. Ultimately, I received an offer.
Full Experience
Round 1: Online Test
This round consisted of an online test conducted at TCS Ion centers. It was divided into 4 sections, with the first 3 being Multiple Choice Questions (MCQs) and the last one being a coding challenge. There was sectional timing and negative marking, so it was crucial to answer only when sure.
Section 1: Reading and Vocabulary Skills
This section had 15 questions to be completed in 10 minutes. Most questions required finding answers from paragraphs, so speed and accuracy were key.
Section 2: Quantitative Aptitude
I faced 20 questions in 30 minutes, ranging from intermediate to advanced levels, covering basic equational math to geometry.
Section 3: Technical MCQ Round
This was a relatively easy section with 15 questions to be done in 30 minutes. The questions were clear and tested basic technical knowledge. I tried to attempt as many questions as possible here, as it seemed to be the easiest section.
Section 4: Coding Section
This section had only 1 coding problem to be solved in 60 minutes. We had to code in Eclipse IDE, with manual debugging and only 2 visible test cases out of a total of 8. The question I received was the '0/1 knapsack problem,' which is a standard dynamic programming problem.
Out of more than 250 applicants, 90 students were shortlisted for the second round, and I was among them.
Round 2: Face-to-Face Interview
The second round was a face-to-face interview at a TCS facility. There were 5 panels, each consisting of 3 members. I waited for almost 5 hours before my turn. The interview was a combination of Technical and HR questions. The interviewer called my name last, and I entered the room, greeted them, and handed over my resume. The interview then began:
- They asked me to tell them something about myself.
- They inquired about a project I had worked on, and I spent about 10-15 minutes answering all their questions, which seemed to impress them.
- They asked which language I was most comfortable with. I stated Java, knowing that further questions would be based on it.
- They asked, "Why is String immutable?"
- I was asked about other immutable things in Java.
- They then asked how one could explicitly make anything immutable.
- "Suppose you have a large quantity of data input in your application. How would you handle it?" (They hinted at cache servers, like those used by Facebook).
- They followed up with, "What is the algorithm of cache servers?"
- I was asked to explain the difference between ML, DL, and AI.
- They noticed my work with Kali Linux and asked what I specifically did with it.
- "How does an aircrack attack work?"
- "What is the dark web? How can you access it?"
- "Why can’t you access the dark web with Chrome or any other normal browser?"
- "What is the difference between an application server and a web server?"
- They asked how packet bundling is handled in PHP, as it was in my skillset.
- "Where and how is MongoDB used?"
- "What is the use of MongoDB and why to use it besides having relational databases like MySQL?"
- "What happens when you hit enter after typing a URL?"
- They covered OOP concepts in Java.
- "You seem to have quite a taste in research work along with studies. What would you choose: research or development?"
- Finally, they asked if I had understood all job-related criteria and was aware of the pay scale, offering me a chance to ask any doubts.
I thanked them for their valuable time and left. The results were announced after about two weeks; 21 out of 90 students were selected, and I was among them!
Interview Questions (21)
0/1 Knapsack Problem
Implement the 0/1 Knapsack problem using dynamic programming to find the maximum value that can be put into a knapsack of a given capacity.
Tell me something about yourself
Introduce yourself and provide an overview of your background, education, and professional experience relevant to the role.
Discuss a project you worked on
Describe a significant project you have worked on. Be prepared to discuss its purpose, your role, technologies used, challenges faced, and outcomes.
Preferred Programming Language
Which programming language are you most comfortable and confident with?
Why is String immutable in Java?
Explain the reasons behind String's immutability in Java and its benefits.
Other Immutable Objects in Java
Besides String, identify other types or classes in Java that are immutable.
How to Create an Immutable Class in Java
Describe the steps and best practices for explicitly designing and implementing an immutable class in Java.
Handling Large Data Input
Given an application with a large quantity of data input, how would you design a system to handle it efficiently and robustly? (Hint: Consider cache servers, similar to Facebook's approach.)
Cache Server Algorithms
Explain the common algorithms and principles that cache servers use for data management, eviction, and consistency.
Difference between AI, ML, and DL
Explain the distinctions and relationships between Artificial Intelligence (AI), Machine Learning (ML), and Deep Learning (DL).
Experience with Kali Linux
Describe your specific experiences, projects, or activities involving the use of Kali Linux.
How Aircrack-ng Attacks Work
Explain the methodology and technical details of how an aircrack attack (e.g., against WEP or WPA/WPA2) operates.
Understanding and Accessing the Dark Web
Define what the dark web is, how it differs from the deep web and surface web, and explain the methods used to access it.
Why Standard Browsers Cannot Access the Dark Web
Explain the technical reasons why common browsers like Chrome, Firefox, or Edge cannot directly access the dark web.
Difference between Application Server and Web Server
Explain the primary distinctions in functionality, purpose, and architecture between an application server and a web server.
Packet Bundling in PHP
Given your PHP skillset, explain how packet bundling or related network communication optimization is handled within PHP applications or environments.
Uses and Applications of MongoDB
Describe the common use cases for MongoDB and how it is typically employed in real-world applications.
Why Use MongoDB Over Relational Databases?
Explain the specific advantages, use cases, and scenarios where MongoDB (a NoSQL database) is preferred over traditional relational databases like MySQL.
Browser URL Navigation Process
Describe the end-to-end process that occurs, step-by-step, from the moment you type a URL into a browser's address bar and hit enter, until the requested webpage is fully displayed.
Object-Oriented Programming (OOP) Concepts in Java
Explain the core Object-Oriented Programming (OOP) concepts (e.g., Encapsulation, Inheritance, Polymorphism, Abstraction) within the context of Java.
Research vs. Development Career Path
Given your apparent interest in research work alongside studies, which career path would you choose between research and development, and what are your reasons?
Preparation Tips
For the technical MCQ round, I recommend attempting the maximum number of questions as it tends to be the easiest section. During the face-to-face interview, always wear a smile, and try to make the discussion as interactive as possible.