C/C++ 与网络攻防学科作为黑马程序员所有学科中最具实力的学科之一,一直以就业稳定,平均薪资高傲为人所知。而C/C++作为一种编程语言,有着悠久的历史,应用广泛,运行速度快,安全性高,学习C/C++能让一个程序员更加了解编程的根本,同时也能让一个程序员在这个行业里走的更远。鉴于很多想自学C/C++的小伙伴找到的资料过于零碎,故总结了这个学习路线图献给大家,希望大家都能够系统地、高效地学习C/C++,并在编程的路上看到更多的风景~
第一阶段 C语言开发
1、学习目标:
1) 具备C/C++领域基础专业编程能力;
2) 独立完成项目案例;
2、知识点:
1)C语言概述计算机基础;第一个C语言程序;C的代码的含义与编译;集成开发环境(vs、qt)
2)编程基础常量与变量;进制转换;运算符;条件控制语句;数组与字符串
3)函数函数的基本概念;字符串操作的常用函数;自定义函数
4)指针指针变量的定义;指针基本使用;const修饰的指针;一级指针与数组名的关系;指针法操作数组元素;指针作为函数的参数;数组作为函数的参数;指针做函数的返回值;指针处理字符串
5)内存管理局部变量的作用域和生命周期;静态局部变量的作用域和生命周期;全局变量的作用域和生命周期;静态全局变量的作用域和生命周期;静态函数和非静态函数的区别;内存分区;堆区内存的分配(malloc)和释放(free)6)复合类型结构体的基本用法;结构体嵌套指针和数组;结构体作为函数参数;复合类型的声明与使用7)文件操作文件的分类(文本、二进制);文件的打开和关闭;文件操作函数;文件读写缓冲区的概念
轻松掌握C语言视频教程(会打字就能学会)
完整视频:http://yun.itheima.com/course/369.html?2004zzpyk
配套资料:https://pan.baidu.com/s/1UF3Va4zIozuwSoo7uzfHJw 密码:ofh9
第二阶段-C高级编程
1、学习目标:
1) 掌握C语言中的字符串、一维数组、二维数组的用法;
2) 掌握一级指针,二级指针,三级指针的高级用法,理解N级指针概念,指针数组和数组指针;
3) 学会结构体、文件的使用;
4) C语言接口封装设计。
2、知识点:
1)内存分区
函数调用模型数据类型、变量的含义;内存四区特点;函数的调用模型;内存操作函数;宏定义与预处理
2)指针高级指针基本使用;
指针的步长的概念;指针简介赋值;指针以及多级指针做函数参数的特性与使用;通过指针操作字符串;const类型修饰符;位的逻辑运算符;移位运算符;数组指针与指针数组;多维数组做函数参数;结构体嵌套一级指针;结构体嵌套二级指针;浅拷贝深拷贝
3)函数指针与回调函数
封装和设计的思想;函数指针定义的三种方式;回调函数
4)数据结构与链表
链表的基本概念;单链表的相关操作
5)递归函数
递归函数的概念;递归的使用
6)数据结构与算法
大O表示法基本概念;线性表顺序存储和链式存储概念;线性表的顺序存储(数组);线性表的链式存储(链表);队列的顺序与链式存储;栈的顺序与链式存储;二叉树基本操作;常用排序算法
7)接口的封装和设计
函数的封装设计;解耦合的设计理念;模块实现与业务分离的思想
C语言提高深入浅出
完整视频:http://yun.itheima.com/course/407.html?zzpyk
配套资料:https://pan.baidu.com/s/1jhJplSj4-ZPzSecz1elr4A 密码:ov17
C语言数据结构 培养架构师思维
完整视频:http://yun.itheima.com/course/428.html?zzpyk
配套资料:https://pan.baidu.com/s/1C4cm3tVmR0Wea9q6ut-xYQ 密码:4wi6
第三阶段-C++核心编程
1、学习目标:
1) 具备常用C++方向基本知识和常用技能。
2、知识点:
1)C++对C的扩展、引用C++语言的命名空间的使用;C++对C的扩展;C、C++中const不同之处;定义和使用引用类型变量
2)函数重载类的的默认参数;C++的函数重载;类和对象的基本概念;类的封装和访问控制权限;类和对象进行简单编程
3)类和对象类的构造函数;类的析构函数;explicit关键字作用;类的拷贝构造函数的使用;深拷贝和浅拷贝问题;多个对象的构造和析构函(初始化列表)
4)对象的动态分配和释放类和对象的动态分配和释放内存;静态成员变量和函数的使用;C++编译器对成员变量和成员方法的处理机制;this的使用;友元函数;友元类
5) 运算符重载运算符重载概念;常用运算符重载;自定义的智能指针类;实现一个自定义的String类
6) 类的继承和派生、多态继承中的访问控制;继承中的构造和析构;多继承;virtual继承的基本概念;多态的使用(多态成立条件、使用场景);区分成员函数的重写和重定义;虚函数表指针,分步初始化;虚函数;纯虚函数;抽象类的使用;虚析构函数和纯虚析构函数
7) 面向抽象类编程与设计模式设计模式原则;常用的设计模式
8)函数模板、类模板函数模板基本语法;函数模板和函数重载的调用规则;编译器对模板的编译过程;类模板的概念和基本语法;继承中的类模板;类模板中普通友元函数、友元函数模板的处理
9) 异常、I/O流C++类型转换;C++标准异常库;异常的抛出与捕获;C++标准I/O流(cin、cout);C++的文件I/O类的使用
10) STLSTL容器、迭代器的原理;序列式容器vector、string、deque;堆栈容器stack、quenue;双向链表容器list;关联式容器set、multiset;对组pair;关联式容器map、multimap;STL算法详解
C++核心编程 打造你的核心编程技能
完整视频:http://yun.itheima.com/course/427.html?zzpyk
配套资料:https://pan.baidu.com/s/1F_tvZX3h6MrlCl3U6RUJtA 密码:cka8
C++ STL 高级教程 | 深入浅出版
完整视频:http://yun.itheima.com/course/434.html?zzpyk
配套资料:https://pan.baidu.com/s/1sli_-2F9IENir1ZeLjXRMQ 密码:cj6j
第四阶段-桌面应用开发
1、学习目标:
1) 具备常用QT界面开发的基本技巧和常用技能;
2) 具备常用MFC界面开发的基本技巧和常用技能;
2、知识点:
1)Qt常用的控件Qt的基本概念;Qt应用程序框架;Qt信号和槽的应用;Qt窗口系统;常用对话框的使用;Qt界面设计;Qt事件处理
2)Qt绘图与文件操作QPainter绘图;update函数;绘图设备(QPixmap、QBitmap、QImage、QPicture);文件操作
3)MFC对话框与常用空间Windows编程的基本概念;Windows编程模型;MFC应用程序框架;创建MFC应用程序;MFC函数Ex后缀和Afx前缀的作用;创建基于对话框的MFC应用程序;模态对话框和非模态对话框;常用控件
QT从入门到实战完整版
完整视频:http://yun.itheima.com/course/539.html?zzpyk
配套资料:https://pan.baidu.com/s/196eBhivKbjDfZgZEDZ5SAQ 提取码:ammj
步步打造-frameQT自定义界面
完整视频:http://yun.itheima.com/course/433.html?zzpyk
配套资料:https://pan.baidu.com/s/1QpFmOEV6QgfJoMd3KsD0Pg 提取码:y4a8
MFC进阶教程深入浅出版
完整视频:http://yun.itheima.com/course/431.html?zzpyk
配套资料:https://pan.baidu.com/s/1HgL5A033X-ZcA9zetr1cHA 密码:y0hj
第五阶段-Linux系统编程
1、学习目标:
1) 熟悉Linux开发环境
2) 熟练使用Linux系统接口
3) 掌握进程间通信
2、知识点:
1)Linux命令Linux下的目录结构;工作日程应用命令;Ubuntu下的软件安装和卸载;
2)Linux开发与调试工具vim命令模式下操作;vim末行模式下操作;vim的配置;gcc的工作流程和掌握常见参数;Linux下的静态库与共享库(windows动态库)的制作和使用;Makefile;gdb调试;pcb和文件描述符,虚拟地址空间;
3)系统I/O操作Linux系统IO函数;阻塞和非阻塞的概念; stat/lstat函数;文件属性相关函数;链接相关概念及函数;目录操作相关概念及函数;dup、dup2函数;fcntl函数
4)进程与IPC通信进程相关的概念;进程操作相关函数;孤儿进程;僵尸进程;进程回收;进程间通信
5)线程与并发同步互斥量;死锁以及解决方案;读写锁;条件变量;条件变量实现生产消费者模型;信号量实现生产消费者模型;线程同步解决哲学家就餐问题;
6)信号信号中的基本概念;使用信号相关的函数;信号内核实现原理;信号捕捉函数signal、sigaction;使用信号完成子进程的回收;发送信号时如何进行参数传递;
学好linux? 从零基础系统编程开始
完整视频:http://yun.itheima.com/course/430.html?zzpyk
配套资料:https://pan.baidu.com/s/17E_5UIK_naKCbSIy7IHVfg 密码:3l77
第六阶段-Linux网络编程
1、学习目标:
1) 熟悉网络相关的基础知识
2) TCP/IP协议栈3) 高并发服务器开发
2、知识点:
1)网络协议与网络编程OSI七层模型结构;TCP/IP 4层模型结构;B/S、C/S优缺点对比;常见网络协议格式;套接字;网络字节序;IP地址转换函数;编写TCP的C/S网络程序;UDP通信机制与模型;本地套接字;三次握手建立连接过程;四次握手断开连接过程;滑动窗口概念;错误处理函数封装;TCP状态转换;2MSL概念;端口复用方法;半关闭;
2)高并发服务器开发(poll、select和epoll)多路IO转接模型;select函数;fd_set相关操作函数;select多路IO转接模型poll操作函数;epoll多路IO模型;线程池模型的设计思想;多进程并发服务器;多线程并发服务器;libevent库;epoll反应堆模型;使用BufferEvent、evBuffer;多线程并发服务器;
linux典藏系列之 网络编程
完整视频:http://yun.itheima.com/course/429.html?zzpyk
配套资料:https://pan.baidu.com/s/1pNonADaGLktICkpeqTUCCQ 密码:yfyy
第七阶段-项目实战相关
1、学习目标:
1) 掌握项目中常用数据库的操作;
2) 掌握shell脚本编程;
3) 掌握项目中常用的框架;
4) 掌握项目中常用的工具链;
2、知识点:
1)Oracle数据库编程简单查询;oracle的常用函数;多表查询;集合操作;DDL操作管理表;DML管理数据;其它数据库对象;PL/SQL编程;存储过程与存储函数;触发器;工具查询;解决Top-N问题;
2)MySQL数据库编程MySQL表的约束;MySQL中出现的中文乱码问题;MySQL函数库连接数据库;MySQL API访问数据库;使用基础类API实现MySQL客户端工具;预处理类API访问MySQL数据库;使用api修改MySQL事务特性;
3)MongoDB数据库编程MongoDB的安装;MongoDB的相关概念;MongoDB的基本操作指令;对MongoDB进行数据操作、索引操作;MongoDB的副本集;使用MongoDB C++ API;需求分析的一般过程;需求案例的实现原理和设计过程;案例程序框架搭建和部署;
4)Redis缓存数据库编程
5)Shell脚本编程
6)git-代码版本控制工具
7)Nginx(web框架)的搭建与使用
8)fastDFS(分布式文件系统)的配置与使用
9)持续更新。。。。。。
C++关系型数据库编程 | 4天从入门到精通
完整视频:http://yun.itheima.com/course/435.html?zzpyk
配套资料:https://pan.baidu.com/s/1O3UARlzP6yz0wNZK2WIO2g 提取码:sfw2
MongoDB从配置到编程
完整视频:http://yun.itheima.com/course/432.html?zzpyk
配套资料:https://pan.baidu.com/s/13rHVy53uCNZuAumik2ojrQ 密码:8d5k
技术干货-Linux Shell 精通
完整视频:http://yun.itheima.com/course/448.html?2004zzpqq
配套资料:https://pan.baidu.com/s/1Ss0JXNkjT6WuPw5rzc-KGQ 提取码:ziha