分享

C++程序员学习要点

 心不留意外尘 2017-04-04

http://blog.csdn.net/temotemo/article/details/7688623
 
     C++程序员应掌握数据结构、编译原理、操作系统、离散数学等理论方面的基础知识。此外,在编程实践中,还需具备一些具体技术要点,新进 C++程序员应在一年内完成学习“basic”类别知识点,两年内完成学习“advance”类别知识点,三到四年内完成学习“expert” 类别知识点。 
 

一、语言相关 

1、基础(Basic) 

(1)变量与基本类型:语言内置类型、常量、变量的初始化、变量的作用域、变量的 
          限定符、变量引用、枚举; 
(2)typedef  和#define; 
(3)数值与指针:数组定义与初始化、多维数值、指针操作; 
(4)表达式:算术/逻辑计算、位运算、优先级、类型转换; 
(5)语句:简单语句、声明/定义语句、复合语句、条件/循环控制语句、异常处理语 
          句; 
(6)函数:函数声明、参数传递、堆栈概念、函数重载; 
(7)标准IO:条件状态、缓冲区、文件流、字符流、本地化; 
(8)类和数据抽象:类的定义与声明、类的构造函数、静态成员、拷贝构造函数、操 
          作符重载、类型转换; 
(9)面向对象编程:数据(封装)抽象、继承、多态(动态绑定); 

2、进阶(Advance) 

(1)模板与泛型编程:模板定义、实例化、类模板成员、重载、特化; 
(2)智能指针:auto_ptr、shared_ptr、scoped_ptr; 
(3)STL 容器:顺序容器(vector、list、deque、queue、priority_queue、string)和关 
          联容器(map、set、multimap、multiset); 
(4)STL 算法:迭代器、算法; 
(5)常用复杂数据结构:hash_map、boost.any、boost. array、boost. regex、boost. variant、 
          boost. multi_array、boost. pointer_container; 

3、高级(Expert) 

(1)高级泛型编程:表达式模板、模板元编程、Concept 编程; 
(2)程序架构,内存池,线程池; 
(3)高级抽象:boost.mpl、boost.lambda、boost.fusion、boost.proto; 
(4)范式应用:boost.spirit; 
(5)应用程序库:boost.asio  、boost.graph、blitz++、Loki、CGAL、uBLAS; 

二、系统相关 

1、基础(Basic) 

(1)Windows API 之基础服务:文件系统、注册表、内存管理、DLL、多媒体; 
(2)Windows API 之内核对象:句柄、信号、线程、进程、互斥、事件、文件映射、 
          命名管道、邮槽、计时器、完成端口; 
(3)Windows API 之图形设备接口:设备上下文、打印、字体、笔/刷、路径、区域、 
     位图; 
(4)Windows API 之图形用户界面:窗口、标题、菜单、状态栏、消息、图标、按钮、 
          编辑框、组合框、列表框、滚动条、通用对话框; 
(5)环境配置及Shell 编程:环境变量、右键菜单、属性、关联; 
(6)Socket 编程; 
(7)Web 相关API; 

2、进阶(Advance) 

(1)MFC/ATL:文档视图结构、对话框、通用控件、OleDB、WinInet; 
(2)COM、自动化、ActiveX:Office 开发、IE 插件、VBA; 
(3)高级图形系统:OpenGL、DirectX; 
(4)二次开发:ObjectArx; 

三、计算相关 

1、计算机图形学 

(1)向量:点积、叉积、求模、单位化、复合运算;(basic) 
(2)矩阵:算术运算、平移/旋转/缩放/错切等变换、求逆、特征值;(basic) 
(3)四元组合欧拉角:与其他表示转换;(advance) 
(4)参数曲线/曲面:贝塞尔、(非)均匀有理样条;(advance) 
(5)三维几何体的构造与描述;(expert) 

2、计算几何 

(1)几何查找与判断:点与线、线与线、点与多边形;(basic) 
(2)多边形:简单多边形、凸多边形、多边形三角剖分;(advance) 
(3)凸壳及其应用;(advance) 
(4)Voronoi 图/三角剖分及其应用;(advance) 
(5)多边形的交与并;(expert) 
(6)平面图;(expert) 

3、数值计算 

(1)数值计算的三大任务:求值、解方程(组)、函数逼近;(basic) 
(2)数值计算的误差、适定性、稳定性;(basic) 
(3)解线性方程组直接方法:Gauss 消元法、三角分解法;(basic) 
(4)解线性方程组一般迭代方法:基本迭代、Jacobi 迭代、G-S 迭代、SOR/SSOR 迭代; 
        (advance) 
(5)解线性方程组的变分迭代法:共轭梯度、预处理共轭梯度法;(expert) 
(6)解非线性方程组迭代方法:Newton 迭代法、Newton-Raphson 迭代法、同伦算法; 
        (expert) 
(7)求解矩阵特征值:乘幂法与反乘幂法、Rayleigh 商迭代法、QR 法、Krylov 子空间 
          法;(expert) 
(8)插值:多项式插值、样条插值;(advance) 
(9)数值积分:Simpson 公式、Gauss 积分;(basic) 
(10)解常微分方程:欧拉法、Runge-Kutta 法;(advance) 

(11)解椭圆方程:有限单元法、有限差分法、边界元法;(expert) 



 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多