For a while, I’ve been searching for something deeper in programming. My background includes competitive programming in hig school, university courses in computer science, and even some web development (though, only because i had to). But web development never really excited me-it felt too chaotic, always changing, and too abstract. I wanted something more fundamental, something that wouldn’t be outdated in a year.
That’s when I decided to C++.
Why C++?
C++ has a reputation for being powerful yet complex but demanding. It’s widely used in high-performance applications-graphics engines, scientific computing, embedded systems, and more. Unlike web development, which evolves rapidly with new frameworks and tools, C++ feels stable and deeply connected to how computers work at a low level.
More than that, i want to understand computing at a deeper level, not just write code that runs in a browser. C++ makes you think about memory mamangement, performance, and system architecture in ways that higher-level languages abstract away.
Challenges & Learning Curve
I won’t say it’s been easy. When i first tried learning C++, i felt overwhelmed by its tools-setting up an IDE, dealing with build systems, and managing libraries all felt like unnecessary complicaions. Unlike scripting languages, where you can just write and run a file, C++ often requires more setup. That made it frustating at times.
I also tried following Bjarne Stroustrup’s book (the creator of C++), but I found it a bit too theoretical for my learning style. I realized I needed an approach that was more hands-on and structured to keep me engaged.
My Learning Plan
Rather than getting stuck in theory, I’m structuring my learning to focus on practical applications and steady progess:
- Start with Accelerated C++ – A book that teaches C++through real examples and projects instead of just syntax.
- Move on to Effective C++ – To understand best practices and common pitfalls.
- Explore The C++ Standard Library – To gain proficiency in STL and modern C++ tools.
- Go deeper with Effective Modern C++ – To fully embrace C++ and beyond.
- Specialize in Graphics & Math – Exploring rendering, simulations, and scientific computing.
To keep things manageable, I’m focusing on single-file programs at first, I will be using a minimal setup, and avoiding complex build systems until I’m more comfortable.
What’s Next?
I’m documenting my journey not just to track my own progress but also to share my experiences with others who might feel the same way. My next post will likely cover my takeaways from Accelerated C++ or a specific challenge I’ve encountered while learning.
If you’re also learning C++ or considering it, feel free to follow along! Let’s see where this journey leads.