Mooc AtlasUniversity-level self-study
All paths
Computer science · 15Beginner

Systems Programmer

Learners drawn to low-level code, memory and performance.

C on Linux, memory management, then Rust and Go for modern, concurrent systems programming.

346hours of coursework
35weeks at 10 h
4steps
19courses
3universities

Target skills

Memory ManagementFile I/OCommand-Line InterfaceAlgorithmsCSoftware EngineeringProgramming PrinciplesDebuggingData StructuresProgram DevelopmentSoftware DesignSoftware Testing

Skill labels as listed on Coursera.

Target jobs

  • Systems developer
  • Embedded software engineer
  • High-performance back-end developer

Progression

  1. 1
    Duke UniversityBeginnerC

    Stated prerequisites: No prior programming experience required

    Show the 4 courses
    CourseLevelLengthRating (reviews)
    Programming FundamentalsBeginner19 h4.7 (7,054)
    Writing, Running, and Fixing Code in CBeginner20 h4.3 (837)
    Pointers, Arrays, and RecursionBeginner21 h4.3 (352)
    Interacting with the System and Managing MemoryBeginner24 h4.2 (182)
  2. 2
    Dartmouth College & Institut Mines-TélécomBeginnerC, Linux, Build Tools
    Show the 7 courses
  3. 3
    Duke UniversityBeginnerRust, Python, Cargo, Docker, Jenkins, Prometheus, Hugging Face
    Show the 5 courses
    CourseLevelLengthRating (reviews)
    Rust FundamentalsBeginner40 h4.0 (255)
    Data Engineering with RustIntermediate64 h3.5 (72)
    Rust for DevOpsIntermediate19 h4.1 (19)
    Python and Rust with Linux Command Line ToolsIntermediate21 h5.0 (16)
    Rust for Large Language Model Operations (LLMOps)Intermediate17 h4.3 (15)
  4. 4
    University of California, IrvineIntermediateGo

    Stated prerequisites: Previous programming experience, ideally object-oriented (C++ or Python)

    Show the 3 courses
    CourseLevelLengthRating (reviews)
    Getting Started with GoIntermediate10 h4.6 (2,484)
    Functions, Methods, and Interfaces in GoIntermediate11 h4.6 (1,017)
    Concurrency in GoIntermediate13 h4.7 (809)

With Coursera Plus

This path takes 346 hours, about 8 months at 10 hours a week. A Coursera Plus subscription gives access to most of its courses during that time.

Discover Coursera Plus

Projects to build

After step 1

Mini Unix shell

Write a command interpreter in C with redirections and pipes.

After step 2

Memory allocator

Write your own malloc and free and measure fragmentation.

After step 3

Command-line tool

Recreate a fast text search tool in Rust, with tests.

After step 4

Concurrent server

Write a small chat server in Go that handles hundreds of connections.

Free textbooks

More paths in this family