作者:HelloGitHub- 小鱼干
俗话说:万事开头难,学习编程也是一样。在 HelloGitHub 的群里,常常遇到有小伙伴询问 编程语言如何入门 方面的问题,如:
- 我要学习某一门编程语言,有什么开源我的项目能够举荐吗?
- 我是某编程语言的老手,有什么练手的我的项目举荐吗?
- 等等
See,这就是本系列文章的由来,咱们心愿学习各类编程语言的同学们,读(Mark)完咱们的入门系列,能够找到学习的方向、零碎的学习某一门语言,而后做个简略的小玩意,不只是 Hello World
。
《GitHub 上适宜编程入门的我的项目》系列,共计 5 篇文章:
- C++ 篇
- Python 篇
- Go 篇
- Java 篇
- JavaScript 篇
以下为 C++ 篇 的内容。不论哪门编程语言,根底都是很重要的。所以咱们要先从根本的语法和基础知识学习学起,一步步把握这门语言。
一、根底
1.1 一个我的项目入门 C++ 足以:CPlusPlusThings
CPlusPlusThings 是国人开源一个 C++ 学习我的项目。它系统地将 C++ 学习分为了【根底进阶】、【实战系列】、【C++2.0 新个性】、【设计模式】和【STL 源码分析】、【并发编程】、【C++ 习用法】、【学习课程】、【工具】、【拓展】。
作为一个全面零碎的 C++ 学习我的项目,CPlusPlusThings 是优良的,它正当地安顿了 10 Days 的实战局部,在实战中理解语法和函数用法,惟一有余的是,在正文局部有些不尽人意,对局部老手程序员并不是很敌对。【根底进阶】局部内容:
- const 那些事
- static 那些事
- decltype 那些事
- 援用与指针那些事
- 宏那些事
GitHub 地址→https://github.com/Light-City/CPlusPlusThings
1.2 根底局部之算法:C-Plus-Plus
C-Plus-Plus 是收录用 C++ 实现的各种算法的汇合,并依照 MIT 许可协定进行受权。这些算法涵盖了计算机科学、数学和统计学、数据迷信、机器学习、工程等各种主题。除外,你可能会发现针对同一指标的多个实现应用不同的算法策略和优化。
GitHub 地址→https://github.com/TheAlgorithms/C-Plus-Plus
二、进阶
2.1 古代 C++:modern-cpp-tutorial
modern-cpp-tutorial 是古代 C++ 教程,它的目标是提供对于古代 C++(2020 年前)的相干个性的全面介绍。除了介绍了代码之外,它还尽可能简略地介绍了其技术需要的历史背景,这对了解为什么会呈现这些个性提供了很大的帮忙。
GitHub 地址→https://github.com/changkun/modern-cpp-tutorial
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 地址→https://github.com/wuye9036/CppTemplateTutorial
三、入手实战
3.1 来实际一下:MyTinySTL
当你学习完 C++ 的“书本”常识后,是不是有些手痒了呢?MyTinySTL 这个正文具体、实际夯实根底的我的项目便是你 C++ 学习之旅的下一站。作为老手练习用处,MyTinySTL 的作者 Alinshans 用 C++11 从新复写了一个小型 STL(容器库+算法库)。代码构造清晰标准、蕴含中文文档与正文,并且自带一个简略的测试框架,适宜 C++ 老手来实际一番。
GitHub 地址→https://github.com/Alinshans/MyTinySTL
3.2 重温同年俄罗斯方块:Tinytetris
Tinytetris 是一个用 C++ 编写的终端版俄罗斯方块游戏。它提供了两个版本的源码,分为正文版和库版,正文较多易于了解和学习。
GitHub 地址→https://github.com/taylorconor/tinytetris
3.3 学习下大佬们的代码:calculator
微软开源的 Windows 零碎预装的计算器工具。该工具提供规范、迷信、程序员计算器的性能,以及各种度量单位和货币之间的转换性能。快来看看微软工程师编写的代码吧!学习大厂的编码标准、我的项目构造之类的,进步浏览源码的能力。英文的我的项目且没有解说局部,须要通过浏览源码学习,难度较高。
GitHub 地址→https://github.com/microsoft/calculator
最初
HelloGitHub 想让更多人爱上编程、开源,所以始终在尝试、摸索如何能够帮忙到更多的人。我想试试 HelloGitHub 能不能组建一个 大学生开源俱乐部 , 你们的编程路才刚开始 HG 想陪你们走一段。
如果你是在校大学生或研究生酷爱编程、开源,喜爱探讨和学习技术相干的内容,然而四周没有和你乐趣相投的小伙伴?那么来 HelloGitHub 的大学生开源俱乐部吧!加微信号:HelloGitHub(备注:学校和业余)