C.
Systems-level programming — operating systems, embedded devices, networking, and performance-critical software.
Beginner
Start here — no prior experience needed
Setting Up a C Development Environment
Install GCC, configure VS Code, and learn to compile and run C programs with Makefiles.
Variables and Storage Classes in C
Learn variable declaration, initialization, scope, and the four storage classes: auto, static, extern, and register.
Data Types in C
Explore C's built-in data types including integers, floating-point numbers, characters, and how to use sizeof and type limits.
Operators in C
Master arithmetic, bitwise, shift, and logical operators in C, including operator precedence and the comma operator.
Control Flow in C
Learn if/else, switch, for/while/do-while loops, break, continue, and the goto statement in C.
Functions in C
Learn function prototypes, parameters, return values, recursion, and static functions in C.
Arrays in C
Learn 1D and 2D arrays, array decay to pointers, variable-length arrays, and string arrays in C.
Strings in C
Learn how C strings work as null-terminated char arrays, how to use string.h functions, and how to handle strings safely.
Introduction to C Programming
Learn what C is, its history, and why it remains one of the most important programming languages today.
Intermediate
For developers with core concepts down
Pointers in C
Master pointer arithmetic, pointer-to-pointer, const pointers, void pointers, and function pointers in C.
Memory Management in C
Learn malloc, calloc, realloc, and free, understand heap vs stack, detect memory leaks with Valgrind, and avoid buffer overflows.
Structs in C
Learn struct definition, typedef, nested structs, struct pointers, and bit fields for efficient data packing.
Unions and Enums in C
Understand union memory layout, how to use enum and typedef enum, and practical use cases for both.
File I/O in C
Learn fopen/fclose, fread/fwrite, fprintf/fscanf, binary file handling, and proper error checking for file operations.
The C Preprocessor
Learn #define, #include, #ifdef, function-like macros, include guards, and #pragma in C.
Error Handling in C
Learn errno, perror, strerror, setjmp/longjmp, and defensive programming patterns for robust C programs.
Linked Lists in C
Implement singly and doubly linked lists in C with insertion, deletion, and traversal operations.
Data Structures in C
Implement stack, queue, hash table, and binary search tree from scratch in C.
Makefiles for C Projects
Learn Makefile syntax, variables, pattern rules, phony targets, and how to manage multi-file C projects with make.
Advanced
Production-grade patterns for experienced engineers
Concurrency with pthreads in C
Learn POSIX threads, mutex locks, semaphores, condition variables, and how to avoid race conditions in C.
System Programming in C
Learn fork/exec, signals, pipes, mmap, and socket basics for Unix/Linux systems programming in C.
C Security: Buffer Overflows and Safe Coding
Learn about buffer overflow exploits, format string vulnerabilities, and how to write secure C code using safe functions.
C Interview Preparation: Top 30 Questions
Master the top 30 C interview questions with detailed answers and working code examples.