经验分享:适合c++学习的开源项目(基础到进阶实战)

一起学编程 一起学编程     2022-12-07     794

关键词:

俗话说:万事开头难,学习编程也是一样。在我粉丝学习群里,经常遇到有小伙伴询问编程语言如何入门方面的问题,如:

我要学习某一门编程语言,有什么开源项目可以推荐吗?

我是某编程语言的新手,有什么练手的项目推荐吗?

诸如此类。

See,这就是本系列文章的由来,我们希望学习各类编程语言的同学们,读(Mark)完我们的入门系列,可以找到学习的方向、系统的学习某一门语言,然后做个简单的小玩意,不只是Hello World。

不管哪门编程语言,基础都是很重要的。所以我们要先从基本的语法和基础知识学习学起,一步步掌握这门语言。

一、基础

1.1 一个项目入门 C++ 足以:CPlusPlusThings

CPlusPlusThings 是国人开源一个 C++ 学习项目。它系统地将 C++ 学习分为了【基础进阶】、【实战系列】、【C++2.0 新特性】、【设计模式】和【STL 源码剖析】、【并发编程】、【C++ 惯用法】、【学习课程】、【工具】、【拓展】。

作为一个全面系统的 C++ 学习项目,CPlusPlusThings 是优秀的,它合理地安排了 10 Days 的实战部分,在实战中了解语法和函数用法,唯一不足的是,在注释部分有些不尽人意,对部分新手程序员并不是很友好。【基础进阶】部分内容:

const 那些事

static 那些事

decltype 那些事

引用与指针那些事

宏那些事

GitHub 地址→跳转提示-稀土掘金

1.2 基础部分之算法:C-Plus-Plus

C-Plus-Plus 是收录用 C++ 实现的各种算法的集合,并按照 MIT 许可协议进行授权。这些算法涵盖了计算机科学、数学和统计学、数据科学、机器学习、工程等各种主题。除外,你可能会发现针对同一目标的多个实现使用不同的算法策略和优化。

GitHub 地址→跳转提示-稀土掘金

二、进阶

2.1 现代 C++:modern-cpp-tutorial

modern-cpp-tutorial 是现代 C++ 教程,它的目的是提供关于现代 C++的相关特性的全面介绍。除了介绍了代码之外,它还尽可能简单地介绍了其技术需求的历史背景,这对理解为什么会出现这些特性提供了很大的帮助。

GitHub 地址→跳转提示-稀土掘金

2.2 进阶指南:CppTemplateTutorial

CppTemplateTutorial 为中文的 C++ Template 的教学指南。与知名书籍 C++ Templates 不同,该系列教程将 C++ Templates 作为一门图灵完备的语言来讲授,以求帮助读者对 Meta-Programming 融会贯通。本项目写作初衷,就是通过 “编程语言” 的视角,介绍一个简单、清晰的 “模板语言”。我会尽可能地将模板的诸多要素连串起来,用一些简单的例子帮助读者学习这门 “语言”,让读者在编写、阅读模板代码的时候,能像if(exp) dosomething(); 一样的信手拈来,让 “模板元编程” 技术成为读者牢固掌握、可举一反三的有用技能。

适合熟悉 C++ 的基本语法、使用过 STL、熟悉一些常用的算法,以及递归等程序设计方法的 C++ 学习者阅读。虽然项目章节文章写的深入浅出,不过唯一的遗憾是尚未完成所有章节内容。进度如下:

0.前言

1.Template 的基本语法

2.模板元编程基础

3.深入理解特化与偏特化

4.元编程下的数据结构与算法 (尚未开始)

5.模板的进阶技巧(尚未开始)

6.模板的威力:从 foreach, transform 到 Linq(尚未开始)

7.结语:讨论有益,争端无用(尚未开始)

GitHub 地址→跳转提示-稀土掘金

三、动手实战

3.1 来实践一下:MyTinySTL

当你学习完 C++ 的“书本”知识后,是不是有些手痒了呢?MyTinySTL 这个注释详细、实践夯实基础的项目便是你 C++ 学习之旅的下一站。作为新手练习用途,MyTinySTL 的作者 Alinshans 用 C++11 重新复写了一个小型 STL(容器库+算法库)。代码结构清晰规范、包含中文文档与注释,并且自带一个简单的测试框架,适合 C++ 新手来实践一番。

GitHub 地址→跳转提示-稀土掘金

3.2 重温同年俄罗斯方块:Tinytetris

Tinytetris 是一个用 C++ 编写的终端版俄罗斯方块游戏。它提供了两个版本的源码,分为注释版和库版,注释较多易于理解和学习。

GitHub 地址→跳转提示-稀土掘金

3.3 学习下大佬们的代码:calculator

微软开源的 Windows 系统预装的计算器工具。该工具提供标准、科学、程序员计算器的功能,以及各种度量单位和货币之间的转换功能。快来看看微软工程师编写的代码吧!学习大厂的编码规范、项目结构之类的,提高阅读源码的能力。英文的项目且没有讲解部分,需要通过阅读源码学习,难度较高。

GitHub 地址→跳转提示-稀土掘金

最后

咱一直想让更多人爱上C/C++编程,所以一直在尝试、摸索如何可以帮助到更多的人。

如果你是在校大学生或研究生热爱编程、开源,喜欢讨论和学习技术相关的内容,但是周围没有和你乐趣相投的小伙伴?可以来我粉丝群哦~

 整理分享(多年学习的源码、项目实战视频、项目笔记,基础入门教程)最重要的是你可以在群里面交流提问编程问题哦!

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!(↓↓↓↓↓↓)

该死!github上这些c++项目真香

...大型且成熟的项目,根本看不懂。做为工作近十年的经验老鸟,github上的资源非常丰富,通过github学习一定要循序渐进。其实,不光有大型项目,还有很多学习型资源。这里帮大家就C++方向罗列出了一些... 查看详情

推荐学习这个c++开源项目

...家好,我是唐唐,祝大家中秋快乐。最近发现了适合C++开发者进阶的开源项目,这个项目的名字叫workflow,项目地址如下:https://github.com/sogou/workflowworkflow是搜狗公司的服务器引擎,几乎搜狗所有的后... 查看详情

分享10个适合初学者学习的c开源项目代码

来源|嵌入式arm十个最值得阅读学习的C开源项目代码1.Webbench2.Tinyhttpd3.cJSON4.CMockery5. Libev6.Memcached7.Lua8.SQLite9.UNIXv610.NETBSD1.WebbenchWebbench是一个在linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定... 查看详情

java进阶学习规划

 最近一直很郁闷,觉得测试的工作自己不适合,打算转Java后端,以前有点Java的基础,但是已经有快5个月没有敲代码了,学习的东西也丢的差不多了,写个规划,在4月底前把以前的知识学回来。 1.Java基础(1)集合框架... 查看详情

devui开源经验分享:从0到1开始运营你的开源项目

...社区《从0到1开始运营你的开源项目——华为云DevUI成长经验分享》&#x 查看详情

40个web前端实战项目,练完即可就业,从入门到进阶,基础到框架,html_css附视频+源码

...),希望对大家有一定的帮助,激发你们的灵感、经验,对于找工作而言有着大大的帮助。  【项目列表】 1.HTML.5canvas龙卷风动画制作2.CSS3七夕表白页面特效3.CSS20行代码见证七色花动画4.HTML5敲出一个牛逼的雪景5.CSS3... 查看详情

paddle进阶实战系列:智慧交通预测系统(代码片段)

...细介绍各部分概念及实战教程,通俗易懂,非常适合人工智能领域初学者及研究者学习。➡️点击跳转到网站。项目总结随着深度学习在近几年的快速发展,智慧交通出现许多不同方面应用,如车牌识别、交通标... 查看详情

图书推荐:kotlin从入门到进阶实战

...in进行Android应用程序开发的内容,让读者不但可以系统地学习Kotlin编程的相关知识,而且还能对Kotlin应用开发有更为深入的理解。本书分为14章,涵盖的主要内容有Kotl 查看详情

八个c++开源项目,帮助初学者进阶成长

...的命令行数独游戏。600余行代码,初学者也可以轻松学习。GitHub地址:https://github.com/mayerui/sudokuTinytetrisTinytetris是一个用C++编写的终端版俄罗斯方块游戏。它提供了两个版本的源码,分为注释版和库版,注释... 查看详情

八个c++开源项目,帮助初学者进阶成长

...的命令行数独游戏。600余行代码,初学者也可以轻松学习。GitHub地址:https://github.com/mayerui/sudokuTinytetrisTinytetris是一个用C++编写的终端版俄罗斯方块游戏。它提供了两个版本的源码,分为注释版和库版,注释... 查看详情

c++基础——c++面向对象之数据封装数据抽象与接口基础总结(代码片段)

...决实际问题的专栏,朋友们看过来! 《项目案例分享》《极客DIY开源分享》《嵌入式通用开发实战》《C++语言开发基础总结》《从0到1学习嵌入式Linux开发》《QT开发实战》《Android开发实战》《实用硬件方案设计》... 查看详情

大数据学习路线是啥?

...目前使用最为广泛的编程语言,它具有的众多特性,特别适合作为大数据应用的开发语言。Java语言具有功能强大和简单易用两个特征,跨平台应用能力比C、C++更易用,更容易上手。同时还具有简单性、面向对象、分布式、健壮... 查看详情

计算机视觉框架openmmlab开源学习:语义分割实战

...细介绍各部分概念及实战教程,通俗易懂,非常适合人工智能领域初学者及研究者学习。➡️点击跳转到网站。语义分割工具MMSegmentation前言:本文主要对OpenMMlab开源框架的图像分割方向进行学习,适合人工智能... 查看详情

spark进阶大数据离线与实时项目实战完整版

第1章课程介绍&学习指南本章会对这门课程进行说明并进行学习方法介绍。第2章Redis入门Redis是目前最火爆的内存数据库之一,通过在内存中读写数据,大大提高了读写速度。本章将从Redis特性、应用场景出发,到Redis的基础命... 查看详情

java工程师成功的三个步骤!!基础>进阶>高级

...f01;!!基础篇: Java教程为初学者而著!适合准备入行开发的零基础员学习Java,基于最新JDK13、IDEA平台讲解的,视频中穿插多个实战项目。每一个知识点都讲解的通俗易懂&#x 查看详情

《androidapp开发进阶与项目实战》资源下载和内容勘误

...端的github地址是https://github.com/aqi00/net_server。参考资料1、学习本书需要具备Java基础,如果您没学过Java的话,可学习以下系列的Java教程《Java开发笔记》,或阅读笔者的Java专著《好好学Java:从零基础到项目实战》... 查看详情

分享一些行业经验,实战案例

准备好套路**①自我介绍:**千万不能筐瓢,一定要牢记,自然流畅地介绍自己的学习经历、工作经历、项目经历、个人优势等等;**②抽象概念:**当面试官问你是如何理解多线程的时候,你要知道从定义... 查看详情

c++基础——c++面向对象之重载与多态基础总结(函数重载运算符重载多态的使用)(代码片段)

...决实际问题的专栏,朋友们看过来! 《项目案例分享》《极客DIY开源分享》《嵌入式通用开发实战》《C++语言开发基础总结》《从0到1学习嵌入式Linux开发》《QT开发实战》《Android开发实战》《实用硬件方案设计》... 查看详情