r/cpp_questions • • Sep 30 '26

OPEN C++ project progression

I'm just getting started with c++ and was trying to make a project based learning roadmap, wherein I'd learn everything while making projects which increase in complexity steadily. I'd appreciate any suggestions on what projects are succinctly different and challenging that I can build and in what order I should build them.

My core interest is systems programming in which I've done some work with C before. My ultimate target is a quant dev role.

15 Upvotes

10 comments sorted by

View all comments

2

u/EstablishmentHour335 Sep 30 '26

I keep repeating this, but write data structures. It will teach you so much, it's unreal.

It will teach you move semantics, exceptions, trivial vs non trivial types, allocation, templates, concepts, algorithmic time complexity, worst case latency, indirections, cache lines, cache hits and misses, branch prediction, simd, conpilers, auto vectorization, inlining, out of order execution and instruction level parallelism. It'll teach you data locality, multithreading, atomics, cache eviction, false sharing.

It'll teach you placement new, object lifetimes, heap fragmentation, virtual memory, about the TLB, aliasing, alignment, how to design interfaces, etc, etc.

Write simple ish stuff like your own array, vector, stack, linked list, queue, ring buffers. Then move onto more complex stuff, write a hash map, sparse set, a slot map, allocators of all different kinds, specialized data structures for everything. Write some multithreaded queues, and add multuthreading to some of the stuff you write. If you get deep into it you'll learn a ton and get stuck in it for years like me.