How to Prepare for Technical Interview
What to study, how to practice, and how to present yourself in technical interviews for engineering placements
What Technical Interviews Test
Technical interviews for software and engineering roles typically test:
Data Structures and Algorithms (DSA): The core of most software company technical interviews. Arrays, Linked Lists, Stacks, Queues, Trees, Graphs, Dynamic Programming, Sorting algorithms.
System Design: For experienced roles and sometimes final-year campus placements at top companies. How to design scalable systems like Twitter, YouTube, or an e-commerce platform.
Core Computer Science: Operating Systems, Computer Networks, Database Management Systems (DBMS), Object-Oriented Programming (OOP).
Domain-specific Knowledge: For non-software roles (Mechanical, Electrical, Civil engineering), core subject knowledge from your degree is tested.
Coding Ability: Writing clean, working code in your preferred language (usually C++, Java, or Python). Most companies use live coding platforms like HackerRank, Coderpad, or Leetcode during interviews.
Data Structures and Algorithms: A Study Plan
DSA is the most important area for software engineering technical interviews. Here is a 3-month preparation plan:
Month 1 — Foundations: Arrays and Strings (1 week): Traversal, two-pointer technique, sliding window, sorting. Linked Lists (3 days): Reversal, cycle detection, merge operations. Stacks and Queues (3 days): Implementation, balanced parentheses, next greater element. Trees and Binary Search Trees (1 week): Traversals, height, balanced BST, LCA. Recursion and Backtracking (1 week): Subsets, permutations, N-Queens.
Month 2 — Intermediate: Graphs (2 weeks): BFS, DFS, Dijkstra, Topological sort, Union-Find. Dynamic Programming (2 weeks): Memoization, tabulation, classic problems (Knapsack, LCS, Coin Change). Heaps and Priority Queues (3 days): Heapify, Heap sort, K-th largest element.
Month 3 — Practice: Solve at least 150-200 problems on Leetcode (focus on Easy and Medium problems). Target: 50 Easy + 100 Medium + 20 Hard. Revise and practice all topics with timed practice. Participate in Leetcode Weekly Contests to simulate real interview pressure.
Core CS Subjects to Revise
Beyond DSA, these core CS subjects frequently appear in technical interviews:
Operating Systems: Process vs Thread, deadlocks, memory management (paging, segmentation), scheduling algorithms (FCFS, SJF, Round Robin). Understand virtual memory and cache concepts.
DBMS: SQL queries (JOIN, GROUP BY, subqueries), normalization (1NF-3NF, BCNF), ACID properties, transaction management, indexing. Practice SQL query writing daily.
Computer Networks: OSI model, TCP/IP, DNS, HTTP/HTTPS, REST APIs, load balancing, CDN. For web-focused roles, understanding how the browser works (request-response cycle) is essential.
OOP Concepts: Abstraction, Encapsulation, Inheritance, Polymorphism. SOLID principles. Design patterns (Singleton, Factory, Observer, Strategy). Be ready to code OOP examples in any interview.
Resources: Geeks for Geeks (comprehensive reference), Hamming (CS fundamentals), Interviewbit (structured preparation).
Behavioral and HR Round Preparation
Most technical interviews also include HR and behavioral rounds:
Standard HR questions to prepare: 'Tell me about yourself' — Prepare a 2-minute professional introduction. 'Why do you want to join this company?' — Research the company's products, culture, and values. 'What are your strengths and weaknesses?' — Be specific and honest. 'Where do you see yourself in 5 years?' — Show ambition with realistic planning. 'Tell me about a challenging project or problem you solved.' — Use STAR format (Situation, Task, Action, Result).
STAR format: For any behavioral question about a past experience, structure your answer as: Situation (context), Task (what you needed to do), Action (specifically what you did), Result (outcome). Practice this with 5-6 examples from your college/project experience.
Research the company: Before any interview, read about the company — products, recent news, tech stack, company culture. Interviewers notice when candidates are genuinely interested.
Resume Tips for Technical Roles
Your resume gets you the interview. Technical resume tips:
Format: One page for freshers. Clean, ATS-friendly format. Use standard fonts (Arial, Calibri, Times New Roman). No photos.
Projects: List 3-4 technical projects with: Tech stack used, your specific contributions, impact/outcome. Each project should be explained in 2-3 bullet points.
Internships: If you have internships, describe them with specific technical contributions. 'Developed a REST API using Spring Boot that handled 10,000 requests/day' is better than 'worked on backend development'.
Skills section: List programming languages, frameworks, tools. Be honest — only list skills you can be interviewed on.
GitHub link: Maintain an active GitHub profile with well-documented projects. Many interviewers check GitHub before interviews.
Keywords: Use technical terms that match the job description. Applicant Tracking Systems (ATS) filter resumes by keywords before humans see them.
On-the-Spot Coding Interview Tips
These tips make a difference during the actual coding interview:
Think aloud: Interviewers want to understand your thought process, not just your solution. Explain what you are thinking before writing code.
Clarify requirements: Before coding, ask 2-3 clarifying questions. What are the input constraints? Should we handle null inputs? What is the expected time complexity?
Start with brute force: Give the simplest working solution first, then optimise. Saying 'the brute force is O(n²) and we can do O(n log n) with this approach' shows better thinking than jumping to complex code.
Test your code: After writing code, trace through a simple example by hand to verify correctness. Then think about edge cases: empty input, single element, negative numbers.
If stuck: Ask for a hint. It is better to ask for a hint and progress than to sit silently for 10 minutes. Interviewers respect candidates who ask smart questions.
Time and space complexity: Always state the time and space complexity of your solution at the end, even if the interviewer doesn't ask.
Frequently Asked Questions
How many Leetcode problems should I solve for campus placements?
For top product companies (Google, Amazon, Microsoft): 300-500 problems with emphasis on Medium/Hard. For good tier-1 companies: 150-200 problems, mostly Easy and Medium. For service companies (TCS, Infosys, Wipro): Strong data structures basics + aptitude are more important than Leetcode count.
What programming language should I use in technical interviews?
Most interviewers accept any mainstream language. Python is preferred for quick implementation (simpler syntax). C++ is fast and used by competitive programmers. Java is widely accepted. Python or C++ are the most common choices. Choose the language you are most comfortable with — familiarity matters more than the language itself.
How long does it take to prepare for technical interviews?
For campus placements: Start DSA preparation in your 3rd year (1.5-2 years before placement season). 3-6 months of focused preparation can make you competitive for most companies. For product companies (FAANG/MAANG level), 6-12 months of consistent practice is recommended.
What are the most common technical interview topics?
Top 5 most common topics: (1) Arrays and Strings — sorting, searching, two pointers, (2) Trees and Graphs — traversal, shortest path, (3) Dynamic Programming — classic problems, (4) Linked Lists — reversal, cycle detection, (5) SQL queries for database roles. For non-software engineering, core subject knowledge relevant to the role is primary.
Should I practice mock interviews?
Yes — mock interviews are extremely valuable. Practice with peers or use platforms like Pramp (free peer-to-peer mock interviews) or Interviewing.io (mock interviews with real engineers). Speaking your thought process aloud under time pressure is a skill that only develops with practice.
Related resources
Build Strong CS and Programming Foundations
Technical interview success starts with strong programming and CS fundamentals. Expert tutors help you build the base.
Find a CS TutorInformational purposes only. The content on this page is provided as general information and may not be fully accurate, complete or up to date. It does not constitute professional, legal, medical, financial or career advice. Learnizo is not responsible for decisions made based on this content. Always verify information with the relevant official authority, government body, or official documentation before acting on it.