C Programming
Master pointers, memory allocation, structs, file I/O, system calls.
Computer Architecture
Understand CPU, memory hierarchy, instruction cycles, caches, registers.
Operating Systems Fundamentals
Study process scheduling, virtual memory, file systems, concurrency. Implement from
scratch in C.
Linux Internals
Use and explore Linux kernel, system calls, /proc, signals, user/kernel mode.
Data Structures and Algorithms
Implement from scratch in C. Focus on performance and memory behavior.
Embedded Systems Basics
Learn microcontroller programming (e.g. ARM Cortex-M), GPIO, timers, UART,
interrupts.
Rust Language
Study ownership model, lifetimes, concurrency. Build low-level tools safely.
Projects
Write a simple shell
Build a toy kernel
Program a basic embedded system (e.g., weather sensor)
Write a bootloader or emulator
Implement your own malloc, scheduler, file system, or basic compiler
Tools and Environment
Use Git, gdb, Make, valgrind, strace, QEMU, cross-compilation toolchains.
Read Source Code
Study Linux kernel, xv6, TinyCC, Redis, or embedded firmware repos.