Skip to main content

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.