BrainRank
Software Engineer roadmap

Software Engineer roadmap: your 90-day plan

A 90-day plan for the two things hiring tests: problem-solving with data structures, and the ability to build and explain a real project.

Assumes 10-12 hours a week

How each step works

  1. Learn
  2. Check yourself
  3. Find weak areas
  4. Practise
  5. Check again

Steps marked BrainRank assessment link to a test or tool on BrainRank. Steps marked Self-check are exercises you do yourself. If a check shows a gap, practise and check again before moving on.

Days 1-30

Get fluent in one language and the basics of problem-solving

  1. Step 1One programming language

    Language fundamentals

    Goal: Write small programs comfortably in Java, Python, JavaScript or C++.

    Practise

    • Cover variables, control flow, functions, collections and error handling
    • Write ten small programs, such as a word counter or a to-do list in the terminal
    • Read and fix one bug in someone else's code

    Check yourself

    Self-check
    Blank-file check

    Write a program that reads a file and counts word frequencies from a blank file, without searching for syntax.

    Interview prep: Know your language's core collections and their time complexity.

  2. Step 2Problem-solving

    Arrays, strings and hash maps

    Goal: Solve easy problems and explain their time complexity.

    Practise

    • Solve two easy problems a day on arrays and strings
    • Use a hash map to replace a nested loop
    • Write the time and space complexity for each solution

    Check yourself

    Self-check
    Timed set

    Solve three unseen easy problems in 45 minutes. Note which patterns you didn't recognise and practise them.

    Interview prep: Practise thinking aloud: clarify, propose, code, test.

  3. Step 3Git

    Version control

    Goal: Use branches, commits and pull requests as a team would.

    Practise

    • Create a repository and commit your practice programs
    • Use a feature branch and a pull request for each change
    • Resolve a merge conflict on purpose

    Check yourself

    Self-check
    Git check

    Explain the difference between merge and rebase, then demonstrate a branch-and-pull-request workflow from memory.

    Interview prep: Be ready to describe how your team reviewed and merged code.

Days 31-60

Learn core data structures and build an application

  1. Step 4Data structures

    Linked lists, trees and recursion

    Goal: Implement and use linked lists, binary trees and recursive solutions.

    Practise

    • Implement a linked list and a binary search tree from scratch
    • Solve tree traversal problems recursively
    • Learn sorting and binary search

    Check yourself

    Self-check
    Implement from memory

    Implement tree traversals and binary search without notes. Revisit any you can't finish.

    Interview prep: Explain recursion with a tree example and its base case.

  2. Step 5Full-stack basics

    Build a web application

    Goal: Build a working CRUD app with a database and an API.

    Practise

    • Design the data model for a small app, such as an expense tracker
    • Build REST endpoints for create, read, update and delete
    • Add a simple front end and deploy it

    Check yourself

    Self-check
    Demo check

    Demo the app to someone. Anything that breaks or confuses them goes on your fix list.

    Interview prep: Prepare to explain your data model and API design choices.

  3. Step 6Aptitude and logical reasoning

    The aptitude round

    Goal: Clear the online test that many campus and fresher hiring processes start with.

    Practise

    • Take the aptitude assessment to find your weakest section
    • Practise that section in the question bank
    • Retake the assessment after two weeks

    Check yourself

    BrainRank assessment
    BrainRank aptitude assessment

    20 questions in 20 minutes across logic, numbers, language and patterns. Note your weakest section.

    Start

    Interview prep: Service-company drives often filter on this round before any coding.

Days 61-90

Polish your project and practise for interviews

  1. Step 7Testing

    Testing and code quality

    Goal: Add tests and clean up your project's code.

    Practise

    • Write unit tests for your app's core logic
    • Refactor long functions and improve names
    • Write a README with setup steps and screenshots

    Check yourself

    Self-check
    Fresh-clone check

    Clone your repository on a new machine and follow your own README. Fix every step that fails.

    Interview prep: Be ready to explain how you tested your project.

  2. Step 8Problem-solving

    Medium-level problems

    Goal: Solve common medium-level problems under time pressure.

    Practise

    • Practise patterns: two pointers, sliding window, BFS/DFS
    • Do one timed medium problem a day
    • Review solutions you couldn't finish and redo them two days later

    Check yourself

    Self-check
    Mock interview

    Do a 45-minute mock with a friend: one medium problem, thinking aloud. Note where you got stuck.

    Interview prep: Practise explaining trade-offs between two solutions.

  3. Step 9Interview practice

    Interview readiness

    Goal: Present your projects clearly with a resume that passes screening.

    Practise

    • Score your resume and apply the suggestions
    • Prepare a two-minute walkthrough of your best project
    • Read the interview guides for your target companies

    Check yourself

    BrainRank assessment
    BrainRank resume score

    Check ATS readiness and keywords, update your resume, then re-score it.

    Start

    Interview prep: Review the software engineer interview topics on the career guide.

Ready to apply for software engineer roles?

Check your resume against applicant tracking systems before you send it.

Keep going

Looking for another role? See all career guides