一份C++学习资源,咬牙切齿地好用呀
多年以后,你已经是一名技术总监,有一个美丽的妻子,两个孩子;你已经拥有了现在的你想都不敢想的一切;那时,你也一定会忘记,今天这篇教程,如同一颗石子,铺就过你前进的路。

下面是我们的老师根据现有资源整理的一个C++学习路径。通过使用 C++ 语言实现 Web 服务器,Markdown 解析器,内存池以及 Docker 容器管理工具等,学习并实践 C++ 编程基础,C++ 11/14 标准,C++ 图像处理及增强现实技术。完成本路径所有教程,将能够使用 C++ 独立实现复杂的应用程序。
“成为编程大牛要一门好语言加一点点天分。一门好语言,一点点天分,再加一份坚持。要是天分少,光靠坚持也行。”
基础知识
2. Vim编辑器
3. Git 实战教程
4. GDB 简明教程
本教程的正确食用姿势:区别于目前所有主流教程,这类教程的核心就是动手跟着文档说明,在在线的Linux系统中一步一步地敲出基础知识,各种有趣项目;走出只看书、看视频却不动手的禁区,你会比别人学的更快的,放心。
入门项目
使用 C++实现 OpenGL GLUT 实现一个简单的太阳系行星系统,将涉及一些三维图形技术的数学基础、OpenGL 里的三维坐标系、OpenGL 里的光照模型、GLUT 的键盘事件处理。
2. C++实现运动目标的追踪
利用 OpenCV 来实现对视频中动态物体的追踪。进行本教程学习时,您需要先完成 C++实现太阳系行星运行系统的相关实验,才能进行之后的学习。

使用 C++对银行排队服务进行模拟,以事件驱动为核心思想,手动实现模板链式队列、随机数产生器等内容,进而学习概率编程等知识。
4. 1小时入门增强现实技术
基于OpenCV实现一个将3D模型显示在现实中的小例子,学习基于Marker的AR技术,既简单又有趣。

5. C++ 基于 OpenCV 实现实时监控和运动检测记录
使用 C++ 和 OpenCV 提供的库函数,实现摄像头的实时监控功能,并通过监控画面的运动检测选择是否记录视频。监控人员可选择输出图像的模式以更容易的分辨监控中的异常情况。
使用OpenCV&&C++进行模板匹配,在一张大图中去查找并圈出目标小图。你将学习到关于OpenCV的一些函数用法和模板匹配的完整流程。

利用OpenCV中的平滑处理和线性滤波器对图片进行处理,打造模糊效果。将介绍归一化滤波器,高斯滤波器,中值滤波器,双边滤波器这四种滤波器的相关知识,并且会对“核”和卷积进行相应的讲解。
8. C++ 实现即时通信软件
使用C++实现一个具备服务端和客户端的即时通信聊天室,涉及网络编程,C++面向对象程序设计等知识。

9. C++实现课程管理系统
使用 C++ 实现一个课程管理系统,在这个过程中会介绍C++11的很多特性,同时可以熟悉Linux下的C++语言编译方法及简单的Makefile编写。
////中场休息,笑一笑吧

进阶项目
如果你还在使用传统 C++,打着 C++ 的名号写出 C 语言代码,请停下来。本教程将带领你快速上手 C++11/14 的重要特性。
学习 C++ 利用 ffmpeg 解码视频数据,将解码后的视频数据播放出来。学习 ffmpeg 和 SDL 基本的用法。

使用 C++ 及大量 C++11新特性设计并实现一个线程池库。
4. C++ 实现高性能内存池
获得内存池所分配的内存速度高于从堆中获得分配的内存的速度,一个长期稳定运行的服务在追求极致的过程中,实现内存池是必不可少的。和标准库中的默认分配器一样,内存池本质上也是分配器

综合使用 C++11 及 Boost 中的 Asio 实现 HTTP 和 HTTPS 的服务器框架。
使用 C++ 实现 Markdown 解析器,并将解析的内容生成为 HTML。

利用 Cryto++库 对字符串进行 AES 加密和解密,RSA 加密和解密,生成 MD5 值。其中主要用到了 Crypto++ 库,这是开源的C++数据加密算法库,支持如下算法:RSA、MD5、DES、AES、SHA-256等等。
介绍 json 和一些常见的 json 库,并用 C++ 编写一个 json 生成器,生成 json 数据,并学习编写测试用例。

Radix树 , 这是一种基于二进制表示的键值的查找树,尤其适合处理非常长的、可变长度的键值,Patricia 的基本思想是构建一个二叉树。
10. C++ 实现智能指针
使用C++语言实现智能指针的过程,来了解C++基本程序设计的方法,包括类的定义与使用,运算符的重载,模板类的使用方法,以及引用计数技术。

高级项目
操作 redis 实现异步订阅和发布,其中将介绍 redis 基础知识,在linux中安装和使用 redis ,常用的 hiredis API,并实现一个例程。
Docker 的本质是使用 LXC 实现类似虚拟机的功能,进而节省的硬件资源提供给用户更多的计算资源。本项目将 C++ 与 Linux 的 Namespace 及 Control Group 技术相结合,实现一个简易 Docker 容器。

内存泄漏一直是 C++ 中比较令人头大的问题, 即便是很有经验的 C++程序员有时候也难免因为疏忽而写出导致内存泄漏的代码。除了基本的申请过的内存未释放外,还存在诸如异常分支导致的内存泄漏等等。本项目将使用 C++ 实现一个内存泄漏检查器。
RTTI 是运行时类型识别的英文缩写,C++ 本身提供了运行时类型检查的运算符 dynamic_cast 和 typeid,然而 dynamic_cast 的效率其实并不理想,需要牺牲一定性能。本项目将手动实现一个高性能 RTTI 库。

有句话是这样说的:一件事,1000人想去做,100人开始做了,最终,只有1个人坚持到了最后。话虽没有绝对,但想想看,今天确实是你生命中最年轻的一天啦,所以,想要做的事,勇敢捡起来做吧!祝你学习顺利。
其他教程推荐:
第一弹:超全Python学习资源整理(入门系列)
第二弹:超全Python学习资源整理(进阶系列)
40个大数据学习资源
PHP学习资源整理:入门到进阶全系列
8个程序员专用软件/网站,个个是神器,第一个最惊喜......
Java进阶之设计模式
Scala 开发教程
Hadoop部署及管理
RabbitMQ 消息队列
Redis基础教程
Shell脚本实现打字游戏
Python3 实现色情图片识别
Python实现3D建模工具
一份C++学习资源,咬牙切齿地好用呀的更多相关文章
- 一份关于Swift语言学习资源的整理文件
一份关于Swift语言学习资源的整理文件 周银辉 在这里下载 https://github.com/ipader/SwiftGuide
- iOS 学习资源
这份学习资料是为 iOS 初学者所准备的, 旨在帮助 iOS 初学者们快速找到适合自己的学习资料, 节省他们搜索资料的时间, 使他们更好的规划好自己的 iOS 学习路线, 更快的入门, 更准确的定位的 ...
- 学习资源asp.net
http://www.runoob.com ajax 同一表单,多部分提交.增加,修改,删除 服务器端控件: http://technet.microsoft.com/zh-cn/library/cc ...
- nginx源码学习资源(不断更新)
nginx源码学习是一个痛苦又快乐的过程,下面列出了一些nginx的学习资源. 首先要做的当然是下载一份nginx源码,可以从nginx官方网站下载一份最新的. 看了nginx源码,发现这是一份完全没 ...
- [转] 整理了一份React-Native学习指南
自己在学习React-Native过程中整理的一份学习指南,包含 教程.开源app和资源网站等,还在不断更新中.欢迎pull requests! React-Native学习指南 本指南汇集React ...
- 一份React-Native学习指南-感谢分享
自己在学习React-Native过程中整理的一份学习指南,包含 教程.开源app和资源网站等,还在不断更新中.欢迎pull requests! React-Native学习指南 本指南汇集React ...
- nginx源代码学习资源(不断更新)
nginx源代码学习是一个痛苦又快乐的过程,以下列出了一些nginx的学习资源. 首先要做的当然是下载一份nginx源代码,能够从nginx官方站点下载一份最新的. 看了nginx源代码,发现这是一份 ...
- 整理了一份React-Native学习指南
原文: http://www.w3ctech.com/topic/909 自己在学习React-Native过程中整理的一份学习指南,包含 教程.开源app和资源网站等,还在不断更新中.欢迎pull ...
- nginx源码学习资源
http://www.cnblogs.com/yjf512/archive/2012/06/13/2548515.html nginx源码学习是一个痛苦又快乐的过程,下面列出了一些nginx的学习资源 ...
随机推荐
- spring框架学习感悟
学习了一段时间的spring,但是在练习时老是出现bug,一方面,框架封装了很多东西,简化了开发,但是万一出现问题,就很难排查.这说明应该找个慢慢的熟悉它,并且掌握它. 在这个过程中,可能要不断地试错 ...
- maven安装与创建多模块项目
最新版已同步至 http://yywang.info/2014/05/31/maven-install-and-create-project/ maven是一个比较流行的项目管理工具,在最近参与的项目 ...
- POJ-1143(状态压缩)
Number Game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3432 Accepted: 1399 Descripti ...
- Prometheus 函数
函数列表 一些函数有默认的参数,例如:year(v=vector(time()) instant-vector).v是参数值,instant-vector是参数类型.vector(time())是默认 ...
- jQuery 选择器 筛选器 样式操作 文本操作 属性操作 文档处理 事件 动画效果 插件 each、data、Ajax
jQuery jQuery介绍 1.jQuery是一个轻量级的.兼容多浏览器的JavaScript库. 2.jQuery使用户能够更方便地处理HTML Document.Events.实现动画效果.方 ...
- 关于servelet入门介绍
servelet 容器 将前台的请求转发给后台 接受 http 表单, 后台处理操作数据库并且放回用户 .(粗劣) 手工编写第一个Servlet 1, 继承httpservlet 2, ...
- [No0000131]WCF压缩传输方案整理
1.WCF进阶:将编码后的字节流压缩传输 2.通过WCF扩展实现消息压缩 3.WCF 消息压缩性能问题及解决方法
- tensorflow 计算均值和方差
我们在处理矩阵数据时,需要用到数据的均值和方差,比如在batch normalization的时候. 那么,tensorflow中计算均值和方差的函数是:tf.nn.moments(x, axes) ...
- C和C指针小记(四)-浮点类型
1.浮点型 浮点数家族包括:float,double,long double. ASCII标准规定:long double 至少和 double 一样长,而 double 至少和float 一样长.同 ...
- C语言中gets(), scanf()区别
C语言中gets(), scanf()区别 相同点: gets()和 scanf() 1.函数都可用于输入字符串 2.都在stdio.h头文件中定义. 3.字符串接受字符结束后自动加'\0' 不同点: ...