C — Beginner
From your first compiled program to owning memory with pointers. Practice-first C: every concept is followed by challenges verified against a real gcc in a sandbox — build the foundation that makes systems programming make sense.
84 lessons0 challenges~18.5 hoursBeginner — no experience needed
Who this course is for
New programmers starting with C as a first or second language, and learners who want to understand what memory, pointers, and compilation really do. Every concept is practiced in real compiled C, building to the habits that make Intermediate and Advanced C safe.
What you will be able to do
- Write, compile, and run C programs and read real compiler output
- Use pointers, arrays, and structs with confidence and clear ownership
- Manage dynamic memory without leaks, dangling pointers, or double frees
- Build and debug small multi-file C projects with disciplined APIs
What Is C?
From source code to a running program: the compile pipeline, main(), printf, and your first working C.
Variables & Types
Names for values: declaration, initialization, assignment, the core types, signedness, constants, and sizeof.
Input & Output
Format specifiers in depth, field widths and precision, and reading values from text the safe way.
Operators & Expressions
Arithmetic, the integer-division trap, logical operators, precedence, and explicit conversions.
Conditional Logic
if/else chains, nested decisions, and switch — teaching programs to choose.
Loops
for, while, do-while; nested patterns; break/continue; and loop design that terminates.
Functions
Declaring, defining, and calling functions; parameters, return values, prototypes, and decomposition.
Scope, Lifetime & Storage
Where names are visible, when storage exists, and why global state needs care.
Arrays
Fixed-size collections: declaration, indexing, iteration, and the out-of-bounds trap.
Strings & Characters
C strings are memory: char arrays with a null terminator. Own the terminator or own the bug.
Pointers Fundamentals
Addresses, the & and * operators, pointers as parameters, NULL — and the classic mistakes.
Pointers & Arrays
Why array parameters are pointers, how +1 moves by one ELEMENT, and writing string functions by hand.
Dynamic Memory
malloc, calloc, realloc, free — and the ownership discipline that keeps heap programs alive.
Structs
Grouping related data, passing it around, and reaching members through pointers.
Enums, Typedef & Data Modeling
Named constants, type aliases, and modeling real-world state readably.
File I/O
FILE*, open modes, reading and writing text, and handling the failure cases.
Preprocessor & Headers
What happens before compilation: #include, #define, guards, and the .h/.c split.
Multi-File C Projects
Public contracts, private helpers, and the declaration/definition discipline that scales a code base.
Debugging C
Reading warnings, recognizing the classic crashes, and forming the forensic habits that find bugs fast.
Data Structures Foundations
Dynamic arrays, linked lists, stacks and queues — built by hand, chosen by trade-off.
Algorithms & Problem Solving
Searching, sorting, recursion — and the reasoning that picks the right tool.
C Project Engineering & Capstone
The build workflow, project layout, and a capstone that composes the whole course.