Technical + HR + Group Discussion — Everything You Need to Crack IT Company Interviews
Understanding the interview structure helps you prepare systematically. Each company has a slightly different process, but the core rounds remain similar across the IT industry.
| Company | Rounds | Duration | Elimination Rate |
|---|---|---|---|
| TCS | Online Test → Technical → Managerial → HR | 4-5 hours | Online: 50% | Tech: 25% | HR: 5% |
| Infosys | Online Test → Technical → HR (+ Coding for SP) | 3-4 hours | Online: 45% | Tech: 30% | HR: 5% |
| Wipro | Online Test → Technical → HR | 3-4 hours | Online: 50% | Tech: 20% | HR: 5% |
| Accenture | Online Assessment → Communication → Technical → HR | 4-5 hours | Online: 40% | Comm: 15% | Tech: 20% |
| HCL | Online Test → Technical → HR | 3-4 hours | Online: 45% | Tech: 25% | HR: 5% |
| TechMahindra | Online Test → GD → Technical → HR | 5-6 hours | Online: 50% | GD: 30% | Tech: 15% |
| Deloitte | Online Test → GD → Technical → HR | 5-6 hours | Online: 45% | GD: 25% | Tech: 20% |
Most eliminations happen in the online aptitude test (40-50% candidates filtered). Once you clear the online round, your chances improve significantly. The HR round has the lowest rejection rate — focus maximum energy on aptitude and technical preparation.
Technical interviews test your CS fundamentals, not advanced concepts. Companies want to see clear thinking, not memorized answers. Below are the top 20 questions asked across all major IT companies, organized by topic.
| Company | Primary Focus | Secondary Focus | Deep Dive Topics |
|---|---|---|---|
| TCS | Java Basics, OOP | DBMS, SQL | Project discussion, Java collections |
| Infosys | DSA, Problem-solving | OOP, DBMS | Coding logic, complexity analysis |
| Wipro | Cloud basics, DevOps | Java/Python | AWS/Azure fundamentals, CI/CD |
| Accenture | Full-stack concepts | Agile, SDLC | React/Angular basics, REST APIs |
| HCL | C/C++, OS | Networking | Pointers, memory management |
| TechMahindra | Networking, Telecom | Java, SQL | OSI model, protocols |
| Deloitte | Consulting skills | Analytics, SQL | Case studies, Excel, business logic |
1What is the difference between Array and Linked List?
Array: Contiguous memory allocation, fixed size, O(1) random access by index, insertion/deletion is O(n) as elements need shifting. Good for: frequent access by index, known size.
Linked List: Non-contiguous memory with pointers, dynamic size, O(n) access (sequential traversal), insertion/deletion is O(1) if you have the node reference. Good for: frequent insertions/deletions, unknown size.
Follow-up tip: Mention cache locality — arrays are cache-friendly while linked lists cause cache misses.
2Explain Stack and Queue. Where are they used?
Stack: LIFO (Last In First Out). Operations: push, pop, peek — all O(1). Uses: function call stack, undo operations, expression evaluation, backtracking algorithms.
Queue: FIFO (First In First Out). Operations: enqueue, dequeue — O(1). Uses: BFS traversal, CPU scheduling, print queue, buffering.
Real example: "Browser back button uses stack. Printer queue uses queue."
3What is a Binary Search Tree? What is its time complexity?
BST is a binary tree where: left subtree contains nodes less than root, right subtree contains nodes greater than root. This property enables efficient searching.
Time Complexity: Average case: O(log n) for search, insert, delete. Worst case (skewed tree): O(n). To maintain O(log n), use self-balancing trees like AVL or Red-Black trees.
4What is the difference between BFS and DFS?
BFS (Breadth-First Search): Level by level traversal, uses Queue, finds shortest path in unweighted graphs, more memory (stores all nodes at current level).
DFS (Depth-First Search): Goes deep before backtracking, uses Stack (or recursion), memory efficient, used for cycle detection, topological sort.
When to use: "BFS for shortest path, DFS for exploring all paths or detecting cycles."
5Explain different sorting algorithms and their time complexities.
| Algorithm | Best | Average | Worst | Space |
|---|---|---|---|---|
| Bubble Sort | O(n) | O(n²) | O(n²) | O(1) |
| Selection Sort | O(n²) | O(n²) | O(n²) | O(1) |
| Insertion Sort | O(n) | O(n²) | O(n²) | O(1) |
| Merge Sort | O(n log n) | O(n log n) | O(n log n) | O(n) |
| Quick Sort | O(n log n) | O(n log n) | O(n²) | O(log n) |
| Heap Sort | O(n log n) | O(n log n) | O(n log n) | O(1) |
Pro tip: "Quick Sort is preferred for arrays (cache-friendly), Merge Sort for linked lists (no random access needed)."
6What is time and space complexity? Explain Big O notation.
Time Complexity: Measure of how runtime grows with input size. Helps compare algorithm efficiency.
Space Complexity: Measure of memory usage as input grows.
Big O: Describes the upper bound (worst case). Common complexities: O(1) constant → O(log n) logarithmic → O(n) linear → O(n log n) → O(n²) quadratic → O(2^n) exponential.
Example: "Searching in unsorted array is O(n), in sorted array using binary search is O(log n)."
7Explain Binary Search algorithm.
Binary Search works on sorted arrays. Compares target with middle element: if equal, found; if target is smaller, search left half; if larger, search right half. Repeat until found or range exhausted.
Complexity: O(log n) — halves search space each iteration.
Prerequisites: Array must be sorted. Random access required (not suitable for linked lists).
8What are the four pillars of OOP?
1. Encapsulation: Bundling data and methods that operate on data within a class. Using access modifiers (private, public, protected) to hide internal state. Example: private variables with public getters/setters.
2. Abstraction: Hiding implementation details, showing only essential features. Example: driving a car — you use steering/brakes without knowing engine internals.
3. Inheritance: Child class acquires properties of parent class. Enables code reuse. Types: single, multilevel, hierarchical (Java doesn't support multiple inheritance with classes).
4. Polymorphism: Same interface, different implementations. Two types: compile-time (method overloading), runtime (method overriding).
9Difference between method overloading and overriding?
Overloading (Compile-time polymorphism): Same method name, different parameters (number, type, or order). Happens within same class. Resolved at compile time.
Overriding (Runtime polymorphism): Same method signature in child class. Requires inheritance. Resolved at runtime based on object type. Must use @Override annotation in Java.
10What is the difference between Abstract Class and Interface?
Abstract Class: Can have both abstract and concrete methods. Can have constructors, instance variables. Single inheritance only. Use when classes share common implementation.
Interface: All methods are abstract (until Java 8 default methods). No constructors. Multiple inheritance allowed. Use for defining contracts/capabilities.
When to use: "Is-a relationship → Abstract class. Can-do relationship → Interface. Example: Dog is-a Animal, but can-do Swimmable."
11What are different types of SQL JOINs?
INNER JOIN: Returns rows with matching values in both tables.
LEFT JOIN: All rows from left table + matched rows from right. NULL if no match.
RIGHT JOIN: All rows from right table + matched rows from left.
FULL OUTER JOIN: All rows from both tables, NULL where no match.
CROSS JOIN: Cartesian product — every row from first table with every row from second.
12What is normalization? Explain different normal forms.
Normalization: Process of organizing data to reduce redundancy and improve data integrity.
1NF: Atomic values (no repeating groups). Each cell contains single value.
2NF: 1NF + no partial dependency. All non-key columns depend on entire primary key.
3NF: 2NF + no transitive dependency. Non-key columns don't depend on other non-key columns.
BCNF: Stricter 3NF. Every determinant is a candidate key.
13What is ACID in database?
Atomicity: Transaction is all-or-nothing. Either all operations complete or none do.
Consistency: Database moves from one valid state to another. All constraints satisfied.
Isolation: Concurrent transactions don't interfere with each other.
Durability: Once committed, data persists even after system failure.
Example: "Bank transfer — debit and credit must both happen or neither happens (Atomicity)."
14What is the difference between Process and Thread?
Process: Independent program in execution. Has own memory space (code, data, heap, stack). Context switching is expensive. Processes communicate via IPC (pipes, sockets, shared memory).
Thread: Lightweight process, unit of CPU utilization. Shares memory with other threads in same process. Context switching is faster. Threads share code, data, heap but have own stack.
Analogy: "Process is like a house. Threads are family members sharing common areas but having own rooms (stack)."
15What is deadlock? What are the conditions for deadlock?
Deadlock: Situation where two or more processes are waiting indefinitely for resources held by each other.
Four necessary conditions (all must be true):
Prevention: Break any one condition to prevent deadlock.
16What is paging and virtual memory?
Paging: Memory management technique dividing physical memory into fixed-size blocks (frames) and logical memory into same-size pages. Eliminates external fragmentation.
Virtual Memory: Technique allowing execution of processes not completely in memory. Uses disk as extension of RAM. Enables running programs larger than physical memory.
Page Fault: Occurs when requested page is not in RAM. OS loads from disk (expensive operation).
17Explain the TCP/IP model layers.
4 Layers:
Memory trick: "All People Seem To Need Data Processing" (Application, Presentation, Session, Transport, Network, Data Link, Physical) for OSI 7-layer model.
18What is the difference between TCP and UDP?
TCP (Transmission Control Protocol): Connection-oriented, reliable (guaranteed delivery), ordered packets, error checking, slower. Uses: HTTP, FTP, Email, SSH.
UDP (User Datagram Protocol): Connectionless, unreliable (no guarantee), no ordering, minimal overhead, faster. Uses: Video streaming, gaming, DNS, VoIP.
Analogy: "TCP is like registered mail (tracking, confirmation). UDP is like dropping letter in mailbox (faster but no guarantee)."
19What is HTTP vs HTTPS?
HTTP: Hypertext Transfer Protocol. Port 80. Data transmitted in plain text. Vulnerable to man-in-the-middle attacks.
HTTPS: HTTP Secure. Port 443. Data encrypted using SSL/TLS. Requires SSL certificate. Used for sensitive data (passwords, payments).
Modern note: "Google Chrome marks HTTP sites as 'Not Secure'. All modern websites should use HTTPS."
20What is DNS? How does it work?
DNS (Domain Name System): Translates domain names (google.com) to IP addresses (142.250.190.46). Works like phone book of the internet.
Resolution process: Browser cache → OS cache → Router cache → ISP DNS → Root DNS → TLD DNS (.com) → Authoritative DNS → IP returned and cached.
Common interview follow-up: DNS uses UDP for queries (speed) but TCP for zone transfers (reliability).
HR rounds assess cultural fit, communication, and career clarity. They're not looking for perfect answers — they want authenticity, self-awareness, and alignment with company values.
Education background, hometown, college
Current skills, projects, achievements, certifications
Career goals aligned with company, why this role
1Tell me about yourself.
Template Answer: "I'm [Name] from [City], currently in my final year of [Branch] at [College]. During my academics, I've maintained a [CGPA] while actively working on projects — most notably [Project Name] using [Technologies]. I've also completed certifications in [Relevant Skills]. I'm particularly interested in [Domain] because [genuine reason]. I see [Company] as the ideal place to start my career because [specific company attribute]. My goal is to grow as a [Role] and contribute to meaningful projects."
Avoid: Personal details (family), hobbies unless asked, negative statements about other companies.
2Why do you want to join our company?
TCS: "TCS's position as India's largest IT company and its comprehensive ILP training program make it ideal for freshers. The opportunity to work with Fortune 500 clients and TCS's focus on digital transformation aligns with my interest in enterprise solutions."
Infosys: "Infosys's emphasis on continuous learning through Infosys Springboard and its work in AI and cloud attracted me. The company's global delivery model would give me exposure to diverse projects."
Product Company: "I'm drawn to [Company] because of [specific product] and its impact on [users]. Working on products that millions use would give me direct feedback on my contributions."
Research tip: Always mention 1-2 recent company news or initiatives.
3What are your strengths and weaknesses?
Strengths: Choose 2-3 relevant to the job. Example: "My key strengths are problem-solving ability — I enjoy debugging complex issues, and quick learning — I picked up Python in 2 weeks for a project. I'm also good at explaining technical concepts in simple terms."
Weaknesses: Choose a real weakness with mitigation plan. Example: "I sometimes spend too much time on details to ensure perfection. I'm working on this by setting time limits for tasks and using MVP approach — get it working first, then optimize."
Avoid: Fake weaknesses ("I work too hard"), critical weaknesses ("I miss deadlines").
4Where do you see yourself in 5 years?
Template: "In 5 years, I see myself as a senior developer or technical lead who has mastered [relevant technologies]. I want to have contributed to significant projects and mentored junior developers. I'm interested in growing into [architecture/management] roles while staying hands-on with technology. [Company]'s career path from [entry role] to [senior role] aligns with this vision."
Tip: Show ambition but within the company. Avoid mentioning startups, MBA, or leaving.
5What are your salary expectations?
For Service Companies (Fixed CTC): "I understand the package for freshers is [X LPA] and I'm comfortable with that. I'm more focused on the learning opportunity and career growth at this stage."
For Product Companies (Negotiable): "Based on my research and the skills I bring — [specific skills] — I'm expecting in the range of [X-Y LPA]. However, I'm flexible and open to discussing the complete compensation package including benefits, learning opportunities, and growth potential."
Never: Accept a significantly lower package than market rate. Always research on Glassdoor/AmbitionBox first.
6Why should we hire you?
"You should hire me because I bring a combination of strong technical foundation and quick learning ability. My project work on [Project] demonstrates my hands-on experience with [Technologies]. I've consistently taken initiative — [example: organized coding workshops, led team project]. I'm adaptable, coachable, and genuinely passionate about software development. I'll bring the same dedication and curiosity to contribute to [Company] from day one."
7Do you have any questions for us?
Always ask 1-2 questions. Good ones:
Avoid asking about: Salary in technical round, work hours, leave policy (ask HR privately later).
8Describe a challenging situation and how you handled it.
Use STAR format:
Situation: "During my final year project, two team members dropped out midway due to internships."
Task: "I had to deliver the same scope with half the team in the remaining 3 weeks."
Action: "I prioritized features using MoSCoW method, redistributed work, scheduled daily standups, and personally took on the complex backend module."
Result: "We delivered the core product on time, received distinction grade, and the project was selected for department showcase."
9Are you willing to relocate?
Best answer: "Yes, I'm flexible about relocation. I understand that the best projects and learning opportunities might be in different locations. I'm excited about experiencing different cities and cultures. [Company's] presence in multiple cities is actually an advantage."
Note: Saying "no" to relocation significantly reduces your chances. Most service companies have pan-India operations.
10How do you handle pressure and tight deadlines?
"I perform well under pressure — in fact, it brings out my focus. My approach is: (1) Break the task into smaller milestones, (2) Prioritize what's critical for deadline, (3) Cut unnecessary scope if needed, (4) Ask for help early rather than struggling alone. During [exam/project], I had [X days] to complete [Y]. I created a hour-by-hour schedule and delivered successfully."
11What is your biggest achievement?
Choose an achievement that shows skills relevant to the job. Options:
"My biggest achievement is [X] because [it required Y effort] and taught me [Z skill]. It demonstrated my ability to [relevant trait]."
12Why did you choose this branch/engineering?
For CSE/IT: "I chose Computer Science because of my fascination with how software can solve real-world problems. Creating something from code that people actually use is incredibly satisfying. As technology increasingly drives every industry, I wanted to be at the center of that change."
For non-CS branch: "While my degree is in [Mechanical/ECE], I developed strong interest in programming through [specific experience]. I've upskilled by [certifications, projects] and I believe my engineering fundamentals combined with software skills give me a unique perspective."
13Tell me about a time you failed.
"In my second year, I underestimated the complexity of [project/subject] and didn't start preparation early enough. I barely passed that exam/deadline. It was embarrassing but taught me valuable lessons: (1) Start early, (2) Break large tasks into smaller chunks, (3) Ask for help before it's too late. Since then, I've consistently planned better and never faced similar issues."
Key: Show self-awareness and concrete learnings from failure.
14How do you handle disagreements with team members?
"I believe healthy disagreement leads to better solutions. My approach: (1) Listen to understand their perspective fully, (2) Present my viewpoint with reasoning, (3) Focus on data/facts rather than opinions, (4) If deadlock, propose an experiment or seek third opinion. During [example], we disagreed on [X]. We tried both approaches on small scale — mine worked better for our use case, and the other person appreciated the objective approach."
15What motivates you?
"I'm motivated by solving challenging problems and continuous learning. There's genuine satisfaction when code I write works elegantly or when I understand a complex concept after struggling with it. Long-term, I'm driven by wanting to build things that make a difference — even small features that help users. Recognition matters too, but internal satisfaction of building something well is my primary driver."
Group Discussions (GD) are used by TechMahindra, Deloitte, Cognizant, and some Infosys batches. They assess communication, content, and teamwork — not just opinions.
Define the topic, set structure. High impact if done well.
Add unique points with examples. Reference others.
Address objections calmly. Bridge differences.
Summarize key points from all sides. Balanced view.
| Parameter | Weight | What They Look For |
|---|---|---|
| Content | 25% | Depth of knowledge, relevant examples, facts/statistics |
| Communication | 25% | Clarity, fluency, vocabulary, voice modulation |
| Leadership | 20% | Initiative, direction-setting, bringing others into discussion |
| Teamwork | 15% | Listening, acknowledging others, building on points |
| Body Language | 15% | Eye contact, posture, confidence without arrogance |
Use these to sound structured and professional:
Coding rounds are gateway to higher packages (TCS Digital, Infosys SP). Even if you're applying for service companies, coding skills set you apart. Here's the battle-tested approach.
Read problem twice. Identify inputs, outputs, constraints.
Walk through 2-3 examples including edge cases.
Think of algorithm first. Write pseudocode if needed.
Implement cleanly. Handle edge cases.
Dry run with examples. Check boundary conditions.
The #1 reason candidates fail is starting to code before understanding the problem fully. Spend first 25% of your time on steps 1-3. A clear algorithm means faster implementation and fewer bugs.
Master these patterns and you'll solve 80% of service company coding problems:
| # | Pattern | Use Cases | Example Problem |
|---|---|---|---|
| 1 | Two Pointers | Sorted arrays, pair finding, palindromes | Find pair with given sum in sorted array |
| 2 | Sliding Window | Subarrays, substrings, max/min in window | Maximum sum subarray of size K |
| 3 | Hash Map | Frequency counting, lookup, duplicates | First non-repeating character |
| 4 | Binary Search | Sorted data, search space reduction | Search in rotated sorted array |
| 5 | Recursion | Trees, divide & conquer, backtracking | Generate all subsets |
| 6 | BFS/DFS | Graphs, trees, shortest path, traversal | Level order traversal of tree |
| 7 | Dynamic Programming | Optimization, counting problems | Fibonacci, coin change (basic DP) |
| 8 | Sorting + Greedy | Interval problems, activity selection | Maximum meetings in a room |
| 9 | String Manipulation | Pattern matching, transformations | Reverse words in string |
| 10 | Stack/Queue | Expression evaluation, BFS, undo | Valid parentheses |
# Two Pointer Pattern Example (Python)
def two_sum_sorted(arr, target):
left, right = 0, len(arr) - 1
while left < right:
current_sum = arr[left] + arr[right]
if current_sum == target:
return [left, right]
elif current_sum < target:
left += 1
else:
right -= 1
return [] # No pair found