Learning Roadmap

Suggested pace: about two modules per week with all examples run and challenges solved — roughly four months.

Concept

Data representation, logic, CPU basics, ISAs, assembly Processes, system calls, interrupts, threads

Scheduling, synchronization, deadlock, IPC Caches, virtual memory, page replacement, allocation File systems, I/O, storage

Pipelines, prediction, multicore, memory ordering Virtualization, security, performance, the full system-call trace Interview preparation, exercises, quiz

Suggested pace: about two modules per week with all examples run and challenges solved — roughly four months.

flowchart LR
    A["Hardware basics"] --> B["Processes and system calls"]
    B --> C["Concurrency"]
    C --> D["Memory"]
    D --> E["Storage and I/O"]
    E --> F["Advanced CPU"]
    F --> G["Systems practice"]

Why It Matters

The topics build on each other: virtual memory needs processes and caches; memory ordering needs caches and threads; performance analysis needs all of it.

Example

A study routine that works:

Read the concept, then run every example on Linux and compare with the Expected Result.

Change one parameter in each example and predict the new result before running it.

Answer the Quick Quiz without looking.

Solve the Coding Challenge and two Practice Questions.

Expected Result

After the roadmap you can explain and demonstrate how a computer runs a program, from gates to the kernel.

Common Mistakes

Studying theory without running programs.

Skipping the hardware stages and starting with the OS.

Best Practices

Pair this course with the EngiLipi C course (systems code) and Compiler Internals (how code becomes instructions).

Read a small real OS: xv6 (MIT's teaching Unix) is about 10 000 lines.

Interview Relevance

A structured path is the fastest way to interview readiness for systems roles.

Practice Questions

Plan your weekly schedule for the eight steps.

Choose one expert exercise from Module 32 as a final project.

Read the xv6 system-call path and compare it with Module 30.

Identify which modules matter most for your target role (embedded, backend, performance).

Quick Quiz

Q1. (Multiple choice) Which topic should come before virtual memory? A) Caches and processes B) Containers C) Branch prediction D) RAID Answer: A.

Q2. (True/False) You can understand memory ordering without knowing about caches and threads.

Answer: False. Q3. (Predict the outcome) Studying two modules per week with exercises — how long does the course take?

Answer: About 18 weeks (35 modules), roughly four months.

Q4. (Find the bug) "I'll skip the gate-level modules because I'm a software engineer."

Answer: Data representation, flags and the instruction cycle explain many software bugs (overflow, endianness, performance); they are worth the time.

Coding Challenge

Write a program that prints a study schedule: 35 modules, two per week, listing the week number and module range.

#include <stdio.h>

int main(void)
{
    int modules = 35, per_week = 2;
    for (int week = 1, m = 1; m <= modules; week++, m += per_week) {
        int last = m + per_week - 1 > modules ? modules : m + per_week - 1;
        printf("week %2d: modules %2d-%2d\n", week, m, last);
    }
    return 0;
}