Skip to content

Topics and targets

~6 min

In short

The two skills that matter most are DSA and system design. Practise both as much as you can. This page is a map, not a timetable. It shows which topics lead to which, and for each topic a target: something you should be able to do. Go as fast or as slowly as your life allows. Skip a box if you already have it. The order matters more than the speed.

The map

flowchart TD
  A["Programming basics<br/>Python or Java"] --> B["Terminal and git"]
  A --> C["Data structures<br/>and algorithms"]
  A --> E["CS fundamentals<br/>OS, databases, networks, OOP"]
  A --> F["Projects"]
  B --> F
  C --> D["Problem-solving practice<br/>1,000+ problems"]
  D --> G["Interview ready"]
  E --> G
  E --> K["System design<br/>practice"]
  F --> K
  K --> G
  A --> L["Testing"]
  L --> F
  G --> H["Apply, referrals,<br/>mock interviews"]
  H --> I["First job"]
  I --> J["System design<br/>and depth"]

Most people work on several boxes at once. A common mistake is to stay in one box, usually problem-solving practice, and never build a project or learn the core subjects.

Where you enter the map

flowchart LR
  S1["CS or IT student"] --> A["Programming basics"]
  S2["Other branch"] --> A
  S3["Working, switching"] --> A
  S4["After a gap"] --> A
  S1 -. "already know basics" .-> C["Data structures"]
  S3 -. "already code at work" .-> C
  S3 -. "already code at work" .-> F["Projects"]

Your row on the start page tells you which page to read first. The path pages say what to watch for at your starting point.

Targets by topic

The practice counts are my guidance, and I set them high on purpose. The bar is the hardest-selecting companies (Media.net, Coinbase and similar): I advise 1,000 or more problems with review, at least 250 of them hard. No company publishes a required number.

Topic A target you can check Where on this site
Programming basics Write a program of about 50 lines without help: it reads input, uses loops, functions and a dictionary, and you can explain every line Python course
Terminal and git Make a repository, commit, branch, push to GitHub and fix a merge conflict Tools
Data structures and algorithms Solve a medium problem on arrays, strings or hashing in under 45 minutes and explain the time cost DSA topic order
System design Walk through the design of a URL shortener or a rate limiter in 45 minutes: requirements, estimates, API, data model, bottlenecks and failures Practising system design, HLD, LLD
Hard-company bar Solve a hard problem you have not seen in 60 minutes with no hint, write a thread-safe producer-consumer queue with tests, and build a small machine-coding system (queue, rate limiter or booking) in 90 minutes Practising for the hardest companies
Testing Write unit tests for your own solution, including edge cases, and stress-test it against a brute-force version Testing basics
Problem-solving practice Aim for 1,000 or more problems over time, across the question styles of many companies, with a log of the mistake behind each one you failed Practice method, trackers
CS fundamentals Answer the checklist questions for OS, databases and SQL, networks and OOP aloud, without notes CS fundamentals
Projects One project with a database that runs, has a readme, and that you can defend line by line Projects and resume
Interview ready A mock round with a friend where you think aloud and finish a medium problem Mock interviews
Apply A log of applications with dates, and at least some of them through a referral Applying
After the first job Read a design discussion and explain the trade-offs After the first job

Targets for contests

Contests are not required for an interview, but they are the fastest way to practise unfamiliar problems under time pressure, so I recommend them alongside DSA practice. If you want a number to track, these are my guidance, not requirements. For a first job, steady medium-level problem solving matters more than any rating. As a stretch, Codeforces Specialist to Expert or a LeetCode rating around 1800 is a sign of strong problem solving. See contests and ratings for the official rating bands and why no rating maps to an offer.

Use AI tools to learn, not to skip the work

Many AI tools offer free or discounted plans to college students. Search for the ones your college or the vendor offers and try them. Use them to explain a solution you have already attempted, to review your code, and to produce practice questions. Do not use them to produce the first attempt: the struggle is where the skill comes from. The student tools page lists current offers with their sources.

Try this

Print the first map or copy it into your notes. Colour the boxes you can already do. Pick one uncoloured box that has all of its arrows coming in coloured, and open the page in the last column of its row.

Sources