区块链开发课程大纲

原文链接:http://www.jianshu.com/p/8384d6255b2a

阶段一:C++基础入门阶段

此阶段学完之后可以理解和使用面向对象思想;熟练设计和使用类;熟练使用继承、多态、组合、聚合等技术;可以开发小型命令行程序(类似shell、wc、grep等)和图形界面程序(类似记事本、计算器等)。

课程内容:

  1. C语言到C++语言的过渡
  2. C++面向对象思想
  3. C++类的定义与对象创建
  4. 复制控制
  5. 操作符重载与转换
  6. 友元函数与友元类
  7. 多态实现与原理分析
  8. C++文件读写操作
  9. 异常处理
  10. C++11新增语法简介

项目实战:人工智能五子棋人机对战程序AlphaGobang

1730134-e0471a3e79c1cac2.png

应用场景:

游戏开发是C++开发的一个主要方面,因为C++同时具有高开发效率和高执行效率两个特点。通过开发AlphaGobang熟悉C++图形界面开发和游戏逻辑规则开发。


阶段二:STL基础入门阶段

此阶段学完之后可以熟练使用各种常见的容器和算法;熟悉模版的编写和原理;掌握常用容器、迭代器和算法实现原理。

课程内容:

  1. 模板编程基础
  2. 顺序容器
  3. 关联容器
  4. 迭代器
  5. 泛型算法入门
  6. C++11新增语法简介

项目实战:实现小型STL库miniSTL

1730134-3f1ef33ffc108bc1.png

应用场景:

STL是C++的标准模板库,是模板编程非常经典的案例。无论笔试还是面试都会涉及到它的一些实现问题,所以自己手动实现一部分经典STL是C++学习一个必须的过程。
通过miniSTL,我们还将学习软件开发中的单元测试和接口文档编写,接触真实的软件开发。


阶段三:C++进阶阶段

此阶段学完之后可以熟练掌握企业级常用开发技术以及原理;深入了解C++重载原理和对象模型。

课程内容:

  1. 重载原理分析
  2. 动态库静态库的制作与使用
  3. C++类型转换
  4. C++对象模型简介

项目实战:多级别多输出可配置日志库TinyLog

1730134-3cbceb43af54e8dc.png

应用场景:

企业级C++开发中,直接开发可执行文件的情况约占30%,更多的情况是开发动态库或者静态库。所以,熟练开发动态库和静态库是C++必须掌握的技能。
日志模块是所有大型系统中不可缺少的部分,通过日志开发和使用,初步了解大型系统开发方式和调试方法。


阶段四:STL进阶阶段

此阶段学完之后可以掌握各种高级STL技术;能够使用各种智能指针并理解底层实现原理。

课程内容:

  1. 空间配置器
  2. 萃取编程技巧
  3. 仿函数
  4. 容器适配器
  5. 泛型算法进阶
  6. 智能指针应用与分析
  7. C++11 lambda表达式

项目实战:智能指针库SmartPtr

1730134-01e2e594e6743192.png
1730134-2282e4965293f0d4.png
1730134-38ed0ace21abb0f3.png
1730134-f2a6fe689f9e0ac8.png

应用场景:

C++最复杂和最容易出错的是内存管理,智能指针简化了内存管理方式。本阶段通过实现各种智能指针,熟练掌握C++高级内存管理方式,远离内存泄露风险。


阶段五:第三方库使用与分析

此阶段学完之后可以熟练搭建第三方库,熟练编写和实施代码单元测试,熟练使用boost和asio开发和发布程序。

课程内容:

  1. C++测试框架CppTest环境搭建与使用
  2. boost标准库开发环境搭建与使用
  3. asio环境搭建与使用

项目实战:高性能HTTP静态服务器

1730134-aa37bf16808c2bab.png

应用场景:

服务器程序开发是C++开发的另一个重要的方向,通过开发HTTP服务器,了解HTTP协议,掌握网络开发的基本流程和方法。


阶段六:区块链

此阶段学完之后可以区块链核心原理、交易流程和应用场景,能够设计和开发区块链程序。

课程内容:

  1. 区块链核心概念
  2. 区块链白皮书解读
  3. 比特币原理分析
  4. 比特币源码解读
  5. 以太坊原理分析
  6. 以太坊源码解读

项目实战:WestOSCoin数字货币

1730134-eee043507b59f8a6.png

应用场景:

区块链是当前非常热门的技术。在本阶段,学习区块链的相关概念和技术,结合前面学习到所有C++技能,自己手动实现一个数字货币。

展开阅读全文

没有更多推荐了,返回首页