Roadmaps fail for a predictable reason: they describe everything you could learn, in an order, without telling you when to stop.
This one is organised around evidence. At the end of each stage you should be able to show something — a working program, a repository, a deployed project — rather than merely having watched a course.
Stage 1 — One language, properly
Pick one language and stay with it for at least a semester. Python and JavaScript are both reasonable first choices; so is C++ if your college curriculum already uses it. The specific language matters less than going deep enough to hit its awkward parts.
What “properly” means:
- Variables, conditionals, loops, functions and scope without looking things up.
- Arrays, strings, maps and sets, and when each is the wrong choice.
- Reading a stack trace and finding the line that caused it.
- Writing a small program from an empty file, not from a tutorial’s starter code.
Stop when you can solve a simple problem, alone, without a video playing beside you.
Stage 2 — Problem solving, in small doses
Data structures and algorithms have a reputation for being an interview ritual. They are also the fastest way to learn to think precisely.
A sustainable routine: three problems a week, one of them harder than you are comfortable with. Spend twenty minutes stuck before reading a solution, and write down the idea you missed.
Focus first on arrays, strings, hashing, two pointers, stacks, queues, and basic recursion. Add trees, graphs and dynamic programming later. Depth on the first group beats a shallow tour of everything.
# The point is not this function. It is being able to explain
# why the dictionary makes the difference.
def first_repeat(words):
seen = set()
for word in words:
if word in seen:
return word
seen.add(word)
return None
Stage 3 — Git and GitHub as a habit
Learn four commands properly: status, add, commit, push. Then learn branches and pull requests. Commit in small, named units so the history explains the work.
A repository that helps you:
- Has a README that says what it does and how to run it.
- Has more than one commit, with messages that mean something.
- Contains no API keys, passwords or
.envfiles. - Can be cloned and started by someone else in five minutes.
This is also your public evidence. Assume a reviewer will open it.
Stage 4 — One specialisation, not five
Choose a direction for a semester and build inside it.
| Direction | A reasonable first project |
|---|---|
| Web frontend | A responsive dashboard with real data and proper empty states |
| Web backend | An API with authentication, validation and tests |
| Mobile | A small utility app with local storage and one network call |
| Data / ML | An analysis notebook with a clear question and honest limitations |
| Systems / DevOps | A containerised service with a deployment script and logs |
The project should be small enough to finish. “Finish” is the skill nobody teaches and every interviewer checks.
Stage 5 — Two projects you can defend
By the end of third year, aim for two projects where you can answer:
- What problem does this solve?
- What is the data model, and why?
- What was the hardest bug, and how did you find it?
- What would you change if you had another week?
- How would you know it is working?
Deploy at least one of them. A live URL changes the conversation from “I built this” to “here it is”.
Stage 6 — Interview preparation, timed
Six to eight weeks before hiring season:
- Solve problems on paper or a shared editor, out loud, with a timer.
- Revise your own resume bullets until each answer takes ninety seconds.
- Prepare two project walkthroughs: a two-minute version and a ten-minute version.
- Practise one mock interview with a friend who will interrupt you.
- Prepare three questions to ask the interviewer. Yes, this is assessed.
What to ignore for now
- Learning four frameworks because a job listing mentioned them.
- Certificates you cannot connect to a project.
- “Full stack” courses that never deploy anything.
- Comparing your progress to a stranger’s LinkedIn feed.
The short version
One language, three problems a week, Git from day one, one specialisation, two finished projects, and a timed interview season. That sequence is unglamorous and it works.