Welcome to your journey to becoming a professional C++ developer! This living document will guide us through lessons, exercises, and milestones.
- cppreference.com: The authoritative C++ language and standard library reference. Our PRIMARY technical reference for all modules.
- C++ Core Guidelines: Best practices by Bjarne Stroustrup & Herb Sutter. Foundation for Module 8.
- Mike Shah C++ Playlist: Video lectures and core concepts.
- Simplify C++!: Modern C++ techniques and clean code.
- CppQuiz: Technical questions to sharpen our understanding.
- C++ Institute: Roadmap for CPA and CPP professional certifications.
- ISO C++: Official standards and news.
- Learn-Cpp.org: Interactive basic tutorials.
- Goal: Understand basic syntax, memory model, compilation process.
- Actions:
- Watch first videos from Mike Shah.
- Write first program with Doxygen comments.
- Review basic concepts on learn-cpp.org.
- Status: ✅ Content Written
- Goal: Classes, inheritance, polymorphism, RAII.
- Actions:
- Deep dive into Mike Shah's OOP videos.
- Implement a small project using OOP principles.
- Status: ✅ Content Written
- Goal: Smart pointers, auto, lambdas, move semantics.
- Actions:
- Read resources from Simplify C++.
- Follow ISO C++ standards guidelines.
- Status: ✅ Content Written
- Goal: Templates, Concurrency, STL, memory management.
- Actions:
- Daily challenges on CppQuiz.
- Status: ✅ Content Written
- Goal: Prepare for C++ Institute exams (CPA/CPP).
- Actions:
- Review exam syllabuses.
- Solve sample questions.
- Status: ✅ Content Written
- Goal: Learn CMake, Unit Testing (GTest), Concurrency, Debugging/Profiling (GDB/Valgrind).
- Actions:
- Create a full CMake project.
- Write unit tests.
- Prevent memory leaks manually.
- Status: ✅ Content Written
- Goal: Understand vtable memory layout, SIGSEGV/RAII deeper mechanics, fork vs threads.
- Actions:
- Study virtual table proof with
sizeof. - Explore RAII with core dumps and GDB.
- Study virtual table proof with
- CppReference: virtual, RAII, std::thread
- Status: ✅ Content Written
- Goal: Apply C++ Core Guidelines (P, R, E, CP sections) to write safe, idiomatic code.
- Actions:
- Study Philosophy & Interfaces (P.1, P.4, P.5).
- Apply Rule of Zero resource management.
- Practice error handling best practices.
- Learn concurrency guidelines (CP.20, false sharing).
- CppReference: Core Guidelines, std::lock_guard
- Status: ✅ Content Written
- Goal: Master C++20 features: Concepts, consteval/constinit, advanced pointer mechanics, bit manipulation.
- Actions:
- Implement bit manipulation with
alignasandstd::bitset. - Practice operator overloading patterns.
- Study SFINAE → C++20 Concepts evolution.
- Explore
constexprvsconstevalvsconstinit.
- Implement bit manipulation with
- CppReference: Concepts, consteval, alignas
- Status: ✅ Content Written
- Goal: Master GoF design patterns and SOLID principles in modern C++.
- Actions:
- Implement SOLID principles (SRP, OCP, LSP, ISP, DIP).
- Build Creational patterns: Singleton, Factory, Builder.
- Apply Behavioral patterns: Observer, Strategy, Command.
- Use Structural patterns: Adapter, Decorator, Facade.
- Explore testable design: CRTP, Type Erasure, Policy-Based Design.
- Study embedded & automotive patterns: Memory Pool, Active Object, FSM, Hardware Proxy.
- CppReference: CRTP, std::function
- Status: ✅ Content Written
- Goal: Apply C++ in resource-constrained, real-time embedded environments.
- Actions:
- Understand
volatileand memory-mapped I/O. - Implement bitfields and protocol parsing.
- Practice no-heap allocation and static buffers.
- Study RTOS patterns and priority inversion.
- Build thread pools and parallel algorithms.
- Understand
- CppReference: volatile, std::atomic, execution policies
- Status: ✅ Content Written
- Goal: Understand C++20 coroutines: co_await, co_yield, co_return, promise_type and custom awaitables.
- Actions:
- Implement Generator and Task coroutine types.
- Practice lazy evaluation with coroutines.
- Build async scheduler, pipeline, and cancellation patterns.
- Understand symmetric transfer and exception propagation.
- CppReference: coroutines
- Status: ✅ Content Written
- Goal: Master BSD sockets, TCP/UDP communication, client-server architecture.
- Actions:
- Build TCP echo server and UDP broadcaster.
- Study epoll edge-triggered vs level-triggered modes.
- Build event-driven multi-client server (Reactor pattern).
- Status: ✅ Content Written
- Goal: Deep understanding of CAN FD/XL, LIN, FlexRay, Automotive Ethernet, UDS diagnostics.
- Actions:
- Implement CAN FD frame parser with DBC support.
- Build UDS diagnostic session handler.
- Study Automotive Ethernet SOME/IP and DoIP.
- CppReference: std::bitset, std::array
- Status: ✅ Content Written
- Goal: Register-level programming: GPIO, ADC/DAC, SPI/I2C/UART, DMA, interrupts, memory technologies.
- Actions:
- Implement memory-mapped register abstractions.
- Build DMA transfer manager and ISR handler.
- Study EEPROM, FLASH, FRAM and DDR technologies.
- Status: ✅ Content Written
- Goal: Master AUTOSAR Classic/Adaptive platforms, ISO 26262 functional safety, automotive cybersecurity, MISRA/CERT standards.
- Actions:
- Study AUTOSAR layered architecture (MCAL, ECU-Abstraction, Services).
- Implement ASIL-compliant patterns.
- Apply MISRA C++ 2023 rules.
- Status: ✅ Content Written
- Goal: Understand Software-Defined Vehicle architecture, OTA updates, middleware (SOME/IP, DDS, iceoryx).
- Actions:
- Study SDV zonal architecture evolution.
- Implement OTA update state machine.
- Compare SOME/IP, DDS and iceoryx middleware.
- Status: ✅ Content Written
- Goal: Master driver/HAL/BSP layers, zero-cost abstraction, peripheral drivers, and build a capstone ECU project.
- Actions:
- Build HAL abstraction with CRTP and Policy-Based Design.
- Implement GPIO, UART, SPI peripheral drivers.
- Complete Body Control Module (BCM) capstone project.
- Status: ✅ Content Written