December Code

Placement preparation: a method, not a reading list

For final-year students and fresh graduates preparing for software placements — especially the ones who don't yet know how ready they are.

Most placement preparation fails in the same way. A student opens a 300-question PDF, starts at question one, and three weeks later has spent most of that time on topics they already knew, while the two topics that will actually cost them the round have not been touched. The problem is not effort. It is that nobody measured first.

This page is the method December Code is built around, written out so you can run it with or without the product: assess, diagnose, practise, improve, retake. Each step exists because the one before it produced something to act on. The whole loop takes about fifteen minutes to start and a few weeks to pay off.

By Harshit · updated 22 September 2026

What the rounds test — and why that changes the plan

A software placement process at most campuses opens with a screening round that is broad rather than deep: multiple-choice or short-answer questions across aptitude and the core computer-science subjects, timed, and cut at a threshold. The technical interviews that follow are the opposite — a few topics taken deep, usually with code or a query written live. Preparation has to serve both shapes: breadth to clear the screen, and depth in the topics interviewers return to.

That is why the method below works per subject and per topic rather than per book. The five subjects December Code measures, and the topics its diagnostics keep coming back to:

  • DSA — arrays and two pointers, strings, hashing, linked lists, stacks and queues, binary search, sorting, recursion and backtracking, binary trees, graphs, bit manipulation, and the time-complexity reasoning that ties them together.
  • SQL — joins, GROUP BY and HAVING, aggregate functions, subqueries, window functions, NULL handling, set operations, constraints, views, and string and date functions.
  • Aptitude — percentages, ratio and proportion, averages, time-speed-distance, time and work, profit and loss, simple interest, probability, number systems, number series and coding-decoding.
  • OOP — classes and objects, inheritance, polymorphism, overloading versus overriding, encapsulation, interfaces versus abstract classes, constructors, static versus instance, access modifiers, this and super, and the SOLID principles.
  • DBMS — keys, the ER model, functional dependencies and normalization, transactions and ACID, indexing, concurrency control, relational algebra, SQL versus NoSQL and the CAP theorem.

1. Assess — find out where you stand before you study anything

The first hour of preparation should be a measurement, not a lesson. Sit a short diagnostic in one subject: ten questions, one per topic, easy to hard, no notes. The point is not the score. The point is that after ten questions you know which three topics you got wrong and why, and that is worth more than a day of unfocused reading.

December Code's diagnostic does this per subject — DSA, SQL, aptitude, OOP, DBMS — and prefers topics you have not been tested on yet, so a second sitting in the same subject rotates to new ground rather than re-asking what it already knows. If you would rather start without an account, three real questions per subject are free on the site, graded on the page, nothing recorded.

  • One subject at a time. A five-subject sitting tells you less than five short ones taken over a week.
  • No notes, no pausing to look things up. The measurement is only useful if it is honest.
  • Write down the topics you missed before reading any explanation. That list is your plan.
SQL · Joins · easyas the diagnostic asks it

Table Departments(dept_id, dept_name). Table Employees(emp_id, name, dept_id). Which query returns all departments, including those that currently have no employees?

  1. 1SELECT * FROM Departments RIGHT JOIN Employees ON Departments.dept_id = Employees.dept_id;
  2. 2SELECT * FROM Departments LEFT JOIN Employees ON Departments.dept_id = Employees.dept_id;correct
  3. 3SELECT * FROM Departments INNER JOIN Employees ON Departments.dept_id = Employees.dept_id;
  4. 4SELECT * FROM Departments, Employees WHERE Departments.dept_id = Employees.dept_id;

A LEFT JOIN keeps every row from the left (first-listed) table even when there's no matching row on the right, filling the right-hand columns with NULL. Here Departments is listed first, so every department survives, including those with no employees. INNER JOIN and the equivalent comma-style join with a WHERE condition both drop departments without any employees, since a match is required on both sides. The RIGHT JOIN query keeps every row of the right-hand table, Employees, and only the departments that match one, so it too drops any department that has no employees -- the exact opposite of what's needed.

More on this topic: SQL JOIN interview questions

2. Diagnose — turn the score into a ranked list of what to fix

A score out of 100 is a summary; the diagnosis is the detail underneath it. Every topic you were tested on is marked weak, developing or stable, and the weak ones are ranked — lowest score first, with more evidence breaking ties, because a 40% from five attempts is a firmer problem than a 40% from one. The top of that list is your primary gap, and the two or three below it are the root causes that usually travel with it.

Read the ranking, not the number. A readiness figure of 56 with one glaring gap is a better position than a 70 spread thin across everything: the first has a plan, the second has a list. Interviewers rarely ask the whole subject; they ask three topics deeply, and a weak topic is where a round is lost.

  • Weak means below 50 on the topic, stable means 80 or above; everything between is developing.
  • Topics scored from a single question are drawn faded until you have attempted three — one question is a hint, not a verdict.
  • The primary gap is the first thing to practise today, not the hardest topic in the subject.

3. Practise — with purpose, on the topics the diagnosis named

Practice is where preparation time actually goes, so it is where the method matters most. The rule is simple: today's problems come from today's diagnosis. Fifteen problems on the primary gap and its root causes, each with an explanation of why every wrong option is wrong, beats a hundred problems chosen by the order of a book.

Two habits make the practice stick. First, explain the answer before you check it — out loud, in one sentence, the way you would to an interviewer. Second, when you get one wrong, do not move on until you can say what the trap was; the topic pages on this site exist for exactly that moment, one per topic, with the questions interviewers ask and the answer worked through.

  • Free: fifteen problems a day, every subject, every explanation. Paid removes the cap and sequences the day for you.
  • Aptitude is a speed skill: practise it timed, in sets, and stop when the method is automatic rather than when the set is finished.
  • DSA and SQL are writing skills: write the code or the query by hand before you look at anything.
DSA · Arrays & Two Pointers · easyas the diagnostic asks it

Which of the following operations on an unsorted array of n integers takes O(n) time in the worst case?

  1. 1Finding the maximum elementcorrect
  2. 2Appending an element at the end when spare capacity already exists
  3. 3Reading the element at index k
  4. 4Reading the array's length

In an unsorted array the maximum could be anywhere, so every element must be examined: O(n). Indexed reads are O(1) because the address is computed from the base and the index; appending into existing spare capacity just writes one slot, O(1); and the length is stored, so reading it is O(1). Only a sorted array would let the maximum be read directly.

More on this topic: Array and two-pointer interview questions

4. Improve — watch the topic, not the score

Improvement shows up per topic first and in the overall number last. A topic moves from weak to developing after a few correct answers with evidence behind them; the readiness figure only moves when you sit the diagnostic again. So the thing to watch during a week of practice is the readiness map — one cell per topic across every subject — and whether the cells you are working on are changing colour.

If a topic will not move, the problem is usually upstream: a DBMS normalization gap is often a functional-dependency gap, a SQL GROUP BY gap is often an aggregate-with-NULL gap. The related-topics links on each page point at the usual suspects.

5. Retake — measure the same thing again, honestly

A retake is not a rematch. The diagnostic prefers questions and topics you have not seen, so a second sitting measures learning rather than memory, and it tells you two things: whether the primary gap has closed, and what the next one is. The trend across sittings — not any single figure — is the honest picture of readiness.

On the free tier a diagnostic is a monthly checkpoint; the daily engine is practice. Paid adds unlimited retakes, a personalised roadmap that ranks every subject by weakness and serves its weak topics as a sized set, and timed mock tests shaped like a first-round screening. Either way the loop is the same, and it is the loop, not the tier, that does the work.

Aptitude · Percentages · easyas the diagnostic asks it

In a class of 80 students, 65% passed the mathematics exam. How many students passed?

  1. 155
  2. 252correct
  3. 360
  4. 448

65% of 80 = (65/100) x 80 = 52. So 52 students passed the exam.

More on this topic: Percentage aptitude questions

Where preparation usually goes wrong

The method is short because the failure modes are few and familiar. Each of these is a way of spending time without changing the topic list:

  • Starting with the hardest subject. Effort goes to DSA because it is frightening, while the aptitude screen that comes first in most processes gets the last two evenings. Measure all five, then spend the time where the weak topics are.
  • Reading the solution first. A worked answer read before an attempt feels like learning and measures nothing. Attempt, commit to an option, then read why the others are wrong.
  • Counting hours instead of topics. 'Four hours of DSA' is not progress; 'linked lists moved from weak to developing' is. Keep the topic list in front of you and cross things off it, not a timesheet.
  • Retaking the same evening to watch the number rise. A retake an hour later measures memory, which is why the diagnostic rotates to topics it has not tested. Practise for a week or two, then measure.
  • Preparing everything at once. Five subjects in parallel means no topic gets the three or more attempts it takes for its evidence to count as firm. Block one or two subjects a week, as the eight-week plan does.

Putting it on a calendar

The method above is a loop; a plan is the loop laid across the weeks you have. If you have roughly eight weeks before drives begin, the week-by-week plan for final-year students turns this into a schedule — which subjects to block when, how many problems a day, and when to retake. If you have eight days, the answer is shorter: one diagnostic in the subject the company tests hardest, and every practice set on its primary gap.

However many weeks there are, the split is the same: the first sitting of each subject happens in the first week, the weak topics from those sittings own the practice hours, and a retake sits at roughly the two-thirds mark so the plan can change while there is still time to act on it. Everything else — which subject first, how many problems a day, whether to pay for the roadmap or run it by hand — is a detail of how much time there is.

What this does and does not cover

  • December Code covers the five subjects software placement rounds test — DSA, SQL, aptitude, OOP, DBMS. It does not cover verbal ability or English sections, live-coding IDE rounds, HR and behavioural interviews, or company-specific test formats.
  • It measures and plans. It does not recruit, place, or guarantee employment, interviews or offers, and no company sees your scores.
  • A readiness figure is a measurement of ten questions in one sitting, not a prediction. Use the trend across sittings, and the topic list, not any single number.

Measure it

Start with a measurement, not a chapter.

10 questions in one subject, about fifteen minutes, a readiness figure with the arithmetic shown and the topics you missed named. Free: 1 diagnostic a month and 15 problems a day. No card.