For C++, we've built Learn C++ Through Projects [0], which is a project-based C++ course.
We currently offer only one project to build a transport network monitor. It starts with some low-level topics (we use WebSockets to handle tens of thousands of network events) but a lot of code is also higher-level (we use the network events to create a routing engine) - so it may not be exactly a "systems programming" resource!
Thank you! We are going to release the Optimization section this week and the Productization one soon afterwards. In the meantime, we had to update a lot of the content around WebSockets based on user feedback - you'll receive an email soon!
We do! We have been working on new content more slowly than we hoped, though... Our fist project received a lot of attention and we want to make sure we can support all existing developers first.
We built a C++ project-based course [0] that uses exactly the same ideas.
The core of our approach is that every code snippet is extracted from a fully working codebase and every code iteration is tracked in git.
We unit-test each commit, which means that every tutorial step works. Also, making a change in an early code iteration requires a proper git rebase, with the change propagating through history without conflicts.
We also annotate the code to extract snippets, and then run scripts to autogenerate git diffs for those snippets. The scripts also output the unannotated version of the codebase, which we share with the course participants.
We are thinking about writing a blog post about this if there's interest!
Not a book, but we've built a website for project-based C++ learning: learncppthroughprojects.com — The only Project we offer at the moment is about optimizing passenger crowding on the London Underground using WebSockets and graphs. We focus on two things: Producing a working implementation and then making it production-ready (as we think this is often overlooked!).
Hey just a quick question regarding the book,
Is this beginner friendly like I do have knowledge of C++ but I would love to expand my c++ knowledge by doing projects
It's important that you are not a complete C++ beginner. Unfortunately it is difficult to quantify an "intermediate" level, but if you have written programs beyond simple textbook examples you're good to go. We have a 30d refund policy in place so people can see if it's for them.
Depending on your level, you will extract different things from the project and will learn the things that are most relevant to you; that's the nice thing about working on practical problems!
We currently offer only one project to build a transport network monitor. It starts with some low-level topics (we use WebSockets to handle tens of thousands of network events) but a lot of code is also higher-level (we use the network events to create a routing engine) - so it may not be exactly a "systems programming" resource!
[0] https://learncppthroughprojects.com