Skip to content
thesarfo

Note

Good to Read & Know

Curated articles, books, and a systems-programming learning roadmap.

views 0
  1. Logging guide
  2. How to become a good backend engineer
  3. Things I wish developers knew about databases
  4. Kafka demystified
  5. How to design a good API
  6. School of SRE
  7. Google SRE Book
  8. The Copenhagen Book, implementing auth
  9. BugFree AI, practice system design and behavioral interviews like LeetCode
  10. System Design Excalidraws
  11. Setting up a Mac terminal
  12. Designing Data Intensive Applications, blog notes

Systems programming

  1. Finish the K&R C book
  2. Operating Systems: Three Easy Pieces
  3. OSDev wiki
  4. Linux Journey
  5. Systems programming in C++ (TUM)
  6. linuxcommand.org

Step 1: Master C

Resource: K&R, The C Programming Language

  • Learn C fundamentals: pointers, arrays, structs, memory, function pointers, file I/O
  • Code all exercises to build muscle memory

Step 2: Learn Linux basics & the command line

Resource: Linux Journey

  • Learn the Linux filesystem, shell, processes, permissions, piping, and basic tools
  • Practice with the command line regularly

Step 3: Understand OS internals & concepts

Resource: Operating Systems: Three Easy Pieces

  • Learn concepts:
    • CPU scheduling
    • Memory (paging, segmentation)
    • Processes & threads
    • Concurrency
    • File systems
  • Implement small projects in C to simulate these concepts

Step 4: Apply C in practical systems programming

Resource: C++ Praktikum (TUM)

  • Focus on low-level systems topics: file I/O, memory allocators, concurrency
  • Implementation exercises:
    • Build allocators
    • Work with memory-mapped files
    • Build multi-threaded tools

Step 5: Dive into bare-metal OS development

Resource: OSDev Wiki

  • Learn bootloaders, x86 architecture, and kernel development
  • Build a toy OS from scratch (bootable in QEMU or VirtualBox)