System Programming Fundamentals
Description
Understand what's happening under the hood
Most programming courses treat the operating system, memory, and hardware as "someone else's problem". This course takes you into those layers, using Linux as a clear reference point to explore ideas that apply across all systems.
This course is designed for developers who want to understand how computers actually work at a practical level, whether you're debugging crashes, investigating performance issues, or simply curious about what happens beneath your code.
By the end of the course, you should have a solid mental model of binary representation, CPU and memory behavior, kernel internals, and userland concepts, giving you the tools to reason about system behavior instead of treating it as magic.
Learning path
Objectives
- Understand binary representation, encoding, and bitwise operations
- Learn how CPUs, memory hierarchies, and GPUs function at a practical level
- Explore kernel internals including boot process, syscalls, filesystems, and processes
- Master userland concepts like file descriptors, permissions, IPC, and shell utilities
Curriculum
+-Introduction
+-Binary level
+-Hardware level
+-Kernel level
This course is taught by Simone Butera
Simone Butera is a software engineer with expertise in open-source development and peer-to-peer technologies. He is also very passionate about DX (developer experience) and programming language design.
