Open-source project
salmer/CppDeveloperRoadmap avatar
salmer/CppDeveloperRoadmap

CppDeveloperRoadmap: a generated diagram you are meant to edit at the source

The roadmap for learning the C++ programming language for beginners and experienced devs.

3,565 stars328 forksPythonNOASSERTION

At a glance

What is it?
A learning roadmap for C++ that ships as a picture, in four languages, with a reading list attached and a licence that rules out commercial use. The useful thing about it is the generation step: the diagram is an output, not the source.
Who is it for?
This roadmap fits someone deciding what to learn next in a language they already know a little of, or someone who has been asked to teach it and needs a defensible order. Two things to settle before you lean on it.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 32 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 5, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The diagram is an output, and the source is a text file

The most consequential line in the whole readme is that the roadmap is generated. One language-neutral text source, held in a tools directory with a map generator inside it, produces a single artefact per language that is both the image you see and an editable diagram file. That design has an immediate consequence for contributors: the diagram is not the source, so a change proposed by editing the picture is a change that will disappear. The readme says so in a different way, in the guidance that the roadmap is edited like any other file, which is true only of the text file underneath. A separate document explains how to view the diagram and how to propose changes, and that document, not the picture, is what a new contributor needs to read first.

One of the three export formats has been abandoned

The roadmap is offered in three formats, which is generous by the standards of documents like this. There is an interactive view for people who want to open the diagram in an editor, and a plain vector image for everyone else. The third is a collaborative whiteboard, and it carries an explicit warning: it is marked obsolete, is no longer kept in sync, and was last updated around July 2026. That note is worth reading twice, because a shared whiteboard is the format people are most likely to find by search and least likely to check the date on. Anyone planning to teach from it is working from a snapshot several months behind the text source, and anyone proposing a change there is proposing it into a void.

Fourteen articles come before the map

The readme recommends reading a list of articles before exploring the diagram, and the order of that list is itself a curriculum. It opens with why the roadmap exists and what it is for, then asks whether the reader actually needs C++ knowledge at all, which is an unusual thing to put second and a useful one. From there come the informal piece arguing the language is not as hard as its reputation, the areas where the language is actually applied, a page of myths and legends, one on the developer and artificial intelligence, and a set of developer grading results. The remainder is the practical half: how to study, books and other resources, project ideas of your own, the language toolkit, popular libraries and frameworks, coding standards and regulatory requirements, and a closing page of documentation and community links.

The scope is commercial practice, not the whole language

The stated aim narrows what the roadmap is for. It focuses on the general competencies and skills commonly found in most projects, and it is designed for people at the beginning of their education or with limited experience. The target is a level of the language commonly used in commercial projects. That is a deliberate subtraction, and it explains the shape of the diagram: it is not a catalogue of the language's features, and it is not a specification checklist. The framing also explains the opening claim that the language remains among the most popular, which the readme supports with a link to a survey of professional practice rather than asserting it. For a reader with commercial deadlines, that focus is the point; for a reader who wants the corners of the language covered, this document will feel thin, and it is better to know that before starting than after chapter ten.

Translations sit beside the English, not inside it

Four languages are maintained, and the structure of the repository makes the arrangement obvious: a directory per language, with the English one holding the articles and the graph instructions the readme links to. The translated readmes are short files at the top level that hand you to the right directory rather than carrying a full translation of the prose. The diagram links also carry a language parameter, and the site keeps a directory whose name suggests it exists purely to serve those switchable links. That is a maintenance cost worth naming, because four translations means four things to keep in step when the source changes, and the readme's own instruction to propose changes as a pull request against a file is the mechanism that makes that feasible.

Non-commercial use only, with attribution required

The licence is the condition most likely to surprise someone, because the repository looks like ordinary open source material and is not. The contents are published under a Creative Commons attribution, non-commercial, share-alike licence, and the readme reduces it to two sentences. You may share, adopt, or copy any portion as long as you link to the original sources. Using any portion for commercial purposes is prohibited outright. For a learning roadmap that sounds reasonable, and it is, but it means a company cannot vendor the material into internal training without a different arrangement, and a reader who assumes the permissive software licences they are used to will be wrong. Worth noting alongside it that the repository's own licence metadata records no standard identifier while a licence file sits at the root, so an automated check will not tell you the terms; the readme does.

Pull requests for changes, issues for questions

The communication section splits two kinds of feedback and says which channel each belongs in, which is a small courtesy that saves maintainers time. Anything that proposes a modification to the content or to the diagram belongs in a pull request, with the instruction that the roadmap is edited like any other file. Anything that is a question or a suggestion without a concrete change belongs in an issue tracker. Contributors are named in two groups, three creators and three reviewers, followed by the community, and the readme closes by inviting contact. The infrastructure underneath tells you what kind of project this is: a gem file, site configuration, and a layouts directory, so the published pages are built by a static site generator, and a link checker ignore file suggests broken external links are a known nuisance rather than an oversight.

Editorial conclusion

This roadmap fits someone deciding what to learn next in a language they already know a little of, or someone who has been asked to teach it and needs a defensible order. Two things to settle before you lean on it. Read the licence terms rather than assuming a code-style licence, because commercial use is prohibited outright and attribution is mandatory. And check the generation instructions before you edit the diagram, because the picture is produced from a text source and a pull request that changes the image alone will be lost the next time anyone regenerates it.

Frequently asked questions

What is a good roadmap for learning C++?

This repository is one, and it aims at the competencies and skills commonly found in most commercial projects rather than at the whole language. It is a generated diagram available as an editable file and a vector image, in Russian, Chinese, Spanish, and English, and it is preceded by fourteen recommended articles on why it exists, where the language applies, and how to study.

Is C++ still relevant?

The readme argues it is, opening by placing it among the most popular development languages and linking to a survey of professional practice rather than a language index. The rest of the document is an attempt to answer what to learn and in what order, for people starting out or with limited experience.

Can I use the C++ Developer Roadmap commercially?

No. The materials are published under a Creative Commons attribution, non-commercial, share-alike licence, and the readme states that using any portion for commercial purposes is prohibited. Sharing and adapting are allowed provided you link back to the original sources.

How do I propose a change to the C++ Developer Roadmap diagram?

The diagram is generated from a language-neutral text source in the repository's tools directory, so a pull request should change that source rather than the picture. The instructions for viewing the diagram and proposing changes live in the graph instructions page linked from the readme, and questions without a concrete change belong in the issue tracker instead.

Official sources

  1. Issues
  2. Project website
  3. README
  4. salmer/CppDeveloperRoadmap on GitHub
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/salmer-cppdeveloperroadmap.svg)](https://hysenlabs.com/projects/salmer-cppdeveloperroadmap)