Full disclosure, the main purpose of this is for accountability on my part. I want to try learn C++ in my free time but without the accountability, I know, it will likely never happen.
I’m not starting as an absolute n00b — I’ve dabbled in programming for many years in various forms. Back in college, I did a bit of Java and OOP. Later, I got into Python for automating personal tasks (and even built some automation while working at LinkedIn). I’ve also touched on some web technologies here and there.
Of course, I know C++ is a very different beast compared to all of that — but I think having a bit of background will at least give me a running start.
Why C++? #
Given my past experience, and, the plethora of other langues that I could have learned, why C++? Two main reasons:
- I want to contribute more meaningfully to CoMaps. Currently, I am just reporting bugs, suggesting features, and occasionally testing new features when I can. Not to say that this isn't meaningful work, it definitely is.
- Python has been incredibly useful in both my personal and professional life. I feel like learning something more low level now will push me outside of my comfort zone and might even make me more valuable in my professional life.
The Plan #
I asked on Mastodon (you should definitely follow me) for some resources that were recommended to learn C++, and, got some great suggestions.
I've built a rough roadmap that I hope to follow to get me into a position to start contributing code to CoMaps and other FOSS projects.
- Work through learncpp to help build a solid foundation.
- Start building small personal projects to practice what I know and push my knowledge further.
- Purchase a book to compliment the above.
- Repeat. (Maybe not multiple books, but, who knows).
- Start contributing code to open source projects, like CoMaps.
I've started with step 1 already and have also started thinking about what projects I could build to help me learn. I have always found value in building projects to learn, but, it needs to be something that I would actually want to use.
Wrapping Up #
That's the plan for now. I've tried to keep it as broad and rough as possible so that I can allow myself to move and change things as I need, without, feeling like I'm moving the goal posts.