A collection of 100 practical C++ projects designed to strengthen your problem-solving skills, deepen your understanding of systems programming, and build real-world development experience.
This repository is structured progressively—from beginner fundamentals to advanced system-level challenges—so you can grow as a C++ developer step by step.
- 📂 100 curated C++ projects, each in its own folder
- 🎯 Covers beginner → advanced topics
- 🧱 Includes algorithms, OOP, data structures, file I/O, networking, multithreading, OS concepts, graphics, and more
- 📝 Each project contains:
- Problem description
- Implementation
- Notes / improvements
- Compilation & run instructions
- 🧪 Optional unit tests (where relevant)
100-cpp-projects/
│
├── 01-temperature-converter/
│ ├── main.cpp
│ └── README.md
│
├── ...
│
└── 100-final-project/
├── src/
└── README.md
│
│
├── init_cpp.sh
├── License
└── README.md
- Basic syntax
- Variables, loops, functions
- Console apps
- Simple algorithms
- OOP (classes, inheritance, polymorphism)
- File I/O
- Data structures (linked lists, trees, stacks, queues)
- Memory management
- STL mastery (vectors, maps, algorithms)
- Multithreading & concurrency
- Design patterns
- Compiler-like tools
- System-level tools
- Mini-engines
- Networking (TCP/UDP sockets)
- OS
- Memory Management
- Games
- Graphics
- OpenGL / graphics basics (optional)
- Real-World apps
- C++17 or later
- A compiler such as:
g++(MinGW/GCC)clang++- MSVC / Visual Studio
- CMake (optional but recommended)
g++ main.cpp -o program
./programmkdir build
cd build
cmake ..
make
./program
You can:
- Build the projects in order for a full learning path
- Jump to specific topics you want to practice
- Fork and modify for your own learning
- Use it as a portfolio showcase
- Practice system-level development
By completing this repo, you will gain solid experience in:
- Problem-solving
- Memory management
- Data structures & algorithms
- Object-oriented design
- File processing
- Multithreading
- Networking
- Modern C++ best practices
- Writing clean, maintainable code
- Add automated tests
- Add performance benchmarks
- Add diagrams & explanations
- Convert some projects into full applications
- Add GUI versions using Qt or SDL
Contributions are welcome!
If you want to:
- Improve a project
- Add alternative solutions
- Add unit tests
- Fix bugs
Submit a pull request 🤝
This project is licensed under the MIT License.
Feel free to use it for your learning or portfolio.
If this repo helps you learn, star the repository ⭐
It motivates further improvements.
Hi! I'm Zamin Ahmadi, a passionate software engineering student and systems programmer.
I love building:
- ⚙️ System-level C++ applications
- 🖥️ Networking & server tools
- 🎮 Graphics & OpenGL projects
- 🧩 Algorithms & low-level utilities
This repository is part of my mission to master C++ by building 100 real-world projects.
If you'd like to collaborate, feel free to reach out!
📧 Email: [email protected]
🐙 GitHub: https://github.com/zmn17
💼 LinkedIn: https://linkedin.com/in/zmnahm10