All roadmaps

Roadmap to a job

Foundational / New-Grad Software Engineer

A 2026 path from absolute beginner to a hireable new-grad/junior software engineer, organized around what hiring teams actually screen for

7 stages · 26 skills · 52 free resources

Core stack

PythonGitGitHubLinuxC

Track your progress

0 / 31 done

  1. Stage 01

    Stage 1, Program fluently in one language

    Write, run, and debug real programs in a single language until syntax is no longer what slows you down. Choose Python (great for fundamentals, scripting, data/AI) or JavaScript (great if you're aiming at web/full-stack). Resist learning two at once.

    Core programming (variables, control flow, functions, error handling)Essential

    Core programming covers the fundamental constructs present in virtually every language: storing values in variables, directing execution with conditionals and loops, encapsulating logic in functions, and handling failures gracefully with error or exception mechanisms. These primitives are the building blocks from which all larger programs are assembled.

    Why it matters · Every later skill assumes real fluency in one language; teams expect deep proficiency in at least one before anything else.

    Reading official documentationEssential

    Official documentation is the authoritative reference for a language, library, or framework, covering its API, behavior, and intended usage directly from its maintainers. Reading it develops the skill of navigating reference material, understanding specifications precisely, and resolving questions at the source rather than relying on secondary summaries.

    Why it matters · Day-to-day, engineers learn from primary docs rather than only tutorials; getting comfortable in reference material early pays off constantly.

    Debugging (read errors, use a debugger, isolate failures)Essential

    Debugging is the process of identifying and correcting faults in software by reading error messages, using a debugger to pause execution and inspect state, and isolating which part of the system produces the unexpected behavior. It relies on tools such as breakpoints, watch expressions, stack traces, and systematic hypothesis testing.

    Why it matters · With AI generating a large share of first-draft code, the candidates who stand out in 2026 are the ones who can trace a failure and fix it, not just produce more code.

  2. Stage 02

    Stage 2, The professional toolchain (terminal, Git, environments)

    Pick up the day-one workflow of a real team: work comfortably in the terminal, version everything with Git/GitHub, and keep project dependencies isolated and reproducible. These are among the most common must-haves in entry-level postings.

    Command line / terminal (Unix basics)Essential

    The command line is a text-based interface for interacting with an operating system, and Unix-style terminals (as found on Linux and macOS) are the standard environment for software development workflows. Core operations include navigating the file system, running programs, piping output between commands, and managing file permissions.

    Why it matters · Almost every junior posting expects basic terminal/Linux comfort; it's how you run, build, and ship code.

    Git & GitHub (clone, branch, commit, pull request, merge, rebase)Essential

    Git is a distributed version-control system that tracks changes to source code, supports parallel development through branching, and merges contributions from multiple authors. GitHub is a hosting platform built on Git that adds pull requests, code review, and collaboration workflows as the standard mechanism for proposing and integrating changes.

    Why it matters · Version control is a near-universal hard requirement for entry-level roles, and teams read your commits and pull requests as a signal of how you work.

    Dependency & environment management (venv/pip or npm)Essential

    Dependency management tools (pip with venv for Python, npm for JavaScript) install third-party libraries and isolate them in project-specific environments so different projects can use different package versions without conflict. They also record exact dependency versions in lock files, enabling other developers to reproduce the same environment.

    Why it matters · You can't run real projects without installing packages into isolated, reproducible environments, it's a baseline habit reviewers assume you already have.

  3. Stage 03

    Stage 3, CS fundamentals: data structures, algorithms & complexity

    Build the mental models interviews probe and that separate slow code from fast: the core data structures, the recurring algorithmic patterns, and Big-O reasoning. Practice on real problems while you learn, not after.

    Big-O / time & space complexityEssential

    Big-O notation describes how the runtime or memory usage of an algorithm scales as its input size grows, abstracting away hardware constants to express the dominant factor. It provides a common vocabulary for comparing algorithms and reasoning about whether a solution will perform acceptably at scale.

    Why it matters · It's the shared vocabulary for reasoning about performance and one of the most common conceptual filters in technical screens.

    Core data structures (arrays, strings, hash maps, stacks, queues, linked lists, trees, graphs, heaps)Essential

    Data structures are organized ways of storing and relating data in memory, each with characteristic access, insertion, and deletion costs. Arrays and strings offer indexed access, hash maps provide near-constant-time lookup by key, stacks and queues enforce LIFO and FIFO ordering, linked lists support efficient insertion, and trees, graphs, and heaps model hierarchical and networked relationships.

    Why it matters · Reaching for the right structure is the highest-leverage move in both coding interviews and real performance work.

    Core algorithms (sorting, searching, recursion, BFS/DFS, two pointers, sliding window)Essential

    Core algorithms are reusable strategies for solving common computational tasks: sorting arranges data, binary search locates elements efficiently, recursion breaks problems into smaller self-similar sub-problems, BFS and DFS traverse graphs and trees, and two-pointer and sliding-window techniques efficiently process sequential data with linear complexity.

    Why it matters · These patterns show up again and again in interviews and everyday problem-solving; spotting which pattern applies is most of the battle.

    Problem-solving practice (aim for ~100-150 solved)Essential

    Problem-solving practice involves repeatedly solving algorithmic challenges on platforms such as LeetCode or HackerRank to build pattern recognition and implementation speed. Accumulating a meaningful volume of solved problems (roughly 100 to 150) ingrains common solution templates and reduces the cognitive load of recognizing which technique applies to a new problem.

    Why it matters · Fluency only comes from repetition; a real solved-problem count is what reliably converts into interview offers.

    Dynamic programmingRecommended

    Dynamic programming is an algorithm design technique that solves problems by breaking them into overlapping sub-problems, computing each sub-problem once, and storing the results to avoid redundant work. It applies to optimization and counting problems where a brute-force recursive approach would recompute the same states exponentially many times.

    Why it matters · Common at larger companies but rarely a gate for a first junior role; pick it up once the core patterns feel automatic.

  4. Stage 04

    Stage 4, How software is really built (SDLC, Agile, requirements)

    Learn the lifecycle a real feature travels through and the process vocabulary you'll be expected to recognize in your first week: requirements, design, build, test, deploy, maintain, run iteratively under Agile/Scrum.

    The Software Development Life Cycle (SDLC) phasesEssential

    The Software Development Life Cycle is a structured sequence of phases that guides how software is conceived, built, and maintained: requirements gathering, system design, implementation, testing, deployment, and ongoing maintenance. Understanding the SDLC helps engineers see how their individual tasks fit into the broader delivery process and what artifacts each phase produces.

    Why it matters · It gives you the map for where your work sits: requirements, design, implementation, testing, deployment, and maintenance.

    Agile & Scrum basics (sprints, backlog, standups, boards)Essential

    Agile is a family of iterative software development approaches that prioritize delivering working software in short cycles and adapting to change. Scrum is the most widely adopted Agile framework, organizing work into time-boxed sprints with a prioritized backlog, daily standups to synchronize the team, and a board (physical or digital) to visualize the state of each task.

    Why it matters · Most teams run some form of Agile; you'll be pulled into a sprint and a board almost immediately.

    Reading requirements & writing clear technical communicationRecommended

    Reading requirements is the practice of parsing tickets, user stories, and design documents to extract the intended behavior, constraints, and acceptance criteria before writing any code. Clear technical communication encompasses writing concise commit messages, PR descriptions, design notes, and async updates that transfer understanding accurately to teammates across time zones and contexts.

    Why it matters · Hiring managers weigh communication heavily; understanding the intent behind a ticket prevents building the wrong thing.

  5. Checkpoint

    Don't wait, start applying

    You don't have to finish the path to begin. Early applications and interviews show you exactly what to learn next.

  6. Stage 05

    Stage 5, Testing & code quality (ship code you can trust)

    Verify your own work the way teams expect: understand the test pyramid, write unit and integration tests, and take part in code review. Shipping untested code is increasingly treated as a red flag.

    Testing fundamentals & the test pyramid (unit → integration → end-to-end)Essential

    The test pyramid is a model that categorizes automated tests by scope and recommends a large base of fast, isolated unit tests, a smaller layer of integration tests that verify component interactions, and a thin top layer of end-to-end tests that exercise the full system through its real interfaces. This distribution balances feedback speed, maintenance cost, and confidence that the system works as a whole.

    Why it matters · Testing now appears directly in many entry-level requirements, and bugs caught at the unit level are by far the cheapest to fix.

    Writing unit tests in your languageEssential

    Unit tests are automated checks that verify a single function or class in isolation by supplying controlled inputs and asserting on the outputs, without involving databases, networks, or other external dependencies. Each language ecosystem has a standard testing library (pytest for Python, Jest for JavaScript, JUnit for Java) that provides test runners, assertion utilities, and mocking facilities.

    Why it matters · Delivering tests alongside the feature is an expected baseline now, not a senior-only responsibility.

    Code review & clean-code habitsRecommended

    Code review is the practice of having peers read and critique proposed changes before they merge, catching bugs, surfacing design concerns, and sharing knowledge across the team. Clean-code habits, such as meaningful naming, small focused functions, consistent formatting, and self-contained commits, make code easier to review, understand, and maintain over time.

    Why it matters · Pull-request review is how teams ship and how juniors level up fastest; small PRs and clear commit messages build trust quickly.

    Continuous Integration (run tests automatically on every push)Recommended

    Continuous Integration is the practice of automatically building and running a project's test suite each time code is pushed to a shared repository, providing rapid feedback on whether new changes break existing behavior. Common CI platforms such as GitHub Actions, GitLab CI, and CircleCI define these pipelines as configuration files stored alongside the source code.

    Why it matters · CI is the modern default; even one small GitHub Actions workflow on a portfolio repo signals real-world readiness.

  7. Stage 06

    Stage 6, Connect to the real world (data, the web, and AI tooling)

    Add the cross-cutting skills every junior touches regardless of stack: querying a database with SQL, understanding HTTP/REST, and using AI coding assistants as a force-multiplier without outsourcing your judgment.

    SQL & relational databases (queries plus basic schema/data modeling)Essential

    SQL (Structured Query Language) is the standard language for creating, reading, updating, and deleting data in relational databases such as PostgreSQL, MySQL, and SQLite. Data modeling involves designing tables, choosing appropriate column types, defining primary and foreign keys, and structuring relationships to reflect the problem domain accurately and support efficient queries.

    Why it matters · Basic SQL is one of the most consistently listed junior requirements, and nearly every application stores its data in a relational database.

    HTTP & REST APIsEssential

    HTTP is the application-layer protocol used to transfer data across the web, defining request methods (GET, POST, PUT, DELETE), status codes, and headers. REST is an architectural style for designing networked APIs that maps operations onto HTTP methods and resource-oriented URLs, with responses most commonly formatted as JSON.

    Why it matters · Wiring systems together over APIs is everyday junior work; requests, status codes, and JSON are non-negotiable basics.

    Working effectively (and responsibly) with AI coding assistantsEssential

    AI coding assistants (such as GitHub Copilot, Cursor, and Claude Code) generate code suggestions, complete functions, and explain unfamiliar APIs using large language models. Effective use involves treating generated output as a first draft that must be read, understood, and verified, since models can produce plausible-looking but incorrect or insecure code.

    Why it matters · AI assistants are now standard in the workflow, 2026 surveys put adoption near 84%, but the same data shows trust in the output is low, and employers screen out people who can't review or debug what the AI wrote; use it to move faster while still understanding every line.

    Containers (Docker basics)Optional

    Docker is a platform for packaging applications and their dependencies into lightweight, portable containers that run consistently across different machines and operating systems. Core concepts include images (immutable snapshots built from a Dockerfile), containers (running instances of images), and registries (repositories such as Docker Hub for storing and distributing images).

    Why it matters · A nice differentiator that shows up in some postings, but rarely a gate for a first role; learn the basics once fundamentals are solid.

  8. Stage 07

    Stage 7, Prove it: portfolio, projects & interview prep

    Turn skills into evidence an employer can verify. Build and ship a few real projects on GitHub, with tests and a clean history, then prepare deliberately for coding and behavioral interviews. This is the stage that actually lands the job.

    Build 3-5 portfolio projects (with tests, README, and clean commits)Essential

    A portfolio project is a self-contained, publicly visible codebase that demonstrates applied skill by solving a real or realistic problem from end to end. Projects that include automated tests, a clear README explaining purpose and setup, and a commit history with descriptive messages give reviewers concrete evidence of how the author writes and organizes code.

    Why it matters · For new grads, a credible GitHub portfolio is the single biggest differentiator and often carries more weight than the degree line on a resume.

    Coding-interview preparationEssential

    Coding-interview preparation is structured practice aimed at performing well in the algorithm and data-structure problem-solving format used by most technical screens. It combines timed problem-solving, reviewing canonical solution patterns, practicing verbal explanation of reasoning, and simulating interview conditions to build the speed and clarity expected in a live session.

    Why it matters · The technical screen is pattern-driven; structured prep turns your raw DSA practice into actual offers.

    Behavioral interviews & resumeRecommended

    Behavioral interviews use open-ended questions about past situations to assess how a candidate approaches collaboration, conflict, and ambiguity, with STAR (Situation, Task, Action, Result) being the widely adopted structure for framing answers. A resume for a software engineering role concisely presents education, projects, and any experience with concrete outcomes, formatted to parse quickly by both humans and automated screening systems.

    Why it matters · Companies hire new grads largely on potential and communication; STAR-structured stories and a tight, focused resume close the loop.

    Open-source contributionOptional

    Open-source contribution means submitting changes (bug fixes, features, documentation, or tests) to publicly maintained codebases hosted on platforms such as GitHub or GitLab. The process involves reading an unfamiliar codebase, following project contribution guidelines, opening a pull request, and iterating on feedback from maintainers.

    Why it matters · A real merged PR is strong proof of collaboration and Git fluency, but it's a bonus for a first role rather than a requirement.

  9. Land the job

    Turn these skills into offers

    ResuMax takes you from skilled to hired: a resume that proves it, applications tailored per role, and interview reps.

Train on this path

Atlas reads your resume, shows what you already have on this path, and coaches the gaps in order.

Map my resume