
C/C++ Course
Master C and C++ from the ground up, covering everything from raw memory and pointers to modern C++20 features, design patterns, and concurrent systems. This course gives you the technical depth that professional developers and systems engineers actually use on the job. Whether you're targeting embedded firmware, high-performance applications, or technical interviews, you'll leave with real, production-ready skills.
What you will learn:
You will build a complete foundation in C and C++ syntax, memory management, and object-oriented programming before advancing to templates, the Standard Template Library, and modern C++17/20 features. The course covers data structures and algorithms implemented from scratch, giving you the problem-solving skills needed for technical interviews and systems work. You will also learn to use industry-standard tools including CMake, GDB, Google Test, and static analyzers. Embedded and systems-level programming topics prepare you for firmware and low-level development. By the end, you will be equipped to design, build, and ship robust C++ software in professional environments.
How you study in practice C/C++ Course
How you practice C/C++ Course
For companies looking to train their teams
With Dedika for businesses, the course includes exercises and examples tailored to your own business and the way your company needs.
Course Content
8 Chapters • 40 LessonsDuration between 4 and 360 hours (you decide)
Chapter 1HideHide detailsSee detailsC/C++ Environment and Syntax Basics
C/C++ Environment and Syntax Basics
Lesson 1 • Variables, Types, and Literals
Introduces primitive data types, variable declaration, and literal values. Mastery here enables correct data representation throughout the course.
Lesson 2 • Input and Output Fundamentals
Teaches console I/O using printf/scanf in C and cin/cout in C++. Enables interactive programs required in every hands-on exercise.
Lesson 3 • Operators and Expressions
Covers arithmetic, relational, logical, and bitwise operators with precedence rules. Builds the expression-writing skill needed for all control flow and algorithms.
Lesson 4 • Core Syntax and Program Structure
Covers tokens, statements, blocks, and the anatomy of a C/C++ source file. Connects directly to writing any valid program in later chapters.
Lesson 5 • Setting Up the Development Environment
Install and configure compilers, editors, and build tools for C/C++. Provides the technical foundation every subsequent chapter depends on.
Chapter 2HideHide detailsSee detailsControl Flow and Functions
Control Flow and Functions
Lesson 1 • Function Declaration and Definition
Introduces function prototypes, definitions, and call mechanics in C/C++. Establishes modular design principles used throughout the course.
Lesson 2 • Scope, Lifetime, and Storage Classes
Explains local, global, and static variables and their lifetimes. Prevents common bugs related to uninitialized or misscoped variables.
Lesson 3 • Recursion Fundamentals
Covers recursive function design, base cases, and stack behavior. Prepares students for recursive algorithms and data structures in later chapters.
Lesson 4 • Conditional Statements
Covers if, else-if, and switch constructs for decision-making. Directly enables logic-driven programs built upon in every subsequent chapter.
Lesson 5 • Loops and Iteration
Teaches for, while, and do-while loops along with loop control statements. Iteration is the backbone of algorithms and data processing covered later.
Chapter 3HideHide detailsSee detailsArrays, Strings, and Pointers
Arrays, Strings, and Pointers
Lesson 1 • C-Style Strings and String Functions
Teaches null-terminated character arrays and standard string library functions. Provides the C-string foundation needed before C++ std::string is introduced.
Lesson 2 • Dynamic Memory Allocation
Teaches malloc/free in C and new/delete in C++ for heap management. Lays the groundwork for dynamic data structures covered in the next chapter.
Lesson 3 • One-Dimensional and Multi-Dimensional Arrays
Covers array declaration, initialization, and element access patterns. Arrays underpin nearly every data structure introduced later in the course.
Lesson 4 • Pointers and Functions
Covers passing pointers to functions and returning pointers safely. Enables efficient data manipulation without unnecessary copying.
Lesson 5 • Pointer Basics and Address Arithmetic
Introduces pointer declaration, dereferencing, and pointer arithmetic. Pointers are central to dynamic memory and low-level programming in later chapters.
Chapter 4HideHide detailsSee detailsStructures, Unions, and Enumerations
Structures, Unions, and Enumerations
Lesson 1 • Enumerations and Type Aliases
Covers C enums, C++ enum class, and typedef/using declarations. Improves code clarity and type safety in all subsequent projects.
Lesson 2 • Bit Fields and Packed Data
Introduces bit-field struct members for compact data representation. Relevant to protocol parsing and hardware register mapping in advanced topics.
Lesson 3 • Pointers to Structures
Teaches pointer-based struct access and dynamic struct allocation. Enables linked data structures built in the algorithms chapter.
Lesson 4 • Unions and Memory Sharing
Explains union semantics, overlapping storage, and valid use cases. Provides low-level memory insight relevant to embedded and systems programming.
Lesson 5 • Defining and Using Structures
Covers struct declaration, member access, and nested structs. Structures are the direct precursor to C++ classes introduced in the next chapter.
Chapter 5HideHide detailsSee detailsObject-Oriented Programming in C++
Object-Oriented Programming in C++
Lesson 1 • Polymorphism and Virtual Functions
Introduces virtual functions, pure virtual functions, and abstract classes. Enables runtime dispatch patterns central to extensible software design.
Lesson 2 • Inheritance and Class Hierarchies
Covers single and multiple inheritance, base class access, and constructor chaining. Builds the hierarchy design skills needed for polymorphism.
Lesson 3 • Encapsulation and Design Principles
Applies SOLID principles and encapsulation strategies to class design. Prepares students to write maintainable, testable C++ code in advanced chapters.
Lesson 4 • Operator Overloading
Teaches overloading arithmetic, comparison, and stream operators for custom types. Enables intuitive syntax for user-defined classes used in later projects.
Lesson 5 • Classes and Objects
Covers class declaration, access specifiers, and object instantiation. Establishes the class model that all OOP features in this chapter extend.
Chapter 6HideHide detailsSee detailsTemplates, STL, and Generic Programming
Templates, STL, and Generic Programming
Lesson 1 • STL Algorithms
Covers sort, find, transform, accumulate, and other standard algorithms. Applying STL algorithms replaces error-prone manual loops in production code.
Lesson 2 • Function and Class Templates
Covers template syntax, type parameters, and template instantiation. Generic functions and classes reduce code duplication across all future projects.
Lesson 3 • STL Containers
Introduces vector, list, deque, map, set, and unordered variants. Choosing the right container is critical for performance in algorithm design.
Lesson 4 • Lambda Expressions and Functors
Introduces lambda syntax, captures, and functor objects for use with STL. Enables concise, expressive algorithm customization in modern C++.
Lesson 5 • Iterators and Ranges
Teaches iterator categories, iterator arithmetic, and range-based for loops. Iterators are the universal interface between containers and algorithms.
Chapter 7HideHide detailsSee detailsMemory Management and Resource Safety
Memory Management and Resource Safety
Lesson 1 • Exception Handling and Safety
Covers try/catch/throw, exception hierarchies, and exception-safety guarantees. Robust error handling prevents resource leaks under exceptional conditions.
Lesson 2 • RAII and Resource Ownership
Explains the RAII idiom and how constructors/destructors enforce resource safety. RAII is the foundation of all safe resource management in modern C++.
Lesson 3 • Smart Pointers in Depth
Covers unique_ptr, shared_ptr, and weak_ptr semantics and usage patterns. Smart pointers eliminate manual delete calls and prevent ownership errors.
Lesson 4 • Copy and Move Semantics
Teaches copy constructors, copy assignment, move constructors, and move assignment. The Rule of Five governs correct resource-owning class design.
Lesson 5 • Memory Debugging and Profiling
Introduces tools for detecting leaks, invalid accesses, and heap corruption. Profiling skills are essential for maintaining production-quality C++ code.
Chapter 8HideHide detailsSee detailsFile I/O, Concurrency, and Systems Programming
File I/O, Concurrency, and Systems Programming
Lesson 1 • Multithreading with std::thread
Teaches thread creation, joining, and detaching using the C++11 thread library. Concurrency fundamentals enable parallel program design in this chapter.
Lesson 2 • Process and System Interfaces
Introduces process creation, environment variables, and system calls. Provides the OS-level context needed for writing systems-level C programs.
Lesson 3 • Networking and Socket Basics
Introduces BSD socket API for TCP/UDP communication in C/C++. Networking skills extend C/C++ applications to distributed and client-server contexts.
Lesson 4 • Synchronization and Data Races
Covers mutexes, condition variables, and atomic operations to prevent data races. Safe synchronization is mandatory for correct concurrent programs.
Lesson 5 • File I/O in C and C++
Covers fopen/fclose in C and fstream in C++ for reading and writing files. File I/O is required for data persistence in all capstone projects.
Your valid completion certificate
This course is for you:
Computer science students: seeking practical depth beyond what classrooms typically provide.
Python or JavaScript developers: ready to understand what happens below the abstraction layer.
Electrical engineers: needing C skills to write and maintain firmware for hardware projects.
Career changers: targeting systems or embedded roles that require low-level programming fluency.
Game developers: wanting to optimize performance-critical code written in C or C++.
Self-taught programmers: building the rigorous foundation that structured languages like C demand.
What our students say
Your classes are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of interest without needing to switch platforms... I thank you for everything you do, I've already recommended you to other people...

I like how the lessons are straight to the point and how I can switch chapters and skip content I don't need.

I like the content and the presentation style and video transcription, which speeds up the process!

The platform is fast, simple to use. The diversity of content and complementary videos really help with learning.

Top trainings
FAQ
Who is Dedika?
Is the certificate valid in United States?
Are the courses free?
What is the course workload?
What are the courses like?
How do the courses work?
What is the duration of the courses?
What is the cost or price of the courses?
What is an EAD or online course and how does it work?
PDF Course




















