C语⾔C++学习路线图(2021整理)
C++是C语⾔的继承,它既可以进⾏C语⾔的过程化程序设计,⼜可以进⾏以抽象数据类型为特点的基于对象的程序设计,还可以进⾏以继承和多态为特点的⾯向对象的程序设计。C++擅长⾯向对象程序设计的同时,还可以进⾏基于过程的程序设计,因⽽C++就适应的问题规模⽽论,⼤⼩由之。
可以关注 微 信 公 众 号 “C和C加加” 回复 “ZXC” 即可获取 详细教程 和 PDF版!
接下来是⼩编整理过C/C++⼯程师必备知识的思维导图。
初学者看到这么密集的知识点,是不是有点眼晕呢?的确,C/C++是⼀门知识⾯覆盖很⼴的学科。想学好C/C++的你并不需要慌张,内容虽多,但依然有法可依。只要有⾜够的耐⼼和毅⼒,加上正确的学习⽅法,就不怕你学不好C/C++。
既然如此,C/C++开发到底需要学些什么呢,⼜应该怎么学呢?
⼀、初级⼊门阶段
在⼊门之初,⾸先要做的是通过C/C++语⾔的学习培养编程思维和动⼿能⼒,深刻理解⾯向过程和⾯向对象的思想⽅法。这个阶段你需要
学习:
1、C语⾔
数据类型、变量、内存布局、指针基础;
字符串、⼀维数组、⼆维数组;
⼀级指针,⼆级指针,三级指针,N级指针概念,指针数组和数组指针;
结构体、⽂件的使⽤;
动态库的封装和设计;
函数指针回调函数。
2、C++语⾔
⾯向对象编程思想;
类的封装,构造和析构、静态成员、对象管理;
类的构造(有参构造函数、⽆参构造、拷贝构造、默认构造函数)和析构;
对象动态管理、友元函数、友元类、操作符重载;
C++编译器对象管理模型分析;
类对象的动态管理(new/delete);
友元函数和友元类;
运算符重载(⼀元运算符、⼆元运算符、运算符重载难点、项⽬开发中的运算符重载);
类的继承、多继承及其⼆义性、虚继承;
多态(概念、意义、原理剖析、多态案例);
c语言如何去学虚函数、纯虚函数、抽象类(⾯向抽象类编程思想案例);
函数模板、类模板,模板的继承;
C++类型转换;
C++输⼊输出流(标准I/O ⽂件I/O 字符流I/O);
C++异常处理(异常机制、异常类型、异常变量、异常层次结构、标准异常库);
3、常见常⽤的IDE开发⼯具
可以参考这篇博⽂
此阶段的学习难度系数不⼤,掌握这些内容之后,可以做些简单的⼩项⽬。当然了如果你想⽤这些技能⼯作的话确实是⽐较困难的。这时你还应该在加把劲进⼀步学习第⼆阶段。
⼆、C/C++开发进阶
这⼀阶段的⽬标才是达到C/C++软件⼯程师开发⾏业的基本要求,这个阶段是我们⾛向C/C++开发的进阶之路,更是⼀个让⾃⼰份薪⽔⽐较体⾯的⼯作的筹码。
那么这个阶段,我们⼜应该掌握什么呢,继续往下看:
1、C++进阶之STL
STL = Standard Template Library,即标准模板库。这是提⾼开发效率的极品⼯具。通过学习此阶段,应掌握泛型编程技巧,理解容器类在C++语⾔中的应⽤模式,以及熟练掌握全部STL类的使⽤⽅法。
2、C++进阶之设计模式
决定⼀个项⽬成败最重要的因素是项⽬总体的设计,通过本阶段的学习,可掌握⾯向对象编程中重要的⼀环,是编码前建模的技巧所在。单例模式;⼯⼚模式;代理模式;迭代模式等,这些都是你要掌握的哦。
3、C++进阶之数据结构基础
这是所有编程语⾔中最应该学习的部分,程序组成的基础之⼀。
顺序存储、链式存储、循环链表;
双向链表、栈(顺序和链式)、队列(顺序和链式);
栈的应⽤、树基本概念及遍历、⼆叉树;
排序算法、并归算法、选择、插⼊、快速、希尔。
4、C++进阶之UI界⾯开发
掌握QT类库构架,图形界⾯开发模型;
掌握QT开发技巧,消息机制,图形处理;
掌握QT⽹络编程,UDP,TCP使⽤⽅式;
掌握QT⽂件处理⽅式,序列化;
掌握QT在windows,linux,ios,android不同平台下的移植技术。
5、C++进阶之Unix/Linux⽹络服务器
掌握Unix/Linux平台开发⽅式;
熟练使⽤系统调⽤;
熟练Unix/Linux内存管理,进程,线程调度;
熟悉⽹络服务器开发⽅式,熟练编写TCP,UCP⽹络服务程序;
掌握同步/异步IO模型在⽹络编程中的使⽤⽅式。
7、C++进阶之数据库开发
掌握SQL语⾔的实⽤技巧。Oracle,MySQL数据库的使⽤⽅式。
如果你能熟练掌握以上列出的技能,具备解决复杂问题和技术难点的能⼒,⽽且你能独⽴开发⼀些⽐较复杂的功能模块,那么很荣幸地告诉你,你已经达到中级⽔平,薪资过万对你来说简直是⼩菜⼀碟。
三、C/C++开发⾼级
可以关注 微 信 公 众 号 “C和C加加” 回复 “ZXC” 即可获取 详细教程 和 PDF版!
1、此阶段软件开发⼯作所需的知识和技能相对较难,⾼级软件⼯程师编码熟练度和规范性需要达到⼀定要求;
2、具备⼀定的项⽬能⼒(包括调试能⼒、⽂档编写能⼒、测试能⼒等)和综合技术素质(包括对软件⽣命周期的理解、对设计模式的理解、必备的⾏业知识和经验等);.
3、了解主流的后台技术和前后端协作⽅式,能从全局⾓度理解项⽬的整个⽣命周期。
如果你能熟练掌握以上三个阶段的知识技能,那么你就可以满⾜C++开发⾏业的⾼级需求。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论