A personal repository for learning C++, practicing the language, and keeping track of exercises, experiments, and small projects along the way.
I'm learning C++ from the ground up, with a focus on understanding how the language actually works rather than just memorizing syntax.
- Build a strong foundation in modern C++
- Understand compilation, linking, memory, references, pointers, and object lifetimes
- Get comfortable with the STL
- Practice writing clean and readable C++
- Improve problem-solving and DSA skills
- Eventually use C++ for larger projects, including game and multiplayer development
My main learning resource is:
I'll also use documentation, exercises, and small experiments whenever I want to explore a topic further.
The structure will evolve as I progress, but generally:
cpp-learning/
├── exercises/
├── experiments/
├── projects/
└── README.md
Small exercises related to concepts I'm currently learning.
Short programs used to test or understand specific C++ behavior.
Larger programs that combine multiple concepts together.
I'm learning and writing C++ primarily using:
- Fedora Linux
- Neovim
- GCC / G++
- Git
- Lazygit
- GitHub CLI
Compile a basic program with:
g++ main.cpp -o mainRun it with:
./mainAs the projects become more complex, I'll introduce proper build tooling such as CMake.
This repository is intentionally a work in progress.
Code here may be incomplete, experimental, or written before I've learned the "better" way to do something. That's part of the purpose of the repository - being able to look back and see how my understanding of C++ improves over time.
I already have programming experience, mainly with C# and web development, and I'm learning C++ to get closer to lower-level programming concepts and better understand what happens underneath higher-level abstractions.
Long term, I'm especially interested in using C++ for:
- Data structures and algorithms
- Game development
- Multiplayer/networked systems
- Performance-sensitive software
- Systems-level programming
Learning one .cpp file at a time.