俗话说:万事开头难,学习编程也是一样。在HelloGitHub的群里,经常遇到有小伙伴询问编程语言如何入门方面的问题,如:
我要学习某一门编程语言,有什么开源项目可以推荐吗?我是某编程语言的新手,有什么练手的项目推荐吗?等等
C++篇Python篇Go篇Java篇JavaScript篇
以下为C++篇的内容。不管哪门编程语言,基础都是很重要的。所以我们要先从基本的语法和基础知识学习学起,一步步掌握这门语言。
一、基础1.1一个项目入门C++足以:CPlusPlusThings
CPlusPlusThings是国人开源一个C++学习项目。它系统地将C++学习分为了【基础进阶】、【实战系列】、【C++2.0新特性】、【设计模式】和【STL源码剖析】、【并发编程】、【C++惯用法】、【学习课程】、【工具】、【拓展】。
作为一个全面系统的C++学习项目,CPlusPlusThings是优秀的,它合理地安排了10Days的实战部分,在实战中了解语法和函数用法,唯一不足的是,在注释部分有些不尽人意,对部分新手程序员并不是很友好。【基础进阶】部分内容:
const那些事static那些事decltype那些事引用与指针那些事宏那些事1.2基础部分之算法:C-Plus-Plus
二、进阶2.1现代C++:modern-cpp-tutorial
CppTemplateTutorial为中文的C++Template的教学指南。与知名书籍C++Templates不同,该系列教程将C++Templates作为一门图灵完备的语言来讲授,以求帮助读者对Meta-Programming融会贯通。本项目写作初衷,就是通过“编程语言”的视角,介绍一个简单、清晰的“模板语言”。我会尽可能地将模板的诸多要素连串起来,用一些简单的例子帮助读者学习这门“语言”,让读者在编写、阅读模板代码的时候,能像if(exp){dosomething();}一样的信手拈来,让“模板元编程”技术成为读者牢固掌握、可举一反三的有用技能。
0.前言1.Template的基本语法2.模板元编程基础3.深入理解特化与偏特化4.元编程下的数据结构与算法(尚未开始)5.模板的进阶技巧(尚未开始)6.模板的威力:从foreach,transform到Linq(尚未开始)7.结语:讨论有益,争端无用(尚未开始)三、动手实战3.1来实践一下:MyTinySTL
当你学习完C++的“书本”知识后,是不是有些手痒了呢?MyTinySTL这个注释详细、实践夯实基础的项目便是你C++学习之旅的下一站。作为新手练习用途,MyTinySTL的作者Alinshans用C++11重新复写了一个小型STL(容器库+算法库)。代码结构清晰规范、包含中文文档与注释,并且自带一个简单的测试框架,适合C++新手来实践一番。
3.2重温同年俄罗斯方块:Tinytetris
Tinytetris是一个用C++编写的终端版俄罗斯方块游戏。它提供了两个版本的源码,分为注释版和库版,注释较多易于理解和学习。
微软开源的Windows系统预装的计算器工具。该工具提供标准、科学、程序员计算器的功能,以及各种度量单位和货币之间的转换功能。快来看看微软工程师编写的代码吧!学习大厂的编码规范、项目结构之类的,提高阅读源码的能力。英文的项目且没有讲解部分,需要通过阅读源码学习,难度较高。
HelloGitHub想让更多人爱上编程、开源,所以一直在尝试、摸索如何可以帮助到更多的人。我想试试HelloGitHub能不能组建一个大学生开源俱乐部,你们的编程路才刚开始HG想陪你们走一段。