Home› Interview› Complete Guide
Complete Guide

Complete Interview Tutorial

Cracking a technical interview requires more than just knowing algorithms. This guide covers all 77 interview prep topics on TheCodeForge — coding patterns, system design, HR questions and aptitude.

Learning Roadmap
Beginner → Strengthen problem-solving fundamentals and time complexity
Intermediate → Practise common patterns — two pointers, BFS/DFS, dynamic programming
Advanced → Tackle system design rounds, behavioural questions and mock interviews
77
Topics
19
Beginner
39
Intermediate
19
Advanced
Jump to section
Coding Patterns (18)Java Interview (6)Python Interview (4)JavaScript Interview (5)System Design Interview (7)Database Interview (4)HR & Behavioural (8)Resume & Job Search (6)Aptitude (14)DevOps Interview (5)

Technical interviews test three things that have almost nothing to do with each other: whether you can find an algorithm under time pressure, whether you can reason about a system you have never built, and whether people want to work with you. Candidates who prepare fail most often because they spend all their time on the first and are surprised by the other two.

The good news is that all three are learnable, and the highest-return preparation is not more problems. It is learning to recognise which pattern a problem belongs to, learning a repeatable structure for design rounds, and having your own stories prepared well enough that you are not composing them live.

Coding rounds are pattern recognition, not invention

Nobody derives the sliding-window technique during a 45-minute interview. What strong candidates do is recognise, within a minute or two, that a problem is a sliding-window problem — and then spend the remaining time on correctness and edge cases rather than on the idea.

That recognition comes from a surprisingly short list. Most interview problems are one of about ten patterns, and the input's shape usually announces which:

Signal in the problemPatternTypical complexity
Sorted array, find a pair or a targetTwo pointers / binary searchO(n) or O(log n)
Contiguous subarray or substring, best or longestSliding windowO(n)
Top k, or a running medianHeapO(n log k)
Next greater or smaller elementMonotonic stackO(n)
Shortest path in an unweighted graph or gridBFSO(V + E)
All paths, connected components, cycle detectionDFS / union-findO(V + E)
Count the ways, or optimise over choices with overlapDynamic programmingO(n · states)
Prefix, autocomplete, word lookupTrieO(length)
Intervals, merging or overlapSort by start, then sweepO(n log n)
Subsets, permutations, combinationsBacktrackingexponential — say so

A hundred problems worked through slowly, with the pattern named out loud each time, beats four hundred solved and forgotten. If you cannot state why a problem belongs to its pattern, you have memorised a solution rather than learned one.

System design: a structure that works under pressure

System design rounds are open-ended by design, and the most common failure is not a wrong answer but an unstructured one — jumping straight to a database choice before establishing what the system must do. Interviewers are assessing how you approach ambiguity, so the structure itself is part of the signal.

A sequence that fits 45 minutes: clarify functional requirements and explicitly agree what is out of scope (5 min); establish scale — users, requests per second, read-to-write ratio, data volume, and the latency and availability targets (5 min); sketch the high-level design end to end (10 min); go deep on the one or two components the interviewer steers you toward (15 min); then identify bottlenecks, failure modes and trade-offs you are accepting (10 min).

That last section is where senior candidates separate themselves. Saying 'this is eventually consistent, so a user may not see their own write immediately — here is how I would fix that for their own profile specifically' demonstrates more than any amount of component naming.

In practiceEstimate out loud and round aggressively. A million daily active users at ten requests each is roughly 10⁷ requests a day, which is a bit over 100 per second average and maybe 500 at peak. Nobody is checking your arithmetic; they are checking whether you know that 500 requests per second and 500,000 are different architectures.

Behavioural rounds are evidence, not personality

The behavioural round is frequently treated as a formality and is frequently where offers are lost. It is evaluated on evidence: a specific situation, what you did, and what resulted — which is what the STAR structure is for. Answers that stay in the abstract ('I always make sure to communicate clearly') provide no evidence at all.

Prepare six to eight real stories and know them well enough to retell in two minutes: a conflict with a colleague, a failure and what changed afterwards, a project you led, a time you disagreed with a decision, a time you had to deliver under a hard constraint, and something you taught someone. Most behavioural questions are one of those six in disguise.

Bring numbers where you honestly have them, and say so plainly when you do not. 'Cut p99 latency from 1.2s to 300ms' is stronger than 'improved performance'; inventing a number you cannot defend under follow-up is worse than either.

A preparation plan that fits around a job

WeeksFocusConcretely
1–2Patterns, not volumeArrays, strings, hash maps, two pointers. Name the pattern before writing code, every time
3–4Trees, graphs, recursionBFS and DFS until they are automatic; they underpin a large share of medium problems
5–6Dynamic programming and system design basicsDP slowly — it is the pattern that most rewards depth. Start reading one design case per week
7–8Mock interviews and behavioural storiesOut loud, timed, with someone else. Write your six stories down and rehearse them
OngoingSpaced repetitionRe-solve problems you got wrong after a week and again after a month. This is what makes recall survive interview nerves

Two habits are worth more than extra hours: solve out loud, because thinking silently is a skill that does not transfer to an interview; and always state the complexity of your solution unprompted, because being asked for it repeatedly reads as though you had not considered it.

Frequently Asked Questions

How many problems do I need to solve?
Fewer than the number people quote, done differently. Around 150 problems genuinely understood — pattern named, alternative approaches considered, re-solved after a gap — beats 500 solved once and forgotten. If you cannot re-solve last month's problems today, more volume is not the constraint.
What if I cannot solve the problem in the interview?
Partial credit is real, and interviewers are grading the process. State the brute-force solution and its complexity, explain what you would need to improve, and think out loud. A candidate who gets to a working O(n²) and clearly articulates why an O(n) exists usually scores better than one who stalls in silence chasing the optimum.
How much system design do I need for a mid-level role?
Enough to design a URL shortener, a rate limiter, a news feed or a chat service end to end and discuss the trade-offs. The depth expected rises sharply at senior level, where you are also assessed on failure modes, operational concerns and what you would monitor. At mid-level, a clear structure and honest reasoning matter more than exotic components.
Should I mention that I do not know something?
Yes, and immediately, followed by how you would find out. Interviewers discover bluffing within two follow-up questions and it costs far more than the gap itself. 'I have not used Kafka in production, but I understand it as a partitioned append-only log — is that the right model here?' is a strong answer, not a weak one.
Are take-home assignments better than live coding?
They test different things and suit different people. Take-homes reward code quality, tests and documentation, and punish anyone short on time. Live coding rewards fast recall and thinking aloud. If you are given the choice, pick the one that matches your strength and say why — that is itself a reasonable signal to give.
How do I prepare if I have two weeks, not two months?
Compress ruthlessly. Spend the first week on the six highest-frequency patterns — hash maps, two pointers, sliding window, BFS/DFS, heaps, binary search — and the second on two mock interviews and your behavioural stories. Skip dynamic programming beyond the basics; it is the lowest return per hour under a short deadline.

Coding Patterns

Java Interview

Python Interview

JavaScript Interview

System Design Interview

Database Interview

HR & Behavioural

Aptitude

DevOps Interview

Interview questions by technology
→Java Interview Questions→Python Interview Questions→JavaScript Interview Questions→DSA Interview Problems→System Design Interview→SQL & Database Interview→DevOps Interview Questions
Also Explore
DSA 197 tutorials → System Design 145 tutorials → Python 173 tutorials → Java 257 tutorials → Security 16 tutorials → Frontend 13 tutorials →
Start from the beginning

Every tutorial starts with a plain-English analogy — then real code, then interview questions.

Browse Interview Tutorials →