diff --git a/Chinese/AreasOfApplication.md b/Chinese/AreasOfApplication.md
new file mode 100644
index 0000000..5f361f1
--- /dev/null
+++ b/Chinese/AreasOfApplication.md
@@ -0,0 +1,17 @@
+# :clipboard: C++的应用领域
+
+C++语言具有广泛的应用领域,主要在需要高性能或低内存消耗时使用。如果想了解更多关于C++特定应用领域的信息,可以参考以下资源:
+
+- [C++ 的 12 个实际应用场景](https://www.softwaretestinghelp.com/cpp-applications/)
+
+- [为什么和在哪里仍然需要使用 C/C++ 语言?](https://hackernoon.com/why-and-where-should-you-still-use-cc-languages-6l1r838gh)
+
+- [你可以用 C++ 做些什么?](https://www.ko2.co.uk/what-can-you-do-with-c-plus-plus/)
+
+- [C++ 应用案例](https://www.stroustrup.com/applications.html)
+
+- [C++ 被用来做什么?](https://www.codecademy.com/resources/blog/what-is-c-plus-plus-used-for/)
+
+---
+
+[**返回主页**](../README.md)
\ No newline at end of file
diff --git a/Chinese/Books/Junior.md b/Chinese/Books/Junior.md
new file mode 100644
index 0000000..02fa80a
--- /dev/null
+++ b/Chinese/Books/Junior.md
@@ -0,0 +1,49 @@
+# :yum: 初级开发者
+
+## :innocent: 动机和经验
+
+- [罗伯特·马丁 - 代码整洁之道](https://book.douban.com/subject/4199741/)
+
+ Uncle Bob 分享了他在 IT 行业中如何“生存”并取得成功的建议。这本书不仅涉及技术技能,还介绍了心理挑战以及应对它们的方法。
+
+- [罗伯特·马丁 - 整洁代码:可持续软件的艺术](https://book.douban.com/subject/3032825/)
+
+ 尽管你可能会遇到关于这本书的批评,但我们仍然认为它可以成为新开发人员短期内有价值的资源。该书收集了一系列有效技巧,可以帮助您编写结构良好、易读、易于维护的代码。然而,重要的是不要将此书视为圣经,并避免将其变成“货物崇拜”。相反,请明智地使用这些知识,并选择最适合您需求并改善您编码风格的技术。
+
+- [史蒂夫·麦康奈尔 - 代码大全(第2版)](https://book.douban.com/subject/1477390/)
+
+ 尽管年代久远,但该书仍可被视为开发人员的“圣经”,因为它提供了 IT 行业全面概述。它提供了大量实用建议,告诉你如何成长和发展成顶尖专业人士。
+
+## :bar_chart: 计算机科学
+
+- [Thomas H. Cormen - 算法导论(原书第3版)](https://book.douban.com/subject/20432061/)
+
+ 这本书是《图解算法》很好地跟进材料。深入探讨常见排序算法和列表操作等内容,并提供更深入信息。文体平易近人友好。阅读此书有助于准备自己深入研究算法领域。
+
+## :pencil: C++
+
+- [Scott Meyers - Effective C++:改善程序与设计55个具体做法(第三版)](https://book.douban.com/subject/25953851/)
+
+ 这本书是 C++ 基础知识方面最佳教程手册之一。虽然它涵盖C++03 特性, 但所提供信息依旧有价值且相关性强 。该指南中所列出来推荐都非常适用于最新标准版本。
+
+- [Jason Turner - C++最佳实践:45个简单规则和具体行动项目,以获得更好的C++](https://www.amazon.com/Best-Practices-Simple-Specific-Action/dp/B08SJSZKJ5)
+
+ 这是一份针对经验不足的C ++开发人员的技巧汇编,重点放在最常见的错误上。解释简洁明了。大多数提示包括指向其他资源的链接。由于该书没有对每条建议进行彻底检查,因此建议将来深入研究每一个建议,以真正理解它们背后的原因。
+
+- [Herb Sutter, Andrei Alexandrescu - C++编码标准:101个规则、指南和最佳实践](https://www.amazon.com/Coding-Standards-Rules-Guidelines-Practices/dp/0321113586)
+
+ 这本小书概述了商业项目中编写代码的常见最佳实践。这是从各种公司收集到的经验总结。这本书也是[C ++核心准则](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines) 的基础之一。建议先阅读本书再访问 C++ 核心准则网站。它将为您提供有关项目中使用代码指南的第一印象。阅读完本书后,您可以访问 C++ 核心准则网站获取最新批准方法。
+
+## :electric_plug: 硬技能
+
+- [Eric Freeman, Elisabeth Robson - Head First设计模式:面向对象设计基础(中文版)](https://book.douban.com/subject/2243615/)
+
+ 该书是学习设计模式的完美起点。另外一个选择是[refactoring.guru] (https://refactoring.guru/design-patterns),但如果使用这本书,则可以进行大量练习,帮助您更好地理解常见设计模式思想。
+
+- [Sanjay Madhav, Josh Glazer - 多人游戏编程:构架网络游戏(英文版)](https://www.amazon.com/Multiplayer-Game-Programming-Architecting-Networked/dp/0134034309)
+
+ 该书是网络理论方面出色介绍,并通过视频游戏示例解释网络基础知识 。它将帮助你编写第一个可通过网络工作应用程序,并且你会获得与在C ++ 中处理网络相关问题方面有关联系方面实际经验 。该书中所有示例都使用 C++11 /14 编写。
+
+---
+
+[**返回**](Overview.md) | [**回到主页**](../../README.md)
\ No newline at end of file
diff --git a/Chinese/Books/Middle.md b/Chinese/Books/Middle.md
new file mode 100644
index 0000000..f304d0a
--- /dev/null
+++ b/Chinese/Books/Middle.md
@@ -0,0 +1,84 @@
+# :sunglasses: 中级
+
+## :pencil: C++
+
+- [Scott Meyers - Effective Modern C++:改善C++11和C++14](https://www.amazon.com/Effective-Modern-Specific-Ways-Improve/dp/1491903996)
+
+ 这是 Scott Meyers 的书籍系列中的新章节。本书汇编了一组针对C ++11 / 14标准的技巧。
+
+- [Anthony Williams - C++并发编程实战](https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/ref=sr_1_3?keywords=C%2B%2B+Concurrency+in+Action%3A+Practical+Multithreading&qid=1636314477&s=books&sr=1-3)
+
+ 本书是多线程编程和使用标准库特性的全面指南。它提供了有关所有原语及其“幕后”复杂性的详细说明。
+
+- Herb Sutter:
+ - [Exceptional C++:47个C++工程难题、编程问题和解决方案](https://www.amazon.com/Exceptional-Engineering-Programming-Problems-Solutions/dp/0201615622)
+ - [Exceptional C++ Style: 40个新的工程难题、编程问题及解决方案](https://www.amazon.com/Exceptional-Style-Engineering-Programming-Solutions/dp/0201760428)
+ - [More Exceptional C++: 40 New Engineering Puzzles, Programming Problems, and Solutions](https://www.amazon.com/More-Exceptional-Engineering-P rogramming-Solutions/dp/020170434X)
+
+ 这些书籍涵盖了许多与在C ++中设计或编写代码相关的任务,并提供了一系列有效解决方案。其中许多解决方案被认为是经典习惯用法,广泛应用于各种项目中。
+
+- [David Vandevoorde - C++ Templates: The Complete Guide](https://www.amazon.com/C-Templates-Complete-Guide-2nd/dp/0321714121)
+ 这本最新的关于C++元编程,特别是模板的相关书籍,全面描述了近期标准中添加的相关技术和基础知识,包括C++17。如果你想要编写通用和参数化代码,这本书将成为你不可或缺的资源,并提供有关模板基础知识以及与不同技术相关的许多细微差别。
+
+## :bicyclist: 优化C++应用程序
+
+- [Kurt Guntheroth - C++性能优化指南](https://www.amazon.com/Optimized-Proven-Techniques-Heightened-Performance/dp/1491922060)
+ 这本书是一本改善C ++应用程序性能的指南。该书中一些建议基于Herb Sutter或Scott Meyers所述的各种习语和技巧。建议在阅读前面提到过的书籍后再阅读此书。
+
+- [Agner Fog - Optimizing software in C++](https://agner.org/optimize/optimizing_cpp.pdf) 或者[Optimization manuals](https://agner.org/optimize)
+ 实践导向指南为使用C ++开发或涉及与CPU、内存等交互方面进行了全面介绍潜在优化可能性提供了详尽信息。
+
+## :electric_plug: 硬技能
+
+- [Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 或 "四人组" - 《设计模式:可复用面向对象软件的基础》](https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612)
+
+ 这本书是关于设计模式的经典指南。每个模式都有详细的描述和适当使用案例的建议。这本书是 Eric Freeman 的《Head First Design Patterns》的好后续读物。然而,准备好了吗?因为这本书比前一本更加复杂。
+
+- [Gary McLean Hall - 《自适应代码》](https://www.amazon.com/Adaptive-Code-Developer-Best-Practices/dp/0136891446)
+
+ 这本书是理解软件设计中 SOLID 原则的优秀资源。解释以简单易懂的方式呈现出来,使它们易于理解。C# 编写的代码示例也很简单,并有效地说明了原则。
+
+- [Robert Martin - 《整洁架构:软件结构与设计之道》](https://www.amazon.com/Clean-Architecture-Craftsmans-Software-Structure/dp/0134494164)
+
+ 这本由 Uncle Bob 写作提供了如何从架构角度考虑软件设计方面指导。它强调在开始编码之前思考应用程序或组件体系结构的重要性。该书提供了分析解决方案设计时需要考虑什么以及帮助避免常见软件设计错误等见解。对于想要深入了解软件设计中架构任务并寻求获得更深入理解领域知识点起点良好者而言,这本书是一个不错选择 。此书所包含知识被工程师广泛使用,并将帮助他们避免普遍错误。
+
+- [Samary Baranov - 《有限状态机和算法状态机:快速、简单地进行复杂有限状态机设计》](https://www.amazon.com/Finite-State-Machines-AlgorithmiComplex-ebook/dp/B078RYYBCJ)
+
+ 这是一份关于如何运用有限机器理论进行编程实践指南短小精干且实用性强 。你不会找到比这更简单、更优雅地阐述有限机器理论及其实际应用方法。
+
+- [Vladimir Khorikov - 单元测试原则、实践和模式: 使用 C# 示例进行单元测试、Mocking 和集成测试效果良好]
+(https://www.amazon.com/gp/product/B09782L692/ref=dbs_a_def_rwt_hsch_vapi_tkin_p1_i0)
+
+ 该图书提供了在单位测试领域常见推荐事项、模式和反模式详细概述 。阅读完此图书后,您将掌握创建成功项目所需所有内容 ,通过良好测试轻松扩展且易于维护。
+
+
+## :zap: 操作系统
+
+- [Andrew S. Tanenbaum - 现代操作系统](https://www.amazon.com/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X)
+
+ 这是一本关于操作系统的综合指南,涵盖了其构建和各个方面,如文件系统、网络、内存管理、任务调度和多线程。该书用简单易懂的语言提供深入的解释,不专注于特定的操作系统分发。每章都对操作系统的不同方面进行了详细探讨,使它成为理解这个复杂主题的基础资源。
+
+- [Mark Russinovich - Windows Internals, Part 1](https://www.amazon.com/Windows-Internals-Part-architecture-management/dp/0735684189), [Mark Russinovich - Windows Internals, Part 2](https://www.amazon.com/Windows-Internals-Part-2-7th/dp/0135462401)
+
+ 本书深入探讨了与前一本书相同的主题,但重点专注于微软Windows操作系统。它提供了一个深入而详细地查看OS每个方面,并着重介绍Windows可能没有被开发人员正式声明的各种微妙差别和方面。对于那些需要与OS系统库密切交互并且需要低级应用程序开发人员来说是一个有用资源。
+
+-[Christopher Negus - Linux圣经](https://www.amazon.com/Linux-Bible-Chrisopher-Negus/dp/1119578884)
+
+ 本书可以作为Tanenbaum工作后续研究Linux操作系统复杂性时使用。该书包括对OS各个方面进行详细分析,并侧重于像Red Hat、Ubuntu和Fedora等流行版本。对于日常使用Linux 的开发人员来说是一个理想资源。
+
+-[Ulrich Drepper - 关于内存编程者应知道什么?](https://people.freebsd.org/~lstewart/articles/cpumemory.pdf)
+
+ 这篇文章全面介绍PC内存如何运作以及为什么会按照所描述方式运行。它不仅提供高层次信息,还深入探讨低层次问题,因此非常适合那些希望更深入地研究这一主题内容。
+
+
+## :globe_with_meridians: 计算机网络
+
+-[Andrew S. Tanenbaum - 计算机网络] (https:// www .amazon.com / Computer-Networks –5th–安德鲁·塔能鲍姆(Andrew-Tanenbaum) / dp / 0132126958)
+
+ 计算机网络理论基础上经典著作提供从物理层开始到数据传输协议结束之间详尽描述 。 对于紧密参与与网络交互项目中开发人员将极其有用。
+
+-[Victor Olifer –计算机网络:设计网络原则、技术和协议] ( https:// www .amazon.com / Computer-Networks –Principles–Technologies–Protocols-ebook / dp/B001GQ35P4)
+
+ 本书全面介绍计算机网络基础知识 ,可能比Tanenbaum工作呈现出略微更加复杂 。 因此 ,建议选择最适合您风格呈现信息 的图书
+
+[**返回**](Overview.md) | [**回到主页**](../../README.md)
\ No newline at end of file
diff --git a/Chinese/Books/Overview.md b/Chinese/Books/Overview.md
new file mode 100644
index 0000000..1655d83
--- /dev/null
+++ b/Chinese/Books/Overview.md
@@ -0,0 +1,12 @@
+# :books: 书籍和资源
+
+本指南提供了一系列适合不同难度水平学习C++的书籍。建议您确定自己当前的熟练程度,并选择相匹配的书籍。本指南的重点是提供对C++和软件开发的普遍理解,而不是涵盖专业主题。如果您正在寻找更具体的信息,建议向您感兴趣领域中的专家寻求帮助。
+
+- :blue_book: [PreJunior](PreJunior.md)
+- :green_book: [Junior](Junior.md)
+- :orange_book: [Middle](Middle.md)
+- :closed_book: [Senior](Senior.md)
+
+---
+
+[**返回主页**](../../README.md)
\ No newline at end of file
diff --git a/Chinese/Books/PreJunior.md b/Chinese/Books/PreJunior.md
new file mode 100644
index 0000000..9b5a020
--- /dev/null
+++ b/Chinese/Books/PreJunior.md
@@ -0,0 +1,42 @@
+# :alien: Pre-Junior
+## :innocent: 动机和经验
+- [查德·福勒 - 热情的程序员](https://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic-ebook/dp/B00AYQNR5U)
+ 这本书是初学者动机类书籍中的经典之作。查德·福勒分享了他成为专业程序员并在IT行业中导航的经验。
+
+## :bar_chart: 计算机科学
+- [弗雷拉菲略 - 计算机科学精髓:解决计算问题的艺术](https://www.amazon.com/Computer-Science-Distilled-Computational-Problems/dp/0997316020)
+ 该书全面概述了计算机科学中各种基本概念,包括数学、算法、数据库以及计算机硬件基础知识。它是发现和优先考虑领域兴趣点的理想起点。
+
+- [查尔斯佩茨奥尔德 - 编码:计算机硬件与软件隐藏语言](https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319)
+ 在开始C++研究之前,建议先阅读这本书。它提供了一个简单易懂的关于电脑如何工作的解释,避免复杂技术或理论方面。此书介绍的概念是基础性质,并将在未来保持相关性。它还有助于您更好地理解后来C++基本思想。这本书作为上一本深入探讨电脑运作方式补充资料。
+
+-[阿迪塔亚巴加瓦 - 理解数据结构:用Python描述](https://www.ituring.com.cn/book/tupubarticle/19709)
+ 该书对初学者介绍了常见数据结构(数组、链表、栈等)和排序方法(选择排序、归并排序等),同时使用Python代码进行实现演示,并且每个章节都附带习题,适合自主练习。
+
+-[Aditya Bhargava - Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People](https://www.amazon.com/Grokking-Algorithms-Illustrated-Python-Paperback/dp/B08K3T2YJN/ref=sr_1_4?dchild=1&keywords=grokking+algorithms&qid=1627589477&s=books&sr=1-
+4)
+ 该书为初学者提供了通俗易懂地介绍计算机科学中各种不同类型(搜索,图形,贪心等) 的常见高效率应用场景. 同时也包含大量可视化例子帮助读者更好得理解其中原理.
+
+## :pencil: C++
+
+- [Stephen Prata - C++ Primer Plus](https://www.amazon.com/Primer-Plus-6th-Developers-Library/dp/0321776402)
+
+ 这本书是C++世界中刚开始学习的人们的绝佳起点。无需先前知识即可入门。该书还包括一系列练习,可以帮助您获得实践经验和更深入地理解C++基础知识。
+
+- [Stanley Lippman - C++ Primer](https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113)
+
+ 这本书是上一本书的很好补充。建议与Prata的书并行使用,并找到两者之间的平衡,因为信息呈现方式不同。混合来自两本书的信息将有助于更好地理解语言的各个主题和方面。
+
+- [Andrew Koenig - Accelerated C++: Practical Programming by Example](https://www.amazon.com/Accelerated-C-Practical-Programming-Example/dp/020170353X)
+
+ 对于初学者而言,这本书是一个极佳选择。每章提供了对语言不同基础方面全面描述。完成每章后,读者都会得到一组练习来加强他们对所学内容的理解和掌握程度。该书涵盖了最基础、最重要、能够应用在未来新语言机制研究中最核心主题。
+
+## :electric_plug: 硬技能
+
+-[MSDN] (https://docs.microsoft.com/en-us/cpp/build/vscpp-step0-installation?view=msvc160)
+
+如果你刚开始学习编程, 建议在Microsoft Visual Studio(社区版)IDE 中进行实践和做练习. 它目前是针对初学者最友好易用性较高 IDE 之一, 而且完全免费!这将使您专注于语言而不被开发环境所困扰. MSDN 上提供了一个有用指南, 解释如何安装Visual Studio、创建第一个控制台项目以及实现第一个应用程序.
+
+---
+
+[**返回**](Overview.md)| [**回到首页**](../../README.md)
\ No newline at end of file
diff --git a/Chinese/Books/Senior.md b/Chinese/Books/Senior.md
new file mode 100644
index 0000000..9fccf23
--- /dev/null
+++ b/Chinese/Books/Senior.md
@@ -0,0 +1,49 @@
+# :smiling_imp: 高级
+
+## :pencil: C++
+
+- 对于高级学生,没有特定的书籍推荐。在这个层次上,假设您已经对C++的基础知识有很好的理解。唯一的挑战是要了解C++生态系统中最新标准、新功能和工具。
+
+## :muscle: 团队管理
+
+- [J. Hank Rainwater - Herding Cats:程序员领导程序员入门](https://www.amazon.com/Herding-Cats-Primer-Programmers-Lead/dp/1590590171)
+
+ 这本经典著作揭示了管理开发人员时出现的挑战。尽管该书某些方面可能已过时,但仍可作为学习管理程序员的良好起点。它的许多章节仍然相关,并提供初步了解人力资源管理方面内容,这对监督初级开发人员非常有帮助。
+
+- [Michael Lopp - Managing Humans:一个软件工程经理咬牙切齿而又幽默风趣地讲述故事](https://www.amazon.com/Managing-Humans-Humorous-Software-Engineering/dp/1484221575)
+
+ 本书阐明了领导者所面临的责任和挑战。它将帮助您培养像经理一样思考并理解那些处于管理职位上所面临问题所需技能。此知识可以帮助改善您、您的经理以及开发团队之间的沟通与协作。
+
+- [Frederick Brooks - 人月神话:关于软件工程论文集](https://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959)
+
+ 本书被认为是项目管理中不可或缺之物,并侧重于导致项目失败的错误。虽然部分过时,但对新手来说是一个避免犯常见错误良好起点。
+
+-[Tom DeMarco - 死线:关于项目管理小说](https://www.amazon.com/Deadline-Novel-about-project-management-ebook/dp/B006MN4RAS)
+
+ 这本小说讲述了一个经理在项目管理中所遇到日常体验, 是非常有用因为它以艺术形式传达了一个经理每天都会面临各种各样挑战性情况 。 它全面展示了一个经理每天都会遇到各种挑战性情况。
+
+-[Daniel Kahneman - 快思慢想](https://www.amazon.com/thinking-fast-and-slow-daniel-kahneman/dp /0374533555)
+
+ 关于人类思维逻辑谬误 的 经典著作必读. 它有助于通过考虑人类思维中存在认知偏差和扭曲来更加合乎逻辑地进行决策制定, 这是专业从事重大决策制定涉及到必备技能. 如果觉得这本书枯燥无味,则可以寻找其他探讨认知偏差主题 的 资料 。
+
+
+## :clipboard: 需求和软件架构
+
+- [Karl Wiegers - 软件需求](https://www.amazon.com/Software-Requirements-Developer-Best-Practices/dp/0735679665)
+ 这本书是一个优秀的资源,适用于任何参与收集和完善软件需求过程的人。它提供了如何有效地与经理、客户和开发人员沟通以收集要求,并将抽象的想法转化为具有明确定义限制的具体技术解决方案的指导。无论您是新手还是经验丰富的从业者,这本书都将是一份有价值的资源。
+
+- [Len Bass, Paul Clements, Rick Kazman - 实践中的软件架构](https://www.amazon.com/Software-Architecture-Practice-SEI-Engineering/dp/0136886094)
+ 一部关于软件设计中基础架构方法论方面工作经典著作,包含大型软件系统建设所需使用到各种传统架构模式及技巧。
+
+- [Mark Richards, Neal Ford - 软件架构基础:工程方法](https://www.amazon.com/Fundamentals-Software-Architecture-comprehensive-characteristics/dp/1492043451)
+ 该书概述了软件设计基本概念,并侧重于工程原则。它涵盖了诸如系统组成部分可靠性、可重复性和可预测性等主题,并提供了一种从工程角度看待软件设计问题并进行处理方式。
+
+- [Martin Fowler - 企业应用程序体系结构模式](https://www.amazon.com/Patterns-enterprise-application-Martin-Fowler/dp/B0000YSHTD/ref=sr_1_2?dchild=1&keywords=martin+fowler&qid=1627389477&s=books&sr=1-
+2)
+ 这本书全面介绍了不同建立公司系统所采取不同类型体系结构方法。 它涵盖广泛应用领域,从金融交易到文档管理,并旨在适用于各种复杂度和焦点范围内系统。无论您是否是经验丰富的软件工程师或刚开始进入该领域,这本书都可以成为创建强大而可扩展公司系统时非常有价值 的资源。
+
+- [Chris Richardson - 微服务模式] (https://www.amazon.com/Microservices-Patterns-examples-Chris-Richardson/dp/1617294543)
+ 对于那些想学习微服务体系结 构以及正在寻找建立可扩展且易维护系统方式 的开发人员和架 构师来说,这本书会很有用 。该书提供实际见解 和现实世界示例 ,以帮助读者理解如何 设计、 构建 和部署 基于微服务 的 系统 。无论你刚开始学习这个体系结 构 方法还 是想加深已有知识 , 这 本 书 都 可以 提供 宝贵 指 导 和 最佳 实 践 , 帮助 您 在项目 中 取得 成 功。
+---
+
+[**返回**](Overview.md)| [**回到主页**](../../README.md)
\ No newline at end of file
diff --git a/Chinese/CommunitySources.md b/Chinese/CommunitySources.md
new file mode 100644
index 0000000..a8601de
--- /dev/null
+++ b/Chinese/CommunitySources.md
@@ -0,0 +1,40 @@
+# :gem: 社区资源
+
+## :bookmark_tabs: C++ 通用
+
+- [CppReference](https://en.cppreference.com)
+- [CPlusPlus](https://www.cplusplus.com/reference)
+- [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines)
+- [Microsoft GSL C++ (Guidelines Support Library)](https://github.com/microsoft/GSL)
+- [News from the C++ Standardization Committee](https://isocpp.org/)
+- [C++ Online Compiler Explorer](https://gcc.godbolt.org)
+
+## :satellite: 流行的 C++ 会议
+
+- [C++ Russia](https://cppconf.ru/en)
+- [Cpp Con](https://cppcon.org/)
+- [Meeting C++](https://meetingcpp.com/)
+- [C++ Now](https://cppnow.org/)
+
+## :tv: C++ 会议 YouTube 频道
+
+- [C++ Russia](https://www.youtube.com/channel/UCJ9v015sPgEi0jJXe_zanjA)
+- [Cpp Con](https://www.youtube.com/user/CppCon)
+- [Meeting C++](https://www.youtube.com/user/MeetingCPP)
+- [C++ Now](https://www.youtube.com/user/BoostCon)
+
+## :exclamation: 学习 C++ 的可选资源
+
+- [Learncpp.com](https://www.learncpp.com/) - It is a free website devoted to teaching you how to program in C++. It's being updated regularly.
+- [Hackingcpp.com](https://hackingcpp.com/index.html) - The all-in-one web portal with diffenent collections of materials related to C++: books, cheat sheets, recordings from conferences, etc.
+- [Awesomecpp.com](https://awesomecpp.com) - The set of different sources about the C++.
+- [Cpp Con (back to basics)](https://www.youtube.com/playlist?list=PLHTh1InhhwT5o3GwbFYy3sR7HDNRA353e)
+
+## :star: 其他有趣的仓库
+
+- [现代C++语言和库特性速查表](https://github.com/AnthonyCalandra/modern-cpp-features)
+- [C++的库和框架集合](https://github.com/fffaraz/awesome-cpp)
+
+---
+
+[**To main page**](../README.md)
diff --git a/Chinese/FunCpp.md b/Chinese/FunCpp.md
new file mode 100644
index 0000000..4052b4e
--- /dev/null
+++ b/Chinese/FunCpp.md
@@ -0,0 +1,21 @@
+# :space_invader: C++ - 它并不是火箭科学
+
+现代C ++比通常认为的要简单得多。这种语言经过多年的发展,已经具备编写安全高效代码的能力。通过最新标准,无需担心内存泄漏问题。编译器也变得更加智能化,对您的代码执行大量优化以提供最佳性能。但是,仍然可以通过手动调整和技巧来优化代码。
+
+该语言主要缺点是缺乏标准软件包管理器。尽管有几个产品旨在填补这一空白,但迄今为止没有成功。
+
+此外,C ++ 遭受了自己范式“开发人员不支付他们不使用的内容”的影响,在实践中商业软件开发人员很少关注依赖项,导致相反情况出现:每次需要依赖项时都必须付费 。这会在项目构建期间产生“有趣”的副作用。尽管如此,这个问题也正在逐渐解决。
+
+要开始学习C ++ ,需要基本了解以下内容:
+- 算术
+- 布尔代数
+- 绘制流程图
+- 不同数字系统中数字表示法
+
+尽管历史悠久,现代C ++ 比以前简单得多。
+
+别害怕去学它吧!祝你好运!:dizzy:
+
+---
+
+[**返回主页**](../README.md)
\ No newline at end of file
diff --git a/Chinese/Grades/Junior.md b/Chinese/Grades/Junior.md
new file mode 100644
index 0000000..60b95fa
--- /dev/null
+++ b/Chinese/Grades/Junior.md
@@ -0,0 +1,33 @@
+# :yum: 初级C++
+
+## :question: 它是谁?
+
+初级开发人员具有软件开发的理论知识和个人或教育项目中少量实践经验。他们可能也对行业运作有一定的理论了解。初级开发人员可以在经验丰富的同事指导下,在真实项目中执行简单任务。
+
+## :computer: 期望具备哪些编码能力?
+
+- 能够阅读库、框架等文档
+- 能够收集并整合第三方库到项目中
+- 能够阅读和理解其他开发者编写的代码
+- 能够使用调试器或日志数据搜索并修复错误
+- 能够为代码编写测试
+- 具备Git基础知识和实际操作经验
+
+## :bust_in_silhouette: 期望具备哪些通用技能?
+
+- 快速学习能力
+- 独立在互联网、书籍等资源上查找信息的能力
+- 及时适当地向同事提问的能力
+- 在团队环境中有效工作的能力
+
+## :eyes: 提示与建议
+
+ - 尽量找到公司内热情洋溢、积极进取的小组,并加入其中,他们可以成为你获取知识和经验的来源。
+ - 不要犹豫,向更有经验的同事提问。没有愚蠢问题,只有不好回答。
+ - 不要过于沉迷于一个任务而耗费过长时间。如果尝试多次后仍无法取得进展,请立即寻求同事帮助。他们期望任务在合理时间内完成。你主要目标是解决问题,而不是给团队制造问题。
+ - 面对困难,在向导师寻求指导之前,请自己想出几种潜在解决方案。然后您导师可以调整或改善您提供 的解决方案。
+ - 初级开发人员常常会陷入认为撰写更多代码就意味着成为更好程序员这一误区。不要犯这个错误!你所写越多代码,则出错机率越大;最好将代码以便于六个月后再次返回时快速了解其功能方式进行编写 。优秀程序员不是那些撰写大量代码但毫无头绪地挥舞剑刃,而应像武士一样精确高效地交付打击。
+
+---
+
+[**返回**](Overview.md) | [**回到主页**](../../README.md)
\ No newline at end of file
diff --git a/Chinese/Grades/Middle.md b/Chinese/Grades/Middle.md
new file mode 100644
index 0000000..6a1c6e1
--- /dev/null
+++ b/Chinese/Grades/Middle.md
@@ -0,0 +1,47 @@
+# :sunglasses: 中级 C++
+
+## :question: 这是谁?
+
+这是一位开发人员,他了解软件开发的技术背景,并具有为应用程序或组件的功能创建设计和解决方案的能力。即使缺乏足够的需求,也可以创建设计。此人具有商业经验背景,并熟悉开发中常见的业务流程。
+
+总体而言,中级开发人员解决技术任务,并且相对于初级工程师来说,这个人可以在没有高级/首席工程师协助或仅需少量协助下完成工作。
+
+## :computer: 期望具备哪些编码能力?
+
+- 不再将编译器和编程语言视为“魔法盒子”,能够通过生成假设、验证并确认或拒绝它们来解决任何障碍或意外情况。
+- 深入理解 C++ 的基础概念以及其他编程语言的知识,并能进行比较。
+- 编写可读性强、可扩展性好、易于维护的代码。
+- 熟悉设计模式和原则,并能做出技术决策。
+- 清楚地了解 C++ 的技术背景,包括:
+ - 代码编写过程(如使用 IDE、文本编辑器和遵循最佳实践)
+ - 源代码和产品存储(如使用版本控制系统和包管理器)
+ - 编译(编译器、构建系统和库)
+ - 测试(测试框架和策略)
+ - 发货/部署以及在目标系统上执行。
+- 具有计算机科学基础知识,包括数据结构、图形、有限状态机和算法。
+
+## :bust_in_silhouette: 期望具备的通用技能
+
+- 能够根据个人技术知识和项目背景做出决策
+- 理解“足够好”的解决方案的概念,以防止过度设计
+- 具有团队合作精神
+- 能够与其他团队成员表达观点并分享意见
+- 具有使用各种方法论(如看板、敏捷/Scrum、瀑布等)的经验。
+- 愿意协助和支持其他团队成员。
+
+## :eyes: 提示和建议
+
+### :arrow_forward: 学习
+
+如果想成为高级开发人员,则提高软技能至关重要。技术专业知识变得次要,与他人建立关系并找到妥协的能力变得更加重要。优秀的开发人员不是写很多代码的人,而是知道如何在最小化损失的情况下有效地解决问题的人。理想情况下,您应该能够在不编写任何新代码甚至删除数十或数百行代码的情况下解决问题。
+中间角色是最具挑战性且难以掌握的。您必须同时专注于硬实力、软实力和业务问题解决。这意味着您需要同时集中注意两个方面。
+注重软技能可以增加您在市场上成为备受追捧职业者的机会。您可以选择专注于成为高度专业化开发人员并忽略软技能,但请记住此类专家并非总是供不应求,并且他们之间竞争极其激烈。如果你准备好与市场上最优秀的专家竞争,请继续前进。然而,我们仍然建议考虑多样化自己所拥有 的 技能。
+
+### :arrow_forward: 经验
+
+许多中级开发者陷入了成为某项技术、框架、设计模式或方法论“铁粉”的陷阱中 。在处理项目任务时更加务实非常重要 ,不能只是试图采纳最新思路来添加简历上 的 另一项 技 能 。 中间角色可能导致过度设计或频繁更改框架。
+如果认为库或框架对项目必需,则最好先与资深工程师或首席工程师进行讨论 。 建议创建一个“概念验证”, 在其中测试所有假设后再添加新依赖项 。 不要试图背着团队去做这件事 ,因为它可能会导致增加维护 成本 和未预料到 的 后果 。
+
+---
+
+[**返回**](Overview.md) | [**回到主页**](../../README.md)
\ No newline at end of file
diff --git a/Chinese/Grades/Overview.md b/Chinese/Grades/Overview.md
new file mode 100644
index 0000000..9b7a085
--- /dev/null
+++ b/Chinese/Grades/Overview.md
@@ -0,0 +1,26 @@
+# 开发者分级
+
+> 分级是一种根据开发人员的技能和经验进行分类的方法。通过分级,可以了解如何区分任务的难度以及处理它们所需的预期技能集。
+
+现在,您可以遇到以下常见的评分方法。 可以标记以下级别:
+- 初级;
+- 中间;
+- 高级。
+
+每个公司都有自己对开发人员评估和不同等级所声明的技能和责任视野。通常会遇到以下情况:您可能会在一家公司晋升为高级角色,但在另一家公司中被评估为中层开发人员。尽管如此,仍然可以针对每个等级引入共同期望。我们将使用先前描述过程来描述每个等级。
+
+**示例:** 您可以查看此网站以了解不同公司中关于定位系统知识:[levels.fyi](https://www.levels.fyi/)
+
+
+
+## 级别说明
+
+您可以阅读这些文章来了解每个水平及其公共期望:
+- :alien: [Pre-Junior C++](PreJunior.md)
+- :yum: [Junior C++](Junior.md)
+- :sunglasses: [Middle C++](Middle.md)
+- :smiling_imp: [Senior C++](Senior.md)
+
+---
+
+[**返回主页**](../../README.md)
\ No newline at end of file
diff --git a/Chinese/Grades/PreJunior.md b/Chinese/Grades/PreJunior.md
new file mode 100644
index 0000000..b7c6a81
--- /dev/null
+++ b/Chinese/Grades/PreJunior.md
@@ -0,0 +1,45 @@
+# :alien: 初级 C++
+
+## :question: 它是谁?
+
+它是一个熟悉语言语法并能够编写简单程序而不使用第三方库的人。该程序执行简单的过程,例如:
+- 算术运算
+- 文件操作:读取或写入
+- 等待键盘输入
+- 在控制台中显示结果或其他数据
+- 等等。
+
+## :computer: 期望具备哪些编码能力?
+
+- 使用 Visual Studio 或 Qt Creator 等 IDE 之一创建和构建小型工作 C++ 项目。
+- 通过 IDE 使用调试器。
+- 理解 C++ 程序的编译和链接过程。
+- 编写应用程序,利用算术和逻辑运算、条件语句和循环结构。
+- 编写使用标准输入/输出流的应用程序。
+- 操作指针和引用。
+- 了解应用程序中使用的内存类型。
+- 在 C++ 的上下文中理解基本面向对象编程,包括继承、多态性和封装。
+
+## :bust_in_silhouette: 期望具备哪些通用技能?
+
+ - 学习并获取新知识的愿望
+ - 解决遇到问题的愿望
+ - 使用搜索引擎或相关文献制定查询以找到问题解决方案的能力
+
+## :eyes: 提示与建议
+
+### :arrow_forward: 学习
+
+ - 没有一种方法可以帮助您在一天、一周或一个月内学会C ++。要做好长时间自我指导学习各种材料准备,在你准备好通过面试并获得第一个工作机会之前需要这样做。
+ - 如果发现自己不理解某个主题,请寻找替代资源。
+ - 只有实践才能让你精通C ++!如果没有经常进行编码,大部分所读所听都将被遗忘。
+ - 不要试图编写完美代码。您最初的目标是编写可正常工作且符合要求的代码。您需要学会如何与计算机交互,这类似于学习外语。起初,你可能说话不清楚,但随着技能提高,你将更好地理解语法、扩展词汇量等等 。
+ - 不要立即尝试处理庞大问题(例如创建自己游戏)。刚开始时, 您可能缺少处理任务所需知识和经验, 这种方法很容易变得令人沮丧,并对自己及其技能产生失望感, 导致放弃教育. 最好从简单到复杂逐步挑战自己,并逐渐增加困难任务来提高水平.
+
+### :arrow_forward: 英语语言
+- 在英语中寻找解决方案更容易,但如果你的英语水平不够强,请不要过于勉强自己。这可能会很快导致灰心丧气。在开始阶段,你遇到的大多数问题都可以用母语解决。
+- 如果你觉得自己的英语水平还不够好,可以通过更有趣的方式来提高:看电视剧、玩视频游戏、读小说或者阅读感兴趣的新闻媒体或文章。几个月后,你应该能够提高自己的英文理解能力。
+
+---
+
+[**返回**](Overview.md) | [**回到主页**](../../README.md)
diff --git a/Chinese/Grades/Senior.md b/Chinese/Grades/Senior.md
new file mode 100644
index 0000000..e976762
--- /dev/null
+++ b/Chinese/Grades/Senior.md
@@ -0,0 +1,26 @@
+# :smiling_imp: 高级C++
+
+## :question: 它是谁?
+
+它是一位不仅了解技术方面,还了解业务背景的开发人员。他们能够考虑到两者,为组件、应用程序或系统创建设计和解决方案。此外,高级人员帮助其他团队成员成长,并跟上软件开发领域的最新发展和趋势。
+
+## :computer: 期望具备哪些编码能力?
+
+- 能够将业务语言转化为开发语言并分解任务
+- 能够与业务进行对话,并向非技术利益相关者解释技术细节和难点
+- 不仅能做出设计决策,还能创建组件和应用程序架构
+- 理解并使用架构原则。
+
+## :bust_in_silhouette: 期望具备哪些通用技能?
+
+- 出色的沟通技巧
+- 如有必要,独立收集需求
+- 协助团队成员的发展
+
+## :eyes: 提示和建议
+
+根据公司特定情况及个人目标,在您选择的专业领域内获取最新技术和技能(例如数学、物理等专门领域 - 技术专家之路),或在管理和人际互动领域(如技术主管、团队负责人、项目经理等)寻找进一步职业发展道路。明智地选择吧. 🙂
+
+---
+
+[**返回**](Overview.md) | [**回到主页**](../../README.md)
\ No newline at end of file
diff --git a/Chinese/Grades/Source/GradeTable.PNG b/Chinese/Grades/Source/GradeTable.PNG
new file mode 100644
index 0000000..42fc267
Binary files /dev/null and b/Chinese/Grades/Source/GradeTable.PNG differ
diff --git a/Chinese/Graph/README.md b/Chinese/Graph/README.md
new file mode 100644
index 0000000..c92432e
--- /dev/null
+++ b/Chinese/Graph/README.md
@@ -0,0 +1,7 @@
+# 如何查看和修改GraphML格式的路线图
+
+GraphML是一种基于XML的图形文件格式。许多应用程序都支持它进行查看。
+
+例如,您可以使用[yEd](https://www.yworks.com/products/yed)来查看graphML文件并根据需要进行修改。
+
+
diff --git a/Chinese/Graph/example.png b/Chinese/Graph/example.png
new file mode 100644
index 0000000..ed7e28d
Binary files /dev/null and b/Chinese/Graph/example.png differ
diff --git a/Chinese/Graph/roadmap.graphml b/Chinese/Graph/roadmap.graphml
new file mode 100644
index 0000000..f24e6a4
--- /dev/null
+++ b/Chinese/Graph/roadmap.graphml
@@ -0,0 +1,9762 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ C++ developer
+
+
+
+
+
+
+
+
+
+
+
+ Soft skills
+
+
+
+
+
+
+
+
+
+
+
+ Hard skills
+
+
+
+
+
+
+
+
+
+
+ At first, some of the skills may seem impossible to
+develop. However, we think differently. It is possible to
+work on each of the skills. Everything depends on your
+desire and internal blocks. Everything is individual, and
+it's up to you to decide. :)
+
+
+
+
+
+
+
+
+
+
+ Ability to learn
+
+
+
+
+
+
+
+
+
+
+ Manage mistakes
+
+
+
+
+
+
+
+
+
+
+ Thinking
+
+
+
+
+
+
+
+
+
+
+ Responsibility
+
+
+
+
+
+
+
+
+
+
+ Manage resources
+
+
+
+
+
+
+
+
+
+
+ Communication
+
+
+
+
+
+
+
+
+
+
+ Team work
+
+
+
+
+
+
+
+
+
+
+ Emotional intelligence
+
+
+
+
+
+
+
+
+
+
+ Understanding the development context
+
+
+
+
+
+
+
+
+
+
+ Customer focus
+
+
+
+
+
+
+
+
+
+
+ Technology
+
+
+
+
+
+
+
+
+
+
+ Trends
+
+
+
+
+
+
+
+
+
+
+ Empathy
+
+
+
+
+
+
+
+
+
+
+ Concentration
+
+
+
+
+
+
+
+
+
+
+ Open-mindedness
+
+
+
+
+
+
+
+
+
+
+ Adaptability
+
+
+
+
+
+
+
+
+
+
+ Stress resistance
+
+
+
+
+
+
+
+
+
+
+ Working in uncertainty
+
+
+
+
+
+
+
+
+
+
+ Understanding the distribution of roles in a team
+
+
+
+
+
+
+
+
+
+
+ Support team members
+
+
+
+
+
+
+
+
+
+
+ Work in a distributed team
+
+
+
+
+
+
+
+
+
+
+ Providing feedback
+
+
+
+
+
+
+
+
+
+
+ Leadership
+
+
+
+
+
+
+
+
+
+
+ Mentoring
+
+
+
+
+
+
+
+
+
+
+ Delegation
+
+
+
+
+
+
+
+
+
+
+ Assigning and clarifying tasks to employees
+
+
+
+
+
+
+
+
+
+
+ Planning and goal setting
+
+
+
+
+
+
+
+
+
+
+ Negotiation
+
+
+
+
+
+
+
+
+
+
+ English
+
+
+
+
+
+
+
+
+
+
+ Presentation
+
+
+
+
+
+
+
+
+
+
+ Written communication skill
+
+
+
+
+
+
+
+
+
+
+ Networking
+
+
+
+
+
+
+
+
+
+
+ Ability to listen
+
+
+
+
+
+
+
+
+
+
+ Persuasion
+
+
+
+
+
+
+
+
+
+
+ Ability to communicate ideas and thoughts within the team
+
+
+
+
+
+
+
+
+
+
+ Finding compromises
+
+
+
+
+
+
+
+
+
+
+ Dispute resolution
+
+
+
+
+
+
+
+
+
+
+ Providing information to people outside the team
+
+
+
+
+
+
+
+
+
+
+ Time management
+
+
+
+
+
+
+
+
+
+
+ Prioritization
+
+
+
+
+
+
+
+
+
+
+ Taking decisions
+
+
+
+
+
+
+
+
+
+
+ Blind typing
+
+
+
+
+
+
+
+
+
+
+ Multitasking
+
+
+
+
+
+
+
+
+
+
+ Discipline
+
+
+
+
+
+
+
+
+
+
+ Persistence
+
+
+
+
+
+
+
+
+
+
+ Initiative
+
+
+
+
+
+
+
+
+
+
+ Independence
+
+
+
+
+
+
+
+
+
+
+ Problem solving
+
+
+
+
+
+
+
+
+
+
+ Logical
+
+
+
+
+
+
+
+
+
+
+ Critical
+
+
+
+
+
+
+
+
+
+
+ Creative
+
+
+
+
+
+
+
+
+
+
+ Strategic
+
+
+
+
+
+
+
+
+
+
+ Systems
+
+
+
+
+
+
+
+
+
+
+ Accept criticism
+
+
+
+
+
+
+
+
+
+
+ Notify about mistakes in time
+
+
+
+
+
+
+
+
+
+
+ Admitting your mistakes
+
+
+
+
+
+
+
+
+
+
+ Analyze mistakes
+
+
+
+
+
+
+
+
+
+
+ Ask the right questions
+
+
+
+
+
+
+
+
+
+
+ Experimenting
+
+
+
+
+
+
+
+
+
+
+ Manage knowledge
+
+
+
+
+
+
+
+
+
+
+ Process information
+
+
+
+
+
+
+
+
+
+
+ Ability to gather, analyze, evaluate
+information and make decisions
+based on it.
+
+
+
+
+
+
+
+
+
+
+ Reflection
+
+
+
+
+
+
+
+
+
+
+ Calmly react to what people say. Most likely that they
+only consider their own context when they try to prove
+something. This is fine. Evaluate the usefulness of their
+point of view.
+
+
+
+
+
+
+
+
+
+
+ Take challenging tasks in order to develop your skills and
+competencies, even when there is not enough
+knowledge/experience (skills will develop much faster
+through such tasks). The main thing is to distinguish a
+really useful complex task that will help you to boost your
+skills from a dumb task that requires a scapegoat.
+
+
+
+
+
+
+
+
+
+
+ You should be responsible for your professional development. Don't wait
+for the team lead to decide for you what to study. Do not forget that blind
+adherence to someone else's plan will sharpen your skills according to
+requirements of a particular company. It is better to discuss and build in
+your interests into the plan. If this is not done, there is a high risk of getting
+irrelevant skills, which will hit career opportunities. But don't overdo it: don't
+study absolutely everything or don't passively wait until a development plan
+will be created for you.
+
+
+
+
+
+
+
+
+
+
+ Self-organization
+
+
+
+
+
+
+
+
+
+
+ The ability to provide the amount of information that is
+necessary to communicate to people with different
+backgrounds.
+
+
+
+
+
+
+
+
+
+
+ Conflict solving
+
+
+
+
+
+
+
+
+
+
+ If you read this it means you already understand why it is so
+important :)
+
+Usually, it is required at least to read because you would need to
+understand technical documentation. But as you move up the career
+ladder, you will need to speak and write more confidently in English.
+
+
+
+
+
+
+
+
+
+
+ Look for like-minded people and join/create a community for
+experience exchange.
+
+
+
+
+
+
+
+
+
+
+ You should study and observe contemporary trends to be
+competitive, as well as being able to adapt to them.
+
+
+
+
+
+
+
+
+
+
+ Experienced developers should develop management skills and business
+communication skills to complete tasks efficiently. It is easier to do if you
+have developed emotional intelligence. For a junior developer, the skill is
+also useful to better interact with colleagues.
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1 step
+
+
+
+
+
+
+
+
+
+ Folder 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Basic operations
+
+
+
+
+
+
+
+
+
+
+ Arithmetic operations
+
+
+
+
+
+
+
+
+
+
+ Loops: for/while
+
+
+
+
+
+
+
+
+
+
+ Logical operations
+
+
+
+
+
+
+
+
+
+
+ Bitwise operations
+
+
+
+
+
+
+
+
+
+
+ Functions
+
+
+
+
+
+
+
+
+
+
+ lambda
+
+
+
+
+
+
+
+
+
+
+ Operators
+
+
+
+
+
+
+
+
+
+
+ Data types
+
+
+
+
+
+
+
+
+
+
+ Dynamic typing
+
+
+
+
+
+
+
+
+
+
+ Static typing
+
+
+
+
+
+
+
+
+
+
+ RTTI
+
+
+
+
+
+
+
+
+
+
+ Pointers & References
+
+
+
+
+
+
+
+
+
+
+ Codebase structuring
+
+
+
+
+
+
+
+
+
+
+ References
+
+
+
+
+
+
+
+
+
+
+ Memory model
+
+
+
+
+
+
+
+
+
+
+ Smart pointer
+
+
+
+
+
+
+
+
+
+
+ Raw pointers
+
+
+
+
+
+
+
+
+
+
+ Code splitting into headers/cpp files
+
+
+
+
+
+
+
+
+
+
+ Scope
+
+
+
+
+
+
+
+
+
+
+ Memory leakage
+
+
+
+
+
+
+
+
+
+
+ Forward declaration
+
+
+
+
+
+
+
+
+
+
+ unique_ptr
+
+
+
+
+
+
+
+
+
+
+ shared_ptr
+
+
+
+
+
+
+
+
+
+
+ Lifetime of objects
+
+
+
+
+
+
+
+
+
+
+ new/delete operators
+
+
+
+
+
+
+
+
+
+
+ weak_ptr
+
+
+
+
+
+
+
+
+
+
+ Namespaces
+
+
+
+
+
+
+
+
+
+
+ The overloading of regular set of operators for
+regular or custom types (structures/classes).
+
+
+
+
+
+
+
+
+
+
+ To prevent memory leakage problems it is better
+to use smart pointers rather than raw pointers.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2 step
+
+
+
+
+
+
+
+
+
+ Folder 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Structures and classes
+
+
+
+
+
+
+
+
+
+
+ Exception handling
+
+
+
+
+
+
+
+
+
+
+ Overloading of functions
+
+
+
+
+
+
+
+
+
+
+ Virtual table (vtbl)
+
+
+
+
+
+
+
+
+
+
+ Object Oriented programming (OOP)
+
+
+
+
+
+
+
+
+
+
+ Exceptions
+
+
+
+
+
+
+
+
+
+
+ Access violation
+
+
+
+
+
+
+
+
+
+
+ Dynamic polymorphism
+
+
+
+
+
+
+
+
+
+
+ Virtual methods
+
+
+
+
+
+
+
+
+
+
+ The rule of zero/three/five
+
+
+
+
+
+
+
+
+
+
+ Static polymorphism
+
+
+
+
+
+
+
+
+
+
+ Multiple inheritance
+
+
+
+
+
+
+
+
+
+
+ Diamond inheritance
+
+
+
+
+
+
+
+
+
+
+ Error codes
+
+
+
+
+
+
+
+
+
+
+ It's preferred to avoid multiple inheritance
+(excepting abstract classes) to prevent
+runtime issues
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3 step
+
+
+
+
+
+
+
+
+
+ Folder 3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ auto (automatic type deduction)
+
+
+
+
+
+
+
+
+
+
+ Language concepts
+
+
+
+
+
+
+
+
+
+
+ type casting
+
+
+
+
+
+
+
+
+
+
+ static_cast
+
+
+
+
+
+
+
+
+
+
+ const_cast
+
+
+
+
+
+
+
+
+
+
+ dynamic_cast
+
+
+
+
+
+
+
+
+
+
+ reinterpret_cast
+
+
+
+
+
+
+
+
+
+
+ Undefined Behavior (UB)
+
+
+
+
+
+
+
+
+
+
+ Argument-dependent lookup (ADL)
+
+
+
+
+
+
+
+
+
+
+ Macros
+
+
+
+
+
+
+
+
+
+
+ Name mangling
+
+
+
+
+
+
+
+
+
+
+ Standard library + STL
+
+
+
+
+
+
+
+
+
+
+ iostream
+
+
+
+
+
+
+
+
+
+
+ Algorithms
+
+
+
+
+
+
+
+
+
+
+ Iterators
+
+
+
+
+
+
+
+
+
+
+ Containers
+
+
+
+
+
+
+
+
+
+
+ Date/time
+
+
+
+
+
+
+
+
+
+
+ Multithreading
+
+
+
+
+
+
+
+
+
+
+ Some of language constructions have non-declared behavior according to
+the ISO standard. In case of any error, it's not possible to predict further
+behavior. It depends on a platform environment, runtime context, etc.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4 step
+
+
+
+
+
+
+
+
+
+ Folder 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Templates
+
+
+
+
+
+
+
+
+
+
+ Variadic templates
+
+
+
+
+
+
+
+
+
+
+ The template specialization
+
+
+
+
+
+
+
+
+
+
+ type traits
+
+
+
+
+
+
+
+
+
+
+ SFINAE
+
+
+
+
+
+
+
+
+
+
+ The full template specialization
+
+
+
+
+
+
+
+
+
+
+ The partial template specialization
+
+
+
+
+
+
+
+
+
+
+ RAII
+
+
+
+
+
+
+
+
+
+
+ pimpl
+
+
+
+
+
+
+
+
+
+
+ Erase-Remove
+
+
+
+
+
+
+
+
+
+
+ Non-Copyable/Non-Moveable
+
+
+
+
+
+
+
+
+
+
+ Copy and swap
+
+
+
+
+
+
+
+
+
+
+ Copy on write
+
+
+
+
+
+
+
+
+
+
+ CRTP
+
+
+
+
+
+
+
+
+
+
+ Standards
+
+
+
+
+
+
+
+
+
+
+ C++11/14
+
+
+
+
+
+
+
+
+
+
+ C++17
+
+
+
+
+
+
+
+
+
+
+ C++20
+
+
+
+
+
+
+
+
+
+
+ newest
+
+
+
+
+
+
+
+
+
+
+ C++0x
+
+
+
+
+
+
+
+
+
+
+ Idioms
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1 step
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Folder 5
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Working with source code
+
+
+
+
+
+
+
+
+
+
+ Text editors
+
+
+
+
+
+
+
+
+
+
+ IDE
+
+
+
+
+
+
+
+
+
+
+ Code editors
+
+
+
+
+
+
+
+
+
+
+ Debugger
+
+
+
+
+
+
+
+
+
+
+ Linters
+
+
+
+
+
+
+
+
+
+
+ Knowledge of features and abilities (shortcuts, tools, plugins)
+
+
+
+
+
+
+
+
+
+
+ Understanding of debugger messages
+
+
+
+
+
+
+
+
+
+
+ Debugging symbols
+
+
+
+
+
+
+
+
+
+
+ WinDbg
+
+
+
+
+
+
+
+
+
+
+ GDB
+
+
+
+
+
+
+
+
+
+
+ Choose one of the popular IDEs and study it well:
+Eclipse, MS Visual Studio, Qt Creator, JetBrains Clion,
+XCode, etc.
+
+
+
+
+
+
+
+
+
+
+ Study how to use a debugger and all its features
+
+
+
+
+
+
+
+
+
+
+ Choose one of the popular editors and study it well.
+For example: Notepad++, Atom, etc.
+
+
+
+
+
+
+
+
+
+
+ The ability to work with a debugger via command line is a not
+common skill. It's sufficient to work with it via IDE. For example:
+set conditional breakpoints, etc.
+
+
+
+
+
+
+
+
+
+
+ Learn about common errors (segfault, out of memory,
+access violation) and undefined behavior concept.
+
+
+
+
+
+
+
+
+
+
+ Choose one of the popular editors and study it well. For
+example: Visual Code, Atom, Sublime Text, etc.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 3 step
+
+
+
+
+
+
+
+
+
+ Folder 6
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Compilers
+
+
+
+
+
+
+
+
+
+
+ Basic understanding of compilers stages
+
+
+
+
+
+
+
+
+
+
+ Compilation of sources to object files (compilation)
+
+
+
+
+
+
+
+
+
+
+ The object files linkage (linking)
+
+
+
+
+
+
+
+
+
+
+ Working stages of compilers
+
+
+
+
+
+
+
+
+
+
+ Features of a particular compiler
+
+
+
+
+
+
+
+
+
+
+ Each compiler has its nuances. It's
+good to know about them to prevent getting any trap:
+Clang++/LLVM, Intel C++, MSVS C++, GCC, MinGW
+
+
+
+
+
+
+
+
+
+
+ The compiler performs several stages of code compilation.
+It's good to know about all of them to better understand
+compilation issues. Deep knowledge is needed for compiler
+creators only.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 5 step
+
+
+
+
+
+
+
+
+
+ Folder 7
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Build systems
+
+
+
+
+
+
+
+
+
+
+ CMake
+
+
+
+
+
+
+
+
+
+
+ Makefile
+
+
+
+
+
+
+
+
+
+
+ ninja
+
+
+
+
+
+
+
+
+
+
+ Package managers
+
+
+
+
+
+
+
+
+
+
+ vcpkg
+
+
+
+
+
+
+
+
+
+
+ spack
+
+
+
+
+
+
+
+
+
+
+ Conan
+
+
+
+
+
+
+
+
+
+
+ nuget
+
+
+
+
+
+
+
+
+
+
+ Libraries
+
+
+
+
+
+
+
+
+
+
+ boost
+
+
+
+
+
+
+
+
+
+
+ opencv
+
+
+
+
+
+
+
+
+
+
+ poco
+
+
+
+
+
+
+
+
+
+
+ Libraries inclusion
+
+
+
+
+
+
+
+
+
+
+ protobuf
+
+
+
+
+
+
+
+
+
+
+ gRPC
+
+
+
+
+
+
+
+
+
+
+ fmt
+
+
+
+
+
+
+
+
+
+
+ pybindll
+
+
+
+
+
+
+
+
+
+
+ spdlog
+
+
+
+
+
+
+
+
+
+
+ ranges_v3
+
+
+
+
+
+
+
+
+
+
+ tensorflow
+
+
+
+
+
+
+
+
+
+
+ opencl
+
+
+
+
+
+
+
+
+
+
+ Frameworks
+
+
+
+
+
+
+
+
+
+
+ gtest/gmock
+
+
+
+
+
+
+
+
+
+
+ Qt
+
+
+
+
+
+
+
+
+
+
+ catch2
+
+
+
+
+
+
+
+
+
+
+ google profiler
+
+
+
+
+
+
+
+
+
+
+ pytorch c++
+
+
+
+
+
+
+
+
+
+
+ Working
+ with libraries
+
+
+
+
+
+
+
+
+
+
+ Licensing
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1 step
+
+
+
+
+
+
+
+
+
+ Folder 8
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Computers Science
+
+
+
+
+
+
+
+
+
+
+ Data structures
+
+
+
+
+
+
+
+
+
+
+ Algorithms
+
+
+
+
+
+
+
+
+
+
+ Boolean algebra
+
+
+
+
+
+
+
+
+
+
+ Finite-state machines
+
+
+
+
+
+
+
+
+
+
+ It's also good to know how to calculate algorithm complexity
+and memory consumption.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 4 step
+
+
+
+
+
+
+
+
+
+ Folder 9
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Version control software
+
+
+
+
+
+
+
+
+
+
+ Distributed
+
+
+
+
+
+
+
+
+
+
+ Centralized
+
+
+
+
+
+
+
+
+
+
+ SVN
+
+
+
+
+
+
+
+
+
+
+ git
+
+
+
+
+
+
+
+
+
+
+ Mercurial
+
+
+
+
+
+
+
+
+
+
+ Best practices
+
+
+
+
+
+
+
+
+
+
+ Code quality
+
+
+
+
+
+
+
+
+
+
+ Code guidelines
+
+
+
+
+
+
+
+
+
+
+ Principles of development
+
+
+
+
+
+
+
+
+
+
+ KISS (Keep It Simple, Stupid)
+
+
+
+
+
+
+
+
+
+
+ DRY (Don't Repeat Yourself)
+
+
+
+
+
+
+
+
+
+
+ YAGNI (You Aren't Gonna Need It)
+
+
+
+
+
+
+
+
+
+
+ APO (Avoid Premature Optimization)
+
+
+
+
+
+
+
+
+
+
+ BDUF (Big Design Up Front)
+
+
+
+
+
+
+
+
+
+
+ Composition is preferably than the inheritance
+
+
+
+
+
+
+
+
+
+
+ Occam's razor
+
+
+
+
+
+
+
+
+
+
+ Divide and Conquer
+
+
+
+
+
+
+
+
+
+
+ Logging and telemetry
+
+
+
+
+
+
+
+
+
+
+ Code review
+
+
+
+
+
+
+
+
+
+
+ Skill to read existing code sources
+
+
+
+
+
+
+
+
+
+
+ Skill to review code
+
+
+
+
+
+
+
+
+
+
+ Lifecycle stages of a software
+
+
+
+
+
+
+
+
+
+
+ Implementation
+
+
+
+
+
+
+
+
+
+
+ Testing
+
+
+
+
+
+
+
+
+
+
+ Maintanance
+
+
+
+
+
+
+
+
+
+
+ Versioning
+
+
+
+
+
+
+
+
+
+
+ Unit tests
+
+
+
+
+
+
+
+
+
+
+ Integration tests
+
+
+
+
+
+
+
+
+
+
+ Functional tests
+
+
+
+
+
+
+
+
+
+
+ Performance tests
+
+
+
+
+
+
+
+
+
+
+ Software architecture and components design
+
+
+
+
+
+
+
+
+
+
+ Components integration
+
+
+
+
+
+
+
+
+
+
+ Deployment
+
+
+
+
+
+
+
+
+
+
+ Collecting requirements
+
+
+
+
+
+
+
+
+
+
+ End of a software lifecycle
+
+
+
+
+
+
+
+
+
+
+ Code analyzers
+
+
+
+
+
+
+
+
+
+
+ Static analyzers
+
+
+
+
+
+
+
+
+
+
+ Dynamic analyzers
+
+
+
+
+
+
+
+
+
+
+ Profilers
+
+
+
+
+
+
+
+
+
+
+ C++ core guidelines
+
+
+
+
+
+
+
+
+
+
+ Industrial standards
+
+
+
+
+
+
+
+
+
+
+ MISRA
+
+
+
+
+
+
+
+
+
+
+ Autosar
+
+
+
+
+
+
+
+
+
+
+ Command line
+
+
+
+
+
+
+
+
+
+
+ batch
+
+
+
+
+
+
+
+
+
+
+ Powershell
+
+
+
+
+
+
+
+
+
+
+ bash
+
+
+
+
+
+
+
+
+
+
+ CI/CD
+
+
+
+
+
+
+
+
+
+
+ Trunk Based Development
+
+
+
+
+
+
+
+
+
+
+ Zero downtime deployment
+
+
+
+
+
+
+
+
+
+
+ Creation of a software deployment package
+
+
+
+
+
+
+
+
+
+
+ Documentation
+
+
+
+
+
+
+
+
+
+
+ Installer package
+
+
+
+
+
+
+
+
+
+
+ Usage of other programming languages
+
+
+
+
+
+
+
+
+
+
+ Language interoperability
+
+
+
+
+
+
+
+
+
+
+ Naming conventions, tabs vs spaces, etc.
+
+
+
+
+
+
+
+
+
+
+ To configure automated code formatting verification with one of
+the suitable utilities: clang-format, Resharper - code style,
+MSVS - code style.
+
+
+
+
+
+
+
+
+
+
+ - Scripting
+- Functional
+- SQL like
+- NoSQL
+
+
+
+
+
+
+
+
+
+
+ Sometimes it's needed to provide an ability to reuse a library written in
+a different language from another one. For example: to call C++
+libraries in C#.
+
+
+
+
+
+
+
+
+
+
+ Backward compatibility
+
+
+
+
+
+
+
+
+
+
+ Do not ignore warnings from compiler and static analyzer.
+They are your friends, not enemies
+
+
+
+
+
+
+
+
+
+
+ Microsoft GSL
+
+
+
+
+
+
+
+
+
+
+
+
+ Software design
+
+
+
+
+
+
+
+
+
+
+ Architecture styles
+
+
+
+
+
+
+
+
+
+
+ Component-based
+
+
+
+
+
+
+
+
+
+
+ Monolithic application
+
+
+
+
+
+
+
+
+
+
+ Layered
+
+
+
+
+
+
+
+
+
+
+ Client-server
+
+
+
+
+
+
+
+
+
+
+ Microservices architecture
+
+
+
+
+
+
+
+
+
+
+ Event-driven
+
+
+
+
+
+
+
+
+
+
+ Plug-ins
+
+
+
+
+
+
+
+
+
+
+ REST
+
+
+
+
+
+
+
+
+
+
+ Service-oriented architecture
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 2 step
+
+
+
+
+
+
+
+
+
+ Folder 10
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Design Patters (GoF)
+
+
+
+
+
+
+
+
+
+
+ Behavioral
+
+
+
+
+
+
+
+
+
+
+ Structural
+
+
+
+
+
+
+
+
+
+
+ Creational
+
+
+
+
+
+
+
+
+
+
+ OOP
+
+
+
+
+
+
+
+
+
+
+
+ SOLID
+
+
+
+
+
+
+
+
+
+
+ UML
+
+
+
+
+
+
+
+
+
+
+
+
+ Architecture patterns
+
+
+
+
+
+
+
+
+
+
+ MVC
+
+
+
+
+
+
+
+
+
+
+ MVVM
+
+
+
+
+
+
+
+
+
+
+ Three-tier
+
+
+
+
+
+
+
+
+
+
+ Onion
+
+
+
+
+
+
+
+
+
+
+ Hexagon
+
+
+
+
+
+
+
+
+
+
+ Methodologies of development
+
+
+
+
+
+
+
+
+
+
+ Test Driven Development
+
+
+
+
+
+
+
+
+
+
+ Behavior Driven Development
+
+
+
+
+
+
+
+
+
+
+ Domain Driven Design
+
+
+
+
+
+
+
+
+
+
+ Memory
+
+
+
+
+
+
+
+
+
+
+ Memory abstractions
+
+
+
+
+
+
+
+
+
+
+ Memory alignment
+
+
+
+
+
+
+
+
+
+
+ Memory management
+
+
+
+
+
+
+
+
+
+
+ Binary units
+
+
+
+
+
+
+
+
+
+
+ Executable file
+
+
+
+
+
+
+
+
+
+
+ Static library
+
+
+
+
+
+
+
+
+
+
+ Dynamic library
+
+
+
+
+
+
+
+
+
+
+ Stack
+
+
+
+
+
+
+
+
+
+
+ Global memory
+
+
+
+
+
+
+
+
+
+
+ Heap
+
+
+
+
+
+
+
+
+
+
+ Application memory
+
+
+
+
+
+
+
+
+
+
+ Virtual memory
+
+
+
+
+
+
+
+
+
+
+ Operating systems
+
+
+
+
+
+
+
+
+
+
+ Multithreading
+
+
+
+
+
+
+
+
+
+
+ Errors
+
+
+
+
+
+
+
+
+
+
+ Dead lock
+
+
+
+
+
+
+
+
+
+
+ Race condition
+
+
+
+
+
+
+
+
+
+
+ Live lock
+
+
+
+
+
+
+
+
+
+
+ Starvation
+
+
+
+
+
+
+
+
+
+
+ Threads
+
+
+
+
+
+
+
+
+
+
+ Concurrency
+
+
+
+
+
+
+
+
+
+
+ Mutexes
+
+
+
+
+
+
+
+
+
+
+ Semaphores
+
+
+
+
+
+
+
+
+
+
+ lock-free
+
+
+
+
+
+
+
+
+
+
+ Event handling
+
+
+
+
+
+
+
+
+
+
+ Sync
+
+
+
+
+
+
+
+
+
+
+ Async
+
+
+
+
+
+
+
+
+
+
+ Process
+
+
+
+
+
+
+
+
+
+
+ Interprocess communication
+
+
+
+
+
+
+
+
+
+
+ Shared memory
+
+
+
+
+
+
+
+
+
+
+ Pipes
+
+
+
+
+
+
+
+
+
+
+ Serialization
+
+
+
+
+
+
+
+
+
+
+ json
+
+
+
+
+
+
+
+
+
+
+ XML
+
+
+
+
+
+
+
+
+
+
+ Network
+
+
+
+
+
+
+
+
+
+
+ TCP/IP
+
+
+
+
+
+
+
+
+
+
+ OSI
+
+
+
+
+
+
+
+
+
+
+ Sockets
+
+
+
+
+
+
+
+
+
+
+ HTTP
+
+
+
+
+
+
+
+
+
+
+ TCP
+
+
+
+
+
+
+
+
+
+
+ UDP
+
+
+
+
+
+
+
+
+
+
+ File system
+
+
+
+
+
+
+
+
+
+
+ Task scheduler
+
+
+
+
+
+
+
+
+
+
+ Virtualization
+
+
+
+
+
+
+
+
+
+
+ VirtualBox
+
+
+
+
+
+
+
+
+
+
+ VMware Workstation
+
+
+
+
+
+
+
+
+
+
+ Containers
+
+
+
+
+
+
+
+
+
+
+ Hyper-V
+
+
+
+
+
+
+
+
+
+
+ Docker
+
+
+
+
+
+
+
+
+
+
+ Cloud Services
+
+
+
+
+
+
+
+
+
+
+ Kubernetes
+
+
+
+
+
+
+
+
+
+
+ Security
+
+
+
+
+
+
+
+
+
+
+ Encryption
+
+
+
+
+
+
+
+
+
+
+ MultiCPU systems
+
+
+
+
+
+
+
+
+
+
+ Multicore CPU
+
+
+
+
+
+
+
+
+
+
+ NUMA
+
+
+
+
+
+
+
+
+
+
+ Input/output
+
+
+
+
+
+
+
+
+
+
+ Drivers
+
+
+
+
+
+
+
+
+
+
+ Audio
+
+
+
+
+
+
+
+
+
+
+ Graphics
+
+
+
+
+
+
+
+
+
+
+ Printers (printing)
+
+
+
+
+
+
+
+
+
+
+ DirectSound
+
+
+
+
+
+
+
+
+
+
+ OpenAL
+
+
+
+
+
+
+
+
+
+
+ DirectX
+
+
+
+
+
+
+
+
+
+
+ Vulkan
+
+
+
+
+
+
+
+
+
+
+ OpenGL
+
+
+
+
+
+
+
+
+
+
+ CUDA
+
+
+
+
+
+
+
+
+
+
+ Common skills
+
+
+
+
+
+
+
+
+
+
+ Language tools
+
+
+
+
+
+
+
+
+
+
+ Language syntax
+
+
+
+
+
+
+
+
+
+
+ C++ Developer Roadmap
+
+
+
+
+
+
+
+
+
+
+ About:
+
+
+
+
+
+
+
+
+
+
+ C ++ is still one of the most popular development languages. There is quite a number of people that want to start learning it
+and become a C++ developer. They face questions like: "Where should I start? What and in what order should I study? What
+books should I read?"
+
+We tried to answer these questions in the presented roadmap. The map focuses on general competencies and skills that
+could be found in most projects. It is designed to help those who are just starting their education or have little experience.
+You can create a more productive learning plan without being distracted by side information if you study the set of listed
+materials. It will help you to master C++ at the level that is used in many commercial projects.
+
+
+
+
+
+
+
+
+
+
+ How to use:
+
+
+
+
+
+
+
+
+
+
+ If you have any feedback or remarks don't hesitate to contact us.
+We really appreciate it. :)
+
+To contact us choose one of the following Github approaches:
+- For any remarks related to repository content - go to Pull
+Requests and submit a new one
+
+
+
+
+
+
+
+
+
+
+
+ Feedback:
+
+
+
+
+
+
+
+
+
+
+ Optional
+
+
+
+
+
+
+
+
+
+
+ Junior
+
+
+
+
+
+
+
+
+
+
+ Middle
+
+
+
+
+
+
+
+
+
+
+ Senior
+
+
+
+
+
+
+
+
+
+
+ The middle developer has the
+skills to create a design for
+new functionality as a part of
+a component/application if
+even there're not enough
+requirements or information
+presented.
+
+
+
+
+
+
+
+
+
+
+ The senior developer has the
+skills to create a design and
+make decisions for a
+solution/component taking
+into account business area
+context.
+
+
+
+
+
+
+
+
+
+
+ The junior must acquire the
+following skill as soon as
+possible: to write
+easy-readable and
+well-structured code.
+
+
+
+
+
+
+
+
+
+
+ The juniors should be aware
+of middle/senior skills. It's
+enough to have a basic
+understanding of them.
+
+
+
+
+
+
+
+
+
+
+ The "steps" are presented on
+this map. They're intended to
+show an easy for newbies to
+be able to get confident base
+knowledge about the language
+at the beginning.
+
+
+
+
+
+
+
+
+
+
+ Repository:
+
+
+
+
+
+
+
+
+
+
+
+ https://github.com/salmer/CppDeveloperRoadmap
+
+
+
+
+
+
+
+
+
+
+ Carefully read the terms of the license agreement.
+Your project must comply with them.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Chinese/Graph/roadmap.svg b/Chinese/Graph/roadmap.svg
new file mode 100644
index 0000000..5970255
--- /dev/null
+++ b/Chinese/Graph/roadmap.svg
@@ -0,0 +1,7509 @@
+
diff --git a/Chinese/HowToStudy.md b/Chinese/HowToStudy.md
new file mode 100644
index 0000000..30bbdd8
--- /dev/null
+++ b/Chinese/HowToStudy.md
@@ -0,0 +1,33 @@
+# :mortar_board: 如何学习?
+
+可以给出的主要建议是,你应该明白自己对于个人发展负有全部责任。当然,你会遇到很多热心人士愿意为你提供建议,但没有人会为你创建具体任务或培训计划。在这个过程中,最好的朋友将是自己、谷歌搜索和教程。
+
+## :question: 如何学习新的 C++ 11/14/17/20 标准?
+
+初学者不应该在旅途开始时过分关注标准。推荐从[初级列表](Books/PreJunior.md)中挑选书籍并学习基础知识。现代初学者书籍通常包含有限的关于C++11和更新标准功能的信息。一开始最好不要专注于新语言标准。
+
+重要的是理解现代标准主要集中在修复问题、提供语法糖和引入新功能上的原因。修复问题和提供语法糖都很简单;引入新构造来纠正旧标准中存在问题,并且引入新抽象来简化重复代码。但是,在使用新功能方面则稍微麻烦些。
+
+像其他编程语言一样,C++通过吸收计算机科学领域流行思想以及其他编程语言成功特性而进化发展。了解这些构造并根据需要使用它们非常重要,但首先必须深入研究由较老版本(C ++ 11 / C ++ 14)确立的基础知识,在大多数现代初级读物中都有描述。”
+
+## :question: 如何了解最新的C++标准特性?
+
+- 在[C++会议](CommunitySources.md)中的演示
+- 在[CppReference](https://en.cppreference.com/w/cpp)主页上,您将找到链接到最新功能概述列表页面的链接
+- 您可以阅读[Bjarne Stroustrup - A Tour of C++](https://www.amazon.com/Tour-2nd-Depth-Bjarne-Stroustrup/dp/0134997832)这本书。定期检查该书以获取更新,因为它会随着每个新版本的C ++标准进行修订。
+- 专业论坛/聊天/讨论等。
+- 社区YouTube上的概述视频
+- [现代C ++语言和库功能速查表](https://github.com/AnthonyCalandra/modern-cpp-feature)
+
+## :eyes: 培训建议
+
+- 以自己的节奏学习,无论年龄如何!不要被“我从出生时就是程序员”的故事所吓倒。大多数这些故事都是 [幸存者偏差](https://en.wikipedia.org/wiki/Survivorship_bias)或试图在你身上夸耀他们自己而已。您有能力从头开始学习编程,包括C ++!
+ 面对问题时,建议在互联网上搜索解决方案,因为您遇到的大多数问题可能已经得到解决。如果找不到答案,请尝试用不同方式重新制定请求。如果仍然找不到解决方案,请尝试简化问题。
+ 重点应放在学习语言而非与工作环境斗争上,因为这可能导致挫败感和动力丧失。
+ 请记住即使经验丰富的开发人员也会遇到问题并陷入困境,所以休息一下并稍后返回任务是一个好主意。
+ 找到志同道合、正在开始学习之路的人可以使过程更加愉快, 因为你们可以相互分享知识和经验,并发展团队合作技能. 在今天的世界里, 几乎无处不需要像团队一样工作, 因此培养这些技能很有帮助.
+ 拥有经验丰富的导师也可能很有价值, 因为他可以指导您避免常见陷阱并节省时间。
+
+---
+
+[**回首页**](../README.md)
\ No newline at end of file
diff --git a/Chinese/Mythbusters.md b/Chinese/Mythbusters.md
new file mode 100644
index 0000000..8f2536a
--- /dev/null
+++ b/Chinese/Mythbusters.md
@@ -0,0 +1,49 @@
+# :ghost: C++的神话和传说
+
+## :question: C++已死,无法使用它编写任何东西
+
+C++并没有死。
+
+事实上,在各种排名中,如[Tiobe](https://www.tiobe.com/tiobe-index/)指数等,它一直位居最受欢迎的编程语言之列。关于C++是“死亡语言”的看法出现在21世纪初期,当时该语言标准化委员会处于不活跃状态。然而,自从C++11标准以来每三年就会添加新功能和功能性,并且有了复苏。尽管如此,仍有人坚持认为C ++是一种难以掌握和存在问题的语言的神话和传说, 这往往是因为他们没有跟上这门语言发展或只接触过少量教育内容。
+
+## :question: 真正的程序员使用Linux/Vim/gcc学习C++
+
+如果您对所提到的组合不熟悉,则建议首先专注于学习C ++基础知识。建议使用Microsoft Visual Studio IDE开发您的第一个应用程序。有关更多信息,请参见[PreJunior Books](Books/PreJunior.md)。
+
+走具有挑战性的道路可能看起来很酷,但创建一个使用Linux、Vim和GCC创建“Hello World”程序所需信息量非常大,并且可能导致早期挫败感并对整个编程产生幻灭感。试着遵循从简单到逐渐增加复杂度的路径。就像新手在第一次锻炼时不应该试图举起最重的重量一样,在学习中也适用同样规则. 一旦你熟悉了这门语言, 就可以尝试使用Linux进行开发. 但那完全是另外一个故事...
+
+## :question: 在学习C++之前最好先掌握C/汇编语言等
+
+不,不是这样的!
+
+这种说法存在两种普遍情况:过去大学里教授C++就是这么做的,而“老一辈”的成员也经历了类似的道路。现代C++并不需要如此具有挑战性的方法。该语言自给自足,可以在没有任何背景知识的情况下学习。更可能的是通过“从C到C ++” 的方式来学习 C ++ 会导致混淆和想要以“带类”的方式编写 C ++。
+
+## :question: 使用Stroustrup所著书籍来学习C++
+
+一个极其有害的声明,源于那些手中拿着键盘出生或者对其他语言(例如 C、Fortran、Delphi 等)有丰富开发经验然后转向 C++ 的人。
+
+这条建议很可能是由那些在开发其他语言方面拥有丰富经验(如 C、Fortran、Delphi 等)然后转向使用 C ++ 的人提出来的。 Stroustrup 写了《The C++ Programming Language》作为参考书,因此必须以适当方式使用它,并需要一定程度上对该语言进行了解。相反,在[Books](Books/Overview.md)部分查找更好,在那里您将找到适用于所有级别语言熟练度水平的书籍。
+
+## :question: 只使用标准学习 C++
+
+另一个自命不凡的说法。
+
+现代 C++ 标准超过 2000 页,需要付费才能获得最新版本,并且不是以用户友好的方式组成。虽然对于那些使用其标准学习语言的人值得称赞,但并不建议大多数人采用这种方式进行学习。相反,最好查看 [Books](Books/Overview.md) 部分,在那里您会找到适合各种语言熟练程度的书籍。
+
+## :question: 未定义行为困扰着开发者
+
+更可能是否定而非肯定。
+
+现代 C++ 和围绕该语言出现的工具可以避免与未定义行为相关的大部分问题。我们可以给出一个简单的建议:当不确定特定结构体执行什么操作时,请在 [CppReference](https://en.cppreference.com)、[StackOverflow](https://stackoverflow.com/) 或其他专门资源上阅读有关它们的信息。如果阅读后仍然存在疑问,请尝试以更简单的方式重写代码以避免未定义行为。简洁中蕴含巨大力量。
+
+## :question: 需要手动管理内存,该语言没有垃圾回收机制
+
+这是来自“老卫士”的另一个城市传说,他们在 C++11 之前停止编写 C++ 或者只是浅显地在大学里学了一下,并忽略了最新标准。现代 C++ 在其标准库中拥有一组原始类型负责自动内存分配和释放。手动内存管理已经被淘汰了。许多团队和公司甚至有规则:“禁止使用裸指针”。再次强调,不要忽视现代工具和检查器,因为它们可以在源代码级别检测到可能存在内存泄漏。
+
+## :question: C++ 只属于旧技术领域
+
+部分正确,但值得注意的是这并不仅适用于C ++ 。任何语言中代码质量主要取决于团队及其先驱者所处技术文化水平而非单纯依靠编程语言本身。由于诸如开发人员技能水平、职业道德和错误估计等人类因素导致产生了大量旧版代码. 如今, 许多项目都采用C ++ 编写, 并且已经连续运作数年, 是公司收入来源 的基础. 在这种情况下,在短时间内进行任何重大变更都很危险. 开发人员在进行更改时会格外小心以避免任何退步. 然而, 不要认为处理旧项目不能帮助您提高技能水平. 实际上, 这些项目可能提供挑战性任务 , 帮助你积累从代码阅读、反向工程、测试、软件架构设计、自动化到需求收集等方面获取丰富经验.
+
+---
+
+[**返回首页**](../README.md)
\ No newline at end of file
diff --git a/Chinese/PetProjects.md b/Chinese/PetProjects.md
new file mode 100644
index 0000000..03d3ffa
--- /dev/null
+++ b/Chinese/PetProjects.md
@@ -0,0 +1,74 @@
+# :telescope: 宠物项目
+
+宠物项目是学习编程语言、库和/或框架的实践经验的绝佳机会。它们还可以作为面试的起点,并帮助开启工作机会。
+
+找到并选择适合宠物项目的正确想法可能具有挑战性。为了帮助克服这一问题,我们已经编制了一个链接和想法列表,以便让您开始。阅读完此列表后,您应该能够选择最合适的想法或受到启发创建自己的想法!
+
+## :arrows_counterclockwise: 外部链接
+
+* [Google Summer of Code](https://summerofcode.withgoogle.com/archive)
+
+各种公司和社区提供了一系列项目,作为年度 Google 学生实习计划的一部分。存档包含近年来的项目,其中有大量针对 C++ 语言可用的项目。您可以在自己练习中找到感兴趣的东西或考虑尝试未来实习。
+
+* [基于项目学习 - C++](https://github.com/practical-tutorials/project-based-learning#cc)
+
+该存储库保存了不同编程语言(包括 C++) 的一组小型项目集合,并提供广泛且详细清单。
+
+* [Programming challenges](https://programming-challenges.jeremyjaydan.dev/) - [PNG image](https://programming-challenges.jeremyjaydan.dev/media/programming-challenges-v4.0.png)
+
+Pet Projects 想法轮盘允许您设置所需复杂性级别并旋转轮盘。旋转结果将随机选择要解决任务:)
+
+
+## :boom: 宠物- 项 目 列 表
+
+### :arrow_forward: 游戏
+
+以下是不包含复杂 AI 或动态世界生成内容但可作为起点实现游戏功能列表 。你可以在进展过程中改善额外功能 。对于图形库 ,你可以使用易于使用且提供足够特色以创建简单2D或2.5D图形接口(使用精灵) 的[SFML] (https://www.sfml-dev.org/) 。如果你想做更多与应用 物理相关方面,则可以从简单引擎如[Box2D] (https://box2d.org/) 开始 ,也可以学习更高级引擎 如[Cocos2D] ( https:/ /www.cocos.com/en/) 和[Unreal Engine] ( https://www.unrealengine.com/en-US/)。记得遵循“从简单到复杂”的规则 ,先从简单游戏开始 ,然后逐渐增加难度。
+
+- 贪吃蛇
+- 俄罗斯方块
+- 生命游戏
+- 十五数码问题
+- 打砖块
+- 扫雷
+- 2048
+- 纸牌接龙
+- 蜘蛛纸牌接龙
+- 弹球
+- 奇才大冒险
+– 迷宫
+– 面向两个至四个玩家网络游戏:弹球、扑克、国际象棋、海战等
+
+建议阅读以下源代码,其中包含有关 gamedev 各种算法信息 。他们可能对上述任何一个游戏或者你自己构思出来都非常有用:
+– https :// www.redblobgames .com/
+– http :// www.squidi.net/three/
+
+
+
+---
+### :arrow_forward: 应用程序
+
+创建应用程序时,从最简单的实现开始,例如控制台应用程序。完成每个步骤后,设置更复杂的任务,例如添加图形界面、使应用程序使用HTTP请求从源请求数据,然后将接收到的数据写入/读取到文件/数据库等。始终遵循“由简至繁”的原则。
+
+以下是一些适合初学者的潜在项目示例:
+
+- 网络聊天(原始套接字或使用[gRPC](https://grpc.io/docs/languages/cpp/quickstart))
+- 计算器
+- 文件管理器
+- 货币转换器
+- 从任何Github存储库检索“pull-request”或“issue”列表
+- 自动化常规任务,如各种计算和生成表格形式的报告。
+
+---
+
+### :arrow_forward: 学生申请
+
+以下示例更适合已经学习过或最近学习过基础课程(如线性代数、解析几何、数学分析、物理等)的学生。涉及应用他们所学理论知识的任务可以帮助他们实现两个目标:通过实际应用巩固知识,并练习编程。这条路不限于其他人,但对于学生来说比较容易因为他们对于这些科目有着新鲜记忆。
+
+- 开发一个线性代数库, 包括矩阵, 向量和执行计算。
+- 建模各种进程, 如物理和理论力学。
+- 实施数字方法, 包括积分, 微分, 近似和插值
+
+---
+
+[**返回主页**](../README.md)
\ No newline at end of file
diff --git a/Chinese/Rationale.md b/Chinese/Rationale.md
new file mode 100644
index 0000000..f6e49f7
--- /dev/null
+++ b/Chinese/Rationale.md
@@ -0,0 +1,15 @@
+# :flashlight: 路线图是为什么创建的,目的是什么?
+
+C++ 在许多商业项目中被广泛使用,并在其历史上经历了重大变化,使其更方便日常使用。然而,仍然有许多关于该语言的神话、猜测和恐惧围绕着它,吓退了潜在学习者。我们的目标是帮助打消这些谣言,使初学者更容易学习 C++。
+
+目前市场上缺少 C++ 开发人员。我们的经验表明,许多成功的开发人员通过自学掌握了这门语言,因为很难找到高质量的信息和资源。大多数教育平台和课程没有提供高质量的课程,在很多情况下过于高级或过时。
+
+与其他语言相比,进入 C++ 开发领域需要更高的门槛,因为大部分可用信息都面向有经验的开发人员,并进一步强化了其异常复杂性之谣传。对于初学者来说缺乏相关信息会使他们难以掌握这门语言。
+
+本路线图旨在解决这些挑战。它创建的想法来自于对无经验 C++ 开发人员候选人进行数论访谈后得出结论:他们都存在基础知识方面共同缺陷和不知道如何及从哪里开始学习该语言等问题。
+
+此路线图也可以对那些已经在个人和工作项目中实践 C++ 的人有所帮助。它可以帮助您确定任何知识空白并加深您对该语言的理解, 从而成为一个高素质专家。
+
+---
+
+[**返回主页**](../README.md)
\ No newline at end of file
diff --git a/Chinese/SelfIdentification.md b/Chinese/SelfIdentification.md
new file mode 100644
index 0000000..e8924de
--- /dev/null
+++ b/Chinese/SelfIdentification.md
@@ -0,0 +1,20 @@
+# :mag: 你确定需要学习C++吗?
+
+首先要考虑的是:为什么想要学习C++?
+
+这门语言有特定的应用领域,了解它们在深入学习C++之前非常重要。研究和探索这些领域可以更好地理解你所涉及到的内容。以下是一些值得事先进行研究的例子:
+
+- 某些开发领域可能与你预期不同。例如,游戏开发可能会面临许多挑战,如加班时间、管理不善以及按工作量付费等情况。
+- 你感兴趣的语言可能并不是某个特定领域中最流行的语言。例如,在机器学习中,Python及其专业库是最常用的。
+
+# :question: 我已经知道了C/C#/Java/Python等编程语言,我能直接使用C++开始工作吗?
+
+答案既是肯定也是否定 :)
+
+具备计算机科学概念方面基本理解当然会很有帮助,比如理解过程式编程、OOP和其他通用知识等。但不能仅依赖于这些概念。初学者最常见错误就是试图将其他编程语言范式下写出来的代码套用到 C++ 中去。例如, C 开发人员经常以过程化风格编写 C ++ 程序或认为 C ++ 只是“带类”的 C。
+
+C ++ 富含思想和编码方法, 因此建议您以开放心态开始学习该语言. 尽力去理解它背后蕴含着哪些思想, 这将有助于您在工作任务中有效地使用该语言. 其他编程语言方面知识可帮助您进行比较并确定它们各自优缺点.
+
+---
+
+[**返回主页**](../README.md)
\ No newline at end of file
diff --git a/Chinese/Tooling.md b/Chinese/Tooling.md
new file mode 100644
index 0000000..6c266af
--- /dev/null
+++ b/Chinese/Tooling.md
@@ -0,0 +1,160 @@
+# :triangular_ruler: 语言工具包
+
+新手开发者通常对于可用的工具有限的了解,这些工具可以使编写代码更加容易、提高效率并防止许多错误。这些工具不是解决语言可能出现的困难的万能药,但它们可以显著地平滑掉粗糙的边缘。以下是全球开发人员公认的常见和流行工具列表,但这只是其中一小部分。随着时间推移,您将会更加熟悉这些工具,并发现适合自己需求的新工具。
+
+## :page_facing_up: 文本编辑器
+
+* :arrow_forward: **Visual Studio Code**
+
+ 网址:https://code.visualstudio.com/
+
+ 价格:免费
+
+ 提供强大而高效的文本文件和源代码编辑器。它拥有丰富的扩展库,可根据个人喜好进行定制化设置。还可以配置为与源代码一起使用,轻松编译、运行和调试您的代码。此外,它还拥有一个强大搜索引擎来查找文件和文件夹,在处理大型项目时更容易搜索、阅读和操作。
+
+* :arrow_forward: **Notepad++**
+
+ 网址:https://notepad-plus-plus.org/
+
+ 价格:免费
+
+ 轻量级文本文件和源代码编辑器支持常见编程语言语法高亮显示功能。相比于 Visual Studio Code ,它更方便快速打开和查看文件,并且由于其轻量级设计,在处理大量文本文件时非常舒适。
+
+## :open_file_folder: IDE(集成开发环境)
+
+* :arrow_forward: **Microsoft Visual Studio IDE**
+
+ 网址:https://visualstudio.microsoft.com
+
+ 价格:社区版免费
+
+ 来自 Microsoft 的集成开发环境(IDE),提供了一套全面性质包含了各种程序设计语言以及跨平台开发所需要用到得编码器、编译器、调试器以及分析仪等等 。对初学者来说是一个很好选择, 因为其现代界面用户友好且无需在初始状态下进行过多自定义设置。
+
+* :arrow_forward: **Qt Creator IDE**
+
+ 网址:https://www.qt.io/product/development-tools
+
+ 价格 :针对 开放源码项目 免费 (详细信息请参考 [Qt Open Source](https://www.qt.io/download-open-source?hsCtaTracking=9f6a2170-a938-42df-a8e2-a9f0b1d6cdce%7C6cb0de4f-9bb5-4778-ab02-bfb62735f3e5))
+
+ 最初 Qt Creator 是作为 C++ 应用程序图形界面开发IDE而定位. 随着时间推移, 框架已经获得了众多功能并演变成跨平台应用程序综合生态系统. 它提供了广泛基础库原件以满足各种需求, 如网络连接, 图形接口, 数据库操作 和 处理像图片或文本格式之类流行格式. 如今 Qt Creator 成为 Visual Studio 的竞争对手,并特别受到创建适用于各种 Linux 发行版应用程序 的 开发人员欢迎.
+
+
+* :arrow_forward: **Eclipse IDE**
+ Eclipse是一个功能强大的跨平台开发环境,但也相当沉重。 Eclipse的关键特性之一是其模块化。 Eclipse的哲学是任何开发人员都可以通过连接其他扩展来修改开发环境以适应他们的需求。 它被某些编译器开发人员用作专门针对OS或微控制器(例如QNX实时操作系统,Red-Hat Linux等)的基础。
+
+
+* :arrow_forward: **JetBrains Clion IDE**
+ Clion是来自JetBrains公司的强大跨平台IDE。与其他IDE一样,它提供了全面的工具集,方便软件开发,并且非常适合C和C ++中进行跨平台开发。
+
+## :flashlight: 扩展
+
+* :arrow_forward: **JetBrains ReSharper C++**
+ JetBrains ReSharper C++ 是Microsoft Visual Studio 的扩展程序之一, 它增加了高级源代码处理功能, 如扩展代码突出显示和提示、构建项目间依赖关系图、纠正常见错误推荐、调试期间改进信息、改进搜索并导航到项目等等, 可与Visual Assist竞争。
+
+* :arrow_forward: **Visual Assist**
+
+ Site: https://www.wholetomato.com
+
+ 一个为微软Visual Studio提供额外功能的扩展,如增强代码高亮和提示、调试和编码期间增加信息、高级搜索能力以及改进的项目导航。它与JetBrains ReSharper竞争。
+
+
+
+* :arrow_forward: **Incredibuild**
+
+ Site: https://www.incredibuild.com
+
+ 这是一个用于分布式编译项目的应用程序/扩展,它将所有开发者工作站合并成一个单一的网络,提供使用数十台机器来组装和编译源代码的可能性。这可以加速大型项目的构建过程。
+
+## :electric_plug: Package managers and build systems
+
+* :arrow_forward: **Cmake**
+
+ Site: https://cmake.org
+
+ 价格: 免费
+
+ 一个跨平台的自动化系统,用于从源代码构建应用程序,并生成必要的工件以便在目标平台上进行后续组装。它目前被认为是构建各种库时作为源码提供时的标准工具。
+
+
+* :arrow_forward: **Conan**
+
+ 网址: https://conan.io
+
+ 价格: 免费
+
+ 一个用于组织C++库和框架的软件包管理器和依赖项管理器。它支持在Windows和Linux等各种平台上工作,并与CMake和Visual Studio等工具集成。"
+
+
+
+* :arrow_forward: **Ninja**
+
+ 网址: https://ninja-build.org
+
+ 价格: 免费
+
+ PC和C++应用程序的项目构建管理器。该管理器的主要优点是快速项目组装。它支持跨平台开发,并与所有流行的编译器兼容。"
+
+
+## :mag: Code analyzers
+
+* :arrow_forward: **PVS Studio**
+
+ 网址: https://pvs-studio.com
+
+ 价格: 30 天免费试用
+
+ 由PVS-Studio开发的跨平台(Windows、Linux、MacOS)静态代码分析器。该分析器的主要目标是对源代码进行分析,以检测编译器或代码审查期间可能未被发现的各种错误。它有助于减少与语言语法和陷阱相关的错误数量。"
+
+
+
+* :arrow_forward: **Cpp Check**
+
+ 网址: https://cppcheck.sourceforge.io
+
+ 价格: 免费
+
+ 一个免费的代码分析器,可以帮助您捕捉编译器或代码审查期间可能被忽略的源代码中常见错误。它是跨平台的,并支持流行的Linux发行版和Windows。
+
+
+
+* :arrow_forward: **Valgrind**
+
+ Site: https://www.valgrind.org
+
+ 价格: 免费
+
+ 一组工具,可以帮助您在应用程序运行时调查各种问题,例如内存泄漏和性能分析。它与多个Linux发行版兼容。
+
+## :floppy_disk: Git clients
+
+* :arrow_forward: **SmartGit**
+
+ 网址: https://www.syntevo.com/smartgit/
+
+ 价格: 开源免费
+
+ 一个完整的、跨平台的用于处理Git仓库的工具。开箱即用,提供以下功能:接收和发送对仓库的更改,查看更改历史记录,文本编辑器以解决冲突等。支持与所有流行的代码托管服务集成,如GitHub、BitBucket、GitLab等。
+
+
+* :arrow_forward: **Atlassian SourceTree**
+
+ 网址: https://www.sourcetreeapp.com/
+
+ 价格: 免费
+
+ 一个很好的免费替代品,使用图形界面来处理Git。它具有与SmartGit相同的功能,唯一不同之处是没有自己的编辑器用于冲突解决。但是,可以通过集成Visual Studio Code或任何其他可以比较文件的编辑器轻松解决此问题。在所有其他方面,它完全复制了SmartGit的功能:跨平台,并支持与流行存储库(如GitHub、BitBucket、GitLab等)集成。"
+
+
+
+* :arrow_forward: **Git Kraken**
+
+ 网址: https://www.gitkraken.com/
+
+ 价格: 开源免费
+
+ 一款跨平台高效的客户端,适用于Windows、Linux和MacOS。它支持与GitHub、Bitbucket和Gitlab集成,并具有日常工作所需的所有必要功能,如查看更改历史记录、提交和接收更改、在分支之间切换以及内置冲突解决编辑器。"
+
+
+---
+
+[**回到主页**](../README.md)