HOME / CATALOG / C/C++ PROGRAMMING
01
ROADMAP / INTERMEDIATE

C/C++ Programming

42 TOPICS · 40 HOURS · INTERMEDIATE · SCALE 1:4
START CANVAS

A comprehensive learning path covering C fundamentals through modern C++ — from memory layout and pointers to templates, RAII, and the STL. Suitable for first-time systems programmers and experienced developers alike.


§ SYLLABUS

§ SECTION 01 · C FUNDAMENTALS
  1. 01
    Compilation Model & Toolchain

    Understand the compile-link-run cycle, header files vs source files, and how to use gcc/clang/MSVC from the command line.

  2. 02
    Types, Variables & Operators

    Learn primitive data types (int, char, float, double), variable declaration, arithmetic and bitwise operators, and implicit type conversions.

  3. 03
    Control Flow

    Master if/else, switch, for, while, do-while, break, and continue to direct program execution.

  4. 04
    Functions & Scope

    Define and call functions, understand pass-by-value, local vs global scope, and function prototypes.

  5. 05
    C Basics Complete

    You can write, compile, and run simple C programs with functions and control flow.

§ SECTION 02 · MEMORY & POINTERS
  1. 01
    Pointers & Addresses

    Understand memory addresses, pointer declaration, dereferencing, pointer arithmetic, and NULL pointers.

  2. 02
    Arrays & C Strings

    Work with fixed-size arrays, multidimensional arrays, and null-terminated character arrays for string handling.

  3. 03
    Dynamic Memory Allocation

    Use malloc, calloc, realloc, and free to manage heap memory, and understand common pitfalls like leaks and dangling pointers.

  4. 04
    Memory Layout & Stack vs Heap

    Visualize how a program's memory is organized into text, data, BSS, stack, and heap segments.

  5. 05
    Memory Management Proficient

    You understand pointers, arrays, and manual memory management in C.

§ SECTION 03 · ADVANCED C
  1. 01
    Structs, Unions & Enums

    Define composite data types with structs, understand unions for memory-overlapping fields, and use enums for named constants.

  2. 02
    File I/O

    Read from and write to files using fopen, fread, fwrite, fprintf, and understand text vs binary modes.

  3. 03
    Preprocessor & Macros

    Use #include, #define, #ifdef, and macro functions; understand their power and pitfalls compared to real functions.

  4. 04
    Multi-File Projects & Linking

    Split code across multiple .c and .h files, use header guards, and understand external linkage and static linkage.

  5. 05
    Function Pointers & Callbacks

    Pass functions as arguments, build dispatch tables, and implement callback patterns in C.

  6. 06
    C Language Mastery

    You can build non-trivial, multi-file C programs with proper memory management.

§ SECTION 04 · C++ FOUNDATIONS
  1. 01
    C to C++ Transition

    Understand what C++ adds over C: references, function overloading, default arguments, namespaces, and the differences in compilation.

  2. 02
    Classes & Objects

    Define classes with member variables and methods, understand access specifiers (public, private, protected), and the this pointer.

  3. 03
    Constructors, Destructors & RAII

    Learn constructor overloading, initializer lists, destructors, and the RAII idiom for resource management.

  4. 04
    References & Operator Overloading

    Use lvalue references as aliases, overload operators for custom types, and understand the rule of three.

  5. 05
    C++ Foundations Complete

    You can write class-based C++ code with proper resource management.

§ SECTION 05 · OBJECT-ORIENTED C++
  1. 01
    Inheritance & Polymorphism

    Derive classes, use virtual functions for runtime polymorphism, understand vtables, and apply the override keyword.

  2. 02
    Abstract Classes & Interfaces

    Define pure virtual functions, create interface-like abstract base classes, and design for extensibility.

  3. 03
    Exception Handling

    Use try/catch/throw for error handling, understand exception safety guarantees, and know when exceptions are appropriate.

  4. 04
    C++ Casting & RTTI

    Use static_cast, dynamic_cast, const_cast, and reinterpret_cast correctly; understand runtime type information.

  5. 05
    OOP Proficient

    You can design and implement class hierarchies with proper polymorphism and error handling.

§ SECTION 06 · MODERN C++ (C++11–C++23)
  1. 01
    Move Semantics & Rvalue References

    Understand lvalues vs rvalues, move constructors, move assignment, and std::move for efficient resource transfer.

  2. 02
    Smart Pointers

    Replace raw pointers with unique_ptr, shared_ptr, and weak_ptr to automate memory management and prevent leaks.

  3. 03
    Lambdas & Functional Patterns

    Write inline closures with capture lists, use std::function, and apply functional patterns like map/filter with algorithms.

  4. 04
    auto, constexpr & Structured Bindings

    Use type inference with auto, compile-time evaluation with constexpr/consteval, and structured bindings for cleaner code.

  5. 05
    Modern C++ Fluent

    You write idiomatic modern C++ with move semantics, smart pointers, and lambdas.

§ SECTION 07 · TEMPLATES & THE STL
  1. 01
    Function & Class Templates

    Write generic code with templates, understand template instantiation, specialization, and common compile errors.

  2. 02
    STL Containers

    Use vector, map, unordered_map, set, deque, and array; understand their performance characteristics and when to choose each.

  3. 03
    Iterators & Algorithms

    Traverse containers with iterators, apply STL algorithms (sort, find, transform, accumulate), and use ranges (C++20).

  4. 04
    Variadic Templates & Concepts

    Use parameter packs for flexible APIs and C++20 concepts to constrain template parameters with readable error messages.

  5. 05
    Generic Programming Proficient

    You can write and use templates effectively and leverage the full STL.

§ SECTION 08 · SYSTEMS & PROJECT SKILLS
  1. 01
    Build Systems (CMake / Make)

    Configure builds with CMake or Make, manage dependencies, set compiler flags, and produce debug vs release builds.

  2. 02
    Debugging & Sanitizers

    Use gdb/lldb for step-through debugging, and AddressSanitizer/Valgrind to detect memory errors and leaks.

  3. 03
    Concurrency & Multithreading

    Create threads with std::thread, protect shared data with mutexes, use condition variables, and understand atomics and data races.

  4. 04
    Networking & Sockets

    Understand BSD sockets, TCP/UDP basics, and write simple client-server programs in C/C++.

  5. 05
    Embedded & Low-Level C/C++

    Apply C/C++ in resource-constrained environments: volatile, bitfields, memory-mapped I/O, and cross-compilation.

  6. 06
    C/C++ Practitioner

    You can design, build, debug, and ship multi-file C/C++ projects with modern idioms and proper tooling.