C++ Complete Learning Path: All Posts Organized by Category
C++ Complete Learning Path: All Posts Organized by Category
This comprehensive learning path organizes all C++ blog posts by category, providing a structured roadmap from fundamentals to advanced topics. Follow this guide to systematically learn C++ and find relevant resources for any topic.
Table of Contents
- Learning Path Overview
- Fundamentals and Basics
- STL Containers
- STL Algorithms and Iterators
- Smart Pointers and Memory Management
- Concurrency and Multi-Threading
- Modern C++ Features
- Function Pointers and Callbacks
- Advanced Topics
- Embedded Systems and IoT
- Interview Preparation
- System Design
- Database and Backend
- Quick Reference by Topic
Learning Path Overview
Recommended Learning Order
Beginner → Intermediate → Advanced → Expert
↓ ↓ ↓ ↓
Fundamentals → STL → Concurrency → Advanced Topics
Prerequisites
- Basic programming knowledge
- Understanding of computer science fundamentals
- Familiarity with command line and build tools
Fundamentals and Basics
C Programming Basics
- C Programming Cheat Sheet
- Syntax, data types, pointers, functions, control structures
Pointers and References
- C++ Pointers, References, and Dereferencing Guide
- Pointer basics, references, dereferencing, common patterns
Language Keywords and Features
- C++ Using Keyword Guide
- Aliases, imports, typedef, templates, inheritance
- C++ Volatile Guide and Scenarios
- Volatile keyword, memory model, embedded systems
String Processing
- C++ String Processing Optimization
- Performance optimization techniques for string operations
STL Containers
Sequence Containers
- C++ Vector Guide
std::vectorusage, methods, runtime complexity, best practices
- C++ String Guide
std::stringmethods, SSO, performance tips
- C++ List Guide
std::listusage, linked list operations
- C++ Deque Guide
std::dequedouble-ended queue operations
- C++ Array Guide
std::arrayfixed-size array container
Associative Containers
- C++ Map Guide
std::mapordered key-value container
- C++ Set Guide
std::setordered unique elements
- C++ Unordered Map Guide
std::unordered_maphash-based map
- C++ Unordered Set Guide
std::unordered_sethash-based set
Container Utilities
- C++ Container Reserve vs Resize Guide
- Capacity, growth, invalidation rules
- C++ Iterator Guide
- Iterator usage, as keys/values, container access
STL Algorithms and Iterators
Algorithms
- C++ STL Algorithm Max
std::maxusage, comparators, examples
Lambda and Functional Programming
- C++ STL Lambda Capture Basics
- Lambda capture modes, reference vs value
- C++ Lambda Expressions Complete Guide
- Lambda syntax, scenarios, best practices
Smart Pointers and Memory Management
Smart Pointers
- C++ Smart Pointers Complete Guide
unique_ptr,shared_ptr,weak_ptr, ownership, RAII
- C++ Shared Pointer Guide
std::shared_ptrpractical usage
- C++ Reusable Mutex with Shared Ptr
- Combining mutexes with smart pointers
Concurrency and Multi-Threading
Multi-Threading Learning Paths
- C++ Multi-Threading Learning Paths
- Complete learning paths from beginner to advanced
- C++ Multi-Threading Technologies Index
- Technology overview and selection guide
- C++ Multi-Threading Design Patterns Index
- Design patterns overview
Basics and Fundamentals
- C++ Multithreading Basics
- Thread, future, mutex, condition_variable, atomic basics
- C++ Concurrency Complete Guide
- How concurrency works, models, scenarios, examples
- C++ STL Concurrency Support Guide
- Thread-safe primitives, atomic operations, synchronization
Synchronization Primitives
- C++ Mutex Guide with Scenarios
- Mutex types, usage, scenarios, examples
- C++ Mutex Patterns and Cases
- Common mutex patterns and use cases
- C++ Condition Variable Guide
- Wait/notify patterns, thread coordination
- C++ Barrier and Latch Guide
- C++20 barriers and latches for thread coordination
Async Function Templates
- C++ std::async Guide
- Async task execution, launch policies, futures
- C++ std::packaged_task Guide
- Task wrapper with futures, thread pool integration
- C++ std::promise and std::future Guide
- Thread communication, exception propagation
- C++ std::shared_future Guide
- Multi-consumer patterns, broadcasting results
Atomic Operations and Lock-Free
- C++ Atomic Operations Guide
- Atomic types, operations, memory ordering
- C++ Lock-Free Design Guide
- Lock-free algorithms, CAS operations, memory ordering
Thread Pools and Task Execution
- C++ Thread Pool Guide
- Worker threads, task queues, thread reuse
Producer-Consumer Patterns
- C++ Producer-Consumer Patterns Guide
- SPSC, MPSC, SPMC, MPMC patterns
- C++ Producer-Consumer Pattern Examples
- Step-by-step examples and implementations
Reader-Writer Patterns
- C++ Reader-Writer Pattern Guide
- Shared mutex, read-write locks, scenarios
Advanced Patterns
- C++ Gate + Thread Pool + Callback Queue
- Controlled async execution, gate control
- C++ Gated Callback Dispatcher
- Event-driven callback management
- C++ Thread Resource Sharing: Bus vs Queue
- Resource sharing strategies
- C++ Background File Loader Pattern
- Batch file loading with line-by-line consumption
Real-World Patterns
- C++ Common Multi-Threading Patterns: Real-World Engineering Guide
- 12 common patterns overview
- C++ Producer-Consumer Pattern (Real-World)
- C++ Thread Pool Pattern (Real-World)
- C++ Future/Promise Pattern (Real-World)
- C++ Map-Reduce Pattern (Real-World)
- C++ Read-Write Lock Pattern (Real-World)
- C++ Work Stealing Pattern (Real-World)
- C++ Pipeline Pattern (Real-World)
- C++ Reactor Pattern (Real-World)
- C++ Active Object Pattern (Real-World)
- C++ Bounded Buffer Pattern (Real-World)
- C++ Actor Model Pattern (Real-World)
- C++ Fork-Join Pattern (Real-World)
Practical Patterns
- C++ Multi-Threading Practical Patterns
- Task queues, logging, performance monitoring, lambda patterns
Modern C++ Features
C++11 Features
- C++11 New Features: Complete Guide
- Auto, lambdas, smart pointers, move semantics, nullptr
C++14 Features
- C++14 New Features: Complete Guide
- Generic lambdas, return type deduction, variable templates
C++17 Features
- C++17 New Features: Complete Guide
- Structured bindings, if constexpr, optional, variant, filesystem
C++20 Features
- C++20 New Features: Complete Guide
- Concepts, ranges, coroutines, modules, three-way comparison
- C++20 Bit Manipulation Utilities
- Bit manipulation functions and utilities
C++23 Features
- C++23 New Features: Complete Guide
- Latest C++23 features and improvements
C++26 Features
- C++26 New Features: Complete Guide
- Upcoming C++26 features
Function Pointers and Callbacks
- C++ Function Pointers Complete Guide
- Syntax, member function pointers, lookup tables, dispatchers
- C++ Callback Guide
- Function pointers, std::function, lambdas, futures, mutex patterns
Advanced Topics
Templates and Metaprogramming
- C++ Using Keyword Guide
- Template aliases, using declarations
Performance and Optimization
- C++ String Processing Optimization
- Performance optimization techniques
Embedded Systems and IoT
Embedded System Design
- Embedded System Design Showcase
- Complete embedded system designs and architectures
- C++ STL Embedded Cheat Sheet
- STL usage in embedded systems
BLE and Wireless
- Bluetooth Low Energy (BLE): How It Works and C++ Usage
- BLE protocol, C++ implementation
- BLE Firmware Architecture
- GATT, MTU, throughput, OTA
Bootloader and Security
- Secure Bootloader and OTA
- A/B slots, signatures, rollback
Android and USB
- Android USB Reader/Writer
- USB Host with Kotlin (CDC-ACM & Bulk)
System Architecture
- DMA Zero-Copy Architecture
- Direct Memory Access patterns
Interview Preparation
Coding Interviews
- Meta LeetCode 5-Day Preparation Plan
- Structured preparation plan
System Design Interviews
- System Design Interview Summary
- Framework for system design interviews
Network Interviews
- C++ Computer Network Interview Q&A
- Network programming interview questions
System Design
System Design Overview
- System Design Overview: Cloud
- Cloud system design principles
- System Design Overview: Embedded
- Embedded system design principles
Client-API-Gateway Connection Options
- System Design: Client-API-Gateway Connection Options
- Connection patterns and options
Database and Backend
SQL and Databases
- SQL Basics: Introduction
- SQL fundamentals, CRUD operations
- PostgreSQL with Python: Complete Guide with Flask API
- PostgreSQL, Python, Flask integration
Quick Reference by Topic
By Difficulty Level
Beginner
- C Programming Cheat Sheet
- C++ Pointers, References, and Dereferencing Guide
- C++ Vector Guide
- C++ String Guide
- C++ Multithreading Basics
Intermediate
- All STL Container Guides
- C++ Smart Pointers Complete Guide
- C++ Concurrency Complete Guide
- C++ Thread Pool Guide
- C++ std::async Guide
- Modern C++ Features Guides (C++11/14/17/20)
Advanced
- C++ Lock-Free Design Guide
- C++ Atomic Operations Guide
- Advanced Multi-Threading Patterns
- Embedded System Design
- System Design Guides
By Use Case
Learning C++ from Scratch
- C Programming Cheat Sheet
- C++ Pointers, References Guide
- STL Container Guides
- Smart Pointers Guide
- Concurrency Basics
Preparing for Interviews
- Palo Alto Networks Interview Questions
- Meta LeetCode Preparation Plan
- System Design Interview Framework
- Computer Network Interview Q&A
Building Concurrent Applications
- C++ Multi-Threading Learning Paths
- C++ Thread Pool Guide
- Producer-Consumer Patterns
- Real-World Multi-Threading Patterns
Embedded Systems Development
- Embedded System Design Showcase
- BLE Guides
- Bootloader and OTA
- STL Embedded Cheat Sheet
Learning Tips
1. Start with Fundamentals
Build a solid foundation with basics before moving to advanced topics.
2. Practice with Examples
Work through code examples in each guide to reinforce learning.
3. Follow Learning Paths
Use structured learning paths (like Multi-Threading Learning Paths) for systematic learning.
4. Build Projects
Apply knowledge by building projects that use multiple concepts together.
5. Review Regularly
Revisit topics periodically to reinforce understanding.
Summary
This learning path provides comprehensive coverage of C++ topics:
- 94+ posts covering all major C++ topics
- Organized by category for easy navigation
- Structured learning paths from beginner to expert
- Practical examples and real-world patterns
- Interview preparation resources
- Specialized topics (embedded, system design, etc.)
Key Resources
- Multi-Threading: C++ Multi-Threading Learning Paths
- STL Containers: See STL Containers section above
- Modern C++: See Modern C++ Features section above
- Interview Prep: See Interview Preparation section above
Next Steps
- Choose your learning goal (fundamentals, concurrency, embedded, etc.)
- Follow the relevant category sections
- Use learning paths for structured progression
- Practice with examples and build projects
- Refer to this guide whenever you need to find relevant posts
By following this comprehensive learning path, you can systematically master C++ from fundamentals to advanced topics.