C++就业方向课程
2023-12-19 21:14:50 0 举报
AI智能生成
马士兵教育 球球的
作者其他创作
大纲/内容
Linux内核底层开发方向
第一部分:Linux和内核基础
1.1 Linux操作系统基础
Linux系统结构
基本的Linux命令和操作
Linux文件系统结构
1.2 内核编程环境设置
Linux内核源代码获取和编译
内核模块编程基础
使用Git进行版本控制
第二部分:内核编程基础
2.1 内核编程语言和工具
C语言在内核开发中的应用
内核构建系统(如Makefiles)
调试工具(如gdb, kgdb)
2.2 内核数据结构和算法
常用的内核数据结构
内核空间和用户空间的交互
内存管理和进程调度
第三部分:设备驱动开发
3.1 字符设备驱动
字符设备驱动编写基础
设备文件和设备树
设备驱动的注册和注销
3.2 块设备驱动和网络驱动
块设备驱动的基本概念
网络接口和协议栈
驱动程序的错误处理和性能优化
第四部分:内核子系统
4.1 文件系统
Linux文件系统框架
VFS和文件系统接口
新文件系统的开发
4.2 内存管理
内存分配和页面替换算法
虚拟内存和交换空间管理
Slab分配器和内存碎片
4.3 进程调度和同步
进程调度策略
锁机制和并发控制
中断处理和底半部(Bottom Halves)
第五部分:高级内核主题
5.1 内核安全和性能优化
安全模块和访问控制
性能分析和调优技术
内核补丁和更新
5.2 虚拟化和内核扩展
Linux虚拟化技术(如KVM)
内核模块的高级编程
跨平台和架构特定的开发
第六部分:实际项目和社区参与
6.1 参与开源项目
Linux内核社区和贡献
提交补丁和代码审查
跟踪和解决Bug
c++逆向工程师方向
第一部分:汇编语言和机器代码
2.1 基础汇编语言
2.1.1 x86/x64架构基础
2.1.2 指令集和寄存器
2.1.3 汇编语言程序结构
2.2 从汇编到高级语言
2.2.1 理解汇编代码
2.2.2 推断高级语言结构
2.2.3 汇编与C++代码的对比
第二部分:操作系统原理
3.1 操作系统基础
3.1.1 Windows和Linux系统结构
3.1.2 系统调用和内核模式
3.1.3 进程和线程管理
3.2 系统编程
3.2.1 操作系统API
3.2.2 驱动程序编写基础
3.2.3 内存管理与虚拟内存
第三部分:软件调试技术
4.1 调试器基础
4.1.1 调试器选择(GDB、OllyDbg、IDA Pro)
4.1.2 断点、追踪和日志记录
4.1.3 调试实践
4.2 动态和静态分析
4.2.1 代码覆盖率和性能分析
4.2.2 静态代码分析工具使用
4.2.3 逆向工程基础
第四部分:逆向工程工具和技术
5.1 二进制文件分析
5.1.1 文件格式(PE、ELF)
5.1.2 反编译和反汇编工具使用
5.1.3 二进制漏洞分析
5.2 逆向工程实战
5.2.1 实际软件逆向案例分析
5.2.2 逆向工程挑战
5.2.3 伦理和法律方面的考虑
第五部分:网络和通信协议
6.1 网络编程基础
6.1.1 理解TCP/IP协议
6.1.2 套接字编程(Socket Programming)
6.1.3 网络数据包分析(使用Wireshark等)
6.2 加密和安全通信
6.2.1 基本加密算法(如AES、RSA)
6.2.2 安全协议(如SSL/TLS)
6.2.3 实现安全数据传输
第六部分:加密与安全
5. 加密算法和混淆技术
常见加密算法:了解常见的加密算法,如AES、DES、RSA等,并掌握其原理和应用。
常见混淆技术:了解常见的混淆技术,如代码混淆、数据混淆等,并掌握其原理和应用。
破解方法和技术:了解常见的破解方法和技术,如暴力破解、密码学破解等。
7.1 加密技术基础
7.1.1 常见加密算法及其应用
7.1.2 哈希函数和数字签名
7.1.3 加密协议的理解和应用
7.2 软件安全和漏洞分析
7.2.1 缓冲区溢出和注入攻击
7.2.2 逆向工程中的安全防御技术
7.2.3 漏洞挖掘和利用技术
第七部分:软件破解与逆向攻防
8.1 软件许可证和认证机制破解
8.1.1 软件授权机制分析
8.1.2 破解方法和技巧
8.1.3 法律和伦理问题
8.2 实际逆向工程案例
8.2.1 分析商业软件的逆向工程案例
8.2.2 实战演练和挑战
8.2.3 案例研究和解决方案
第八部分:实际案例分析和实践
9.1 项目实战
9.1.1 参与开源逆向工程项目
9.1.2 完成逆向工程挑战和练习
9.1.3 分析和讨论现实世界中的逆向案例
9.2 技能提升和持续学习
9.2.1 参加相关研讨会和会议
9.2.2 阅读逆向工程和安全领域的书籍和论文
9.2.3 跟踪行业动态和技术发展
C++游戏开发方向
C++游戏开发需要掌握以下技术
C++语言基础:熟练掌握C++语言基础,包括语法、数据类型、控制结构、函数、指针等。
数学和物理知识:游戏开发中需要用到数学和物理知识,如向量、矩阵、物理引擎等。
游戏引擎:游戏引擎是游戏开发的核心,需要掌握常见的游戏引擎,如Unity、Unreal Engine等。
游戏图形学:游戏图形学是游戏开发的重要组成部分,需要掌握图形学的基础知识,如渲染流程、OpenGL、D3D等。
游戏脚本编程:游戏脚本编程是实现游戏逻辑的重要手段,需要掌握脚本编程语言,如Lua、C#等。
游戏优化:游戏优化是提高游戏性能的关键,需要掌握性能分析和优化方法。
团队协作:游戏开发需要团队协作,需要掌握版本控制工具如Git、沟通协作工具如Slack等。
数学和物理知识
向量:掌握向量的基本概念和运算,如加法、减法、点乘等。
矩阵:掌握矩阵的基本概念和运算,如乘法、转置等。
物理引擎:了解物理引擎的基本概念和原理,如碰撞检测、刚体动力学等。
游戏引擎
Unity:掌握Unity引擎的基本操作和开发流程,如场景搭建、模型导入、脚本编写等。
Unreal Engine:了解Unreal Engine引擎的基本操作和开发流程,如蓝图、材质等。
cocos2dx
游戏图形学
渲染流程:了解渲染流程的基本步骤,如顶点着色器、片段着色器等。
OpenGL:了解OpenGL的基本原理和用法,如渲染管线、着色器程序等。
D3D:了解D3D的基本原理和用法,如设备创建、资源管理等。
游戏脚本编程
Lua:掌握Lua脚本编程语言的基本语法和开发流程,如变量、函数、条件语句等。
C#:了解C#脚本编程语言的基本语法和开发流程,如类、接口、事件等。
C#语言基础:熟练掌握C#语言基础,包括语法、数据类型、控制结构、函数、指针等。
Unity引擎:掌握Unity引擎的基本操作和开发流程,包括场景搭建、模型导入、脚本编写等。了解Unity的各个组件和API,如GameObject、Transform、Rigidbody等。
MonoBehaviour类:掌握MonoBehaviour类的基本属性和方法,如Start、Update、OnGUI等,了解如何使用MonoBehaviour类来实现游戏逻辑。
常用类和接口:掌握常用的类和接口,如Vector3、Vector2、Quaternion、Color等,了解它们的作用和使用方法。
游戏优化
性能分析:掌握性能分析工具的用法,如Unity的性能分析器、帧调试器等。
优化方法:了解常见的优化方法,如减少渲染复杂度、优化算法等。
音频技术
了解游戏音频系统的基本原理和实现方法,如音频合成、音效处理等,掌握音频编辑软件如Audacity等。
团队协作
Git:掌握Git版本控制工具的用法,如分支管理、合并冲突等。
测试和调试技术
掌握游戏测试和调试的基本方法和技术,如单元测试、集成测试、调试工具等。
核心基础必掌握实战课程
C语言编程实战
C语言开篇
数据类型
C语言输入和输出
运算符和表达式
流程控制
数组
函数
C语言预处理
指针
复合数据类型
C程序的组成
C++编程实战
C++简述
C++对C的拓展1
类和对象
继承
多态
C++对C的拓展2
异常
强制类型转换
泛型编程
STL
程序员常用数据结构
数据结构概述
线性表
栈和队列
树
哈希表
图
程序员实用算法
冒泡法排序
选择排序
插入排序
快速排序
归并排序
常用排序算法总结
二分查找法
QT应用程序开发
QT基础知识
QT基础编程
信号和槽
事件与事件处理
QT编程高级
QT FFmpeg编译和应用
QT RTMP推拉流
嵌入式软件开发工程师方向
阶段1:IoT开发基础课程
阶段2:IoT应用开发
Linux操作系统
Linux的概述与安装
Linux基础操作
Linux软件安装与配置
linux常用命令
Linux 用户管理
Linux网络管理
探寻Linux文件IO的奥秘
虚拟机的使用
文件IO
标准IO
嵌入式传感器编程
开发板的使用
交叉开发
串口传感器编程
GPIO编程
Linux高并发编程
进程的环境
进程的控制
进程间通信
线程
线程的控制
高级IO
计算机网络基础
前言
计算机网络概述
计算机网络体系结构
Linux网络编程
基本TCP套接字编程
基本UDP套接字编程
I/O复用
套接字选项
名字与数值转换
高级I/O函数
Unix域协议
Mysql数据库
数据库的基本概念
数据库类型和常见的关系型数据库
MySQL介绍
MySQL的安装
MySQL登录,访问,退出操作
数据库的卸载
使用图形客户端navicat12连接MySQL
SQL语言入门
创建数据库表
shell编程
shell脚本的变量
Shell编程之数学运算和条件
shell脚本之if判断
Shell编程之for循环和case语句
shell脚本之while循环和用户输入
shell脚本之自定义函数
Shell编程之函数案例和cut命令
shell脚本之awk命令工具
基于TCP的聊天室项目开发
阶段3:UI界面开发
智能家居控制系统开发
阶段4:ARM应用程序开发
STM32应用程序开发
如何安装 KEIL5
如何用 DAP 仿真器下载程序
初识 STM32
什么是寄存器
初识 HAL 固件库
使用 STM32CubeMX 新建工程
GPIO 输出—使用固件库点亮 LED
GPIO 输入—按键检测
启动文件详解
RCC—使用 HSE/HSI 配置时钟
STM32 中断应用概览
EXTI—外部中断/事件控制器
SysTick—系统定时器
通讯的基本概念
USART—串口通讯
DMA—直接存储区访问
常用存储器介绍
I2C—读写 EEPROM
SPI—读写串行 FLASH
串行 FLASH 文件系统 FatFs
LCD—液晶显示
电阻触摸屏—触摸画板
ADC—电压采集
IWDG—独立看门狗
WWDG—窗口看门狗
SDIO—SD 卡读写测试
DAC—输出正弦波
读写内部 FLASH
UCOSII实时操作系统
软件仿真
裸机系统与多任务系统
任务定义与任务切换的实现
任务时间片运行
阻塞延时与空闲任务
时间戳
就绪列表
支持多优先级
实现时间片
任务的挂起与恢复
任务的删除
移植uC/OS到STM32
创建任务
启动流程
消息队列
信号量
互斥量
事件
软件定时器
任务信号量
任务消息队列
内存管理
中断管理
智能温室大棚控制系统开发
阶段5:IoT应用开发拓展
5G物联网应用开发(课程正在更新中,预计年底更新完成)
初识NB-IoT
NB-IoT模块应用
ZigBee 应用开发
ROS机器人操作系统入门
ROS系统入门
ROS系统架构及示例
ROS应用开发
阶段6:综合项目实战
无人售货机
C++后端开发方向
阶段1:Linux 系统编程
Linux操作系统
Linux的概述与安装
Linux基础操作
Linux软件安装与配置
linux常用命令
Linux 用户管理
Linux网络管理
探寻Linux文件IO的奥秘
虚拟机的使用
文件IO
标准IO
Linux高并发编程
进程的环境
进程的控制
进程间通信
线程
线程的控制
高级IO
计算机网络基础
前言
计算机网络概述
计算机网络体系结构
Linux网络编程
基本TCP套接字编程
基本UDP套接字编程
I/O复用
套接字选项
名字与数值转换
高级I/O函数
Unix域协议
Mysql数据库
数据库的基本概念
数据库类型和常见的关系型数据库
MySQL介绍
MySQL的安装
MySQL登录,访问,退出操作
数据库的卸载
使用图形客户端navicat12连接MySQL
SQL语言入门
创建数据库表
阶段2:中间件技术
Redis核心技术与实战
Redis入门
Redis基础数据类型
Redis高级数据类型
Redis高级特性与应用
Redis的持久化
Redis与分布式锁
Redis主从与集群
Redis与缓存问题
Redis设计与实现
RocketMQ基础实战版
什么是消息中间件
RocketMQ介绍
RocketMQ安装
消息的处理
集群消费模式
广播消费模式
顺序消息
延迟消息
批量消息
过滤消息
集群部署
RocketMQ存储设计
分布式事务
RocketMQ监控平台
生产与消费的负载均衡机制
面试题分析
RocketMQ源码分析
阶段3:C++高级架构师
Boost(需要采购课程)
C++ Boost提供的六种进程间通信技术介绍
C++ cmake脚本链接Boost库
C++ Boost库无锁队列、阻塞型队列
boost简介
C++ boost库开发环境配置
boost数值转换
boost字符串处理
windows下编译boost库
boost ubuntu编译指南
boost日期时间类的用法
boost timer类实现程序计时
boost数组array
散列容器,双向映射容器,环形缓冲区
boost for循环
boost 多维动态数组multi_array
boost库读写ini
boost解析xml文件
boost多线程
boost智能指针
boost协程技术
libevent(需要采购课程)
安装libevent-跨平台编译和示例
libevent原理和网络模型设置
event事件处理原理和实战
bufferevent缓冲IO
bufferevent联合zlib实现在过滤器中压缩和解压缩
libevent的http接口实现服务器和客户端
C++应用开发常用工具(需要采购课程)
Openssl对称加密与非对称加密
Json数据解析Xml解析器和工具包
字符编码Unicode原理及编程实践
设计模式
设计模式概述
UML图
六大设计模式
创建型模式
结构型模式
行为型模式
开源实战
Nginx基础应用实战
企业级Web应用及Nginx介绍
企业级Nginx安装部署
Nginx程序结构及核心配置
Nginx部署静态网站项目
Nginx处理用户请求原理
Nginx安全访问控制
Nginx企业级应用场景进阶配置及操作
Nginx添加https安全认证
Nginx结合Lua实现网站安全加固
Nginx负载均衡
容器管理工具 Docker
企业应用部署容器化演进之路
Docker生态架构及部署
使用容器运行Nginx及Docker命令介绍
Docker容器镜像介绍及应用
Docker容器镜像加速器及容器镜像仓库
Docker容器化部署企业级应用集群
Dockerfile精讲及新型容器镜像构建技术
Docker容器网络与通信原理深度解析
Docker容器数据持久化存储机制
Docker容器服务编排利器 Docker Compose应用实战
Docker主机集群化方案 Docker Swarm
基于Docker容器DevOps应用方案 企业业务代码发布系统
阶段4:项目实战
IM 高并发即时通信项目
游戏服务器框架设计
扩展提高
dpdk,网络协议栈,vpp,OvS,DDos,SDN,NFV,虚拟化
DPDK(Data Plane Development Kit):DPDK是一个开源的库,用于优化数据平面的网络性能。它提供了一套丰富的API,使得应用程序可以快速地访问网络数据包,并对其进行处理。学习DPDK需要了解其工作原理、安装配置、编程接口以及在C++中使用DPDK的示例代码等。
网络协议栈(Network Protocol Stack):网络协议栈是网络通信的核心,它包括了TCP/IP协议栈、ARP协议、ICMP协议等。学习网络协议栈需要了解各个协议的原理和作用,以及在网络通信中的角色和相互之间的关系。同时还需要掌握如何使用C++编写网络应用程序,如socket编程等。
VPP(Versatile Platform):VPP是一个开源的SDN(Software-Defined Networking)平台,它提供了一种灵活、高效的方式来构建和管理网络。学习VPP需要了解其工作原理、安装配置、编程接口以及在C++中使用VPP的示例代码等。
OvS(Open vSwitch):OvS是一个开源的虚拟交换机,它可以用于虚拟化环境中的网络交换。学习OvS需要了解其工作原理、安装配置、编程接口以及在C++中使用OvS的示例代码等。
DDos(Distributed Denial of Service):DDos是一种网络攻击手段,通过大量的请求流量,使目标服务器无法响应正常请求。学习DDos需要了解其原理、防御方法以及在C++中如何编写DDos攻击的示例代码等。
SDN(Software-Defined Networking):SDN是一种将网络控制功能与转发功能分离的技术,通过集中控制器来实现网络流量的灵活控制。学习SDN需要了解其工作原理、安装配置、编程接口以及在C++中使用SDN的示例代码等。
C++ 音视频流媒体高级开发方向
音视频开发必知必会
音频基础
音频基础-模数转换原理
音频基础-高品质音频采样
音频基础-采样点
音频基础-脉冲编码调制
视频基础
视频基础-三基色
视频基础-YUV格式
视频基础-分辨率、帧率、码率
视频基础-常见复用格式
FFmpeg开发环境搭建
QT安装
FFmpeg命令行环境
FFmpegAPI环境
FFmpeg编译
vs安装(win平台)
常用开发工具
Mediainfo 分析视频文件
VLC播放器
TS流分析
FLV分析
MP4分析
音频PCM分析
H264分析
YUV分析
FFmpeg开发
FFmpeg基本命令
什么是FFmpeg
FFmpeg能做什么
音频PCM/AAC文件提取
视频YUV/H264文件提取
音视频录制
图片/视频转换
直播推流和拉流
SDL多媒体开发库实战
SDL环境搭建
SDL事件处理
SDL线程处理
视频YUV画面追染
音频PCM声音输出
FFmpeg基础
FFmpeg框架
FFmpeg内存引用计数模型
AVFormat
压缩数据AVPacket
未压缩数据AVFrame
FFmpeg面向对象思想
Packet/Frame数据零考贝
FFmpeg解复用和解码
解复用流程
音频解码流程
视频解码流程
FLV封装格式分析
MP4封装格式分析
H264 NALU分析
音频重采样实战
重采样后的数据播放时长问题
重采样后PTS如何表示
视频解码后YUV内存对齐问题
音频解码后PCM排列格式问题
FFmpeg音视频编码+复用合成视频
AAC音频编码
H264视频编码
PCM+YUV复用合成MP4/FLV
H264编码原理
IDR顿和I顿区别
动态修改编码码率
GOP间隔参考值
流媒体开发
RTMP实战
RTMP-RTMP协议分析
RTMP-H264 RTMP封装
RTMP-拉流
RTMP-H264 RTMP解析
RTMP-RTMP推流
RTMP-没有MetaData能否播放
RTMP-延迟的原因是什么
RTMP-码率调整
RTMP-帧率调整
RTMP-拉流延迟检测
RTMP-播放延迟解决方法
RTMP-播放延迟测试方法
HLS拉流实战
HLS拉流分析-HLS协议分析
HLS拉流分析-HTTP协议
HLS拉流分析-TS格式
HLS拉流分析-m3u8文件解析
HLS拉流分析-wireshark抓包分析
HLS拉流分析-FFmpeg HLS源码分析
HLS拉流分析-HLS多码率机制
HLS拉流分析-HLS延迟高解决办法
RTSP流媒体实战
RTSP协议分析
RTP协议分析
H264RTP封装
H264 RTP解析
AAC RTP封装
AAC RTP解析
RTCP协议分析
RTSP流媒体服务器搭建
RTSP推流实战
RTSP拉流实战
wireshark抓包分析
RTP头部序号的作用
RTCP的NTP和RTP的TS的区别
RTSP交互过程
SDP封装音视频信息
流媒体服务器
SRS 3.0源码深度剖析
整体框架分析
RTMP推流分析
RTMP拉流分析
HTTP-FLV拉流分析
FFmpeg转码分析
首屏秒开技术分析
forward集群源码分析
edge集群源码分析
负载均衡部署方式
连接和协程的关系
如何更快速掌握SRS源码
流媒体服务器是否导致延迟
如何降低流媒体服务器的延迟
首屏秒开能峰低延迟吗
推流->服务器转发>拉流延迟分析
ZLMediaKit原码剖析
整体框架分析
线程模块划分
RTSP推流连接处理
RTSP拉流连接处理
数据转发模型
SDP解析
RTP H264解析
RTP AAC解析
WebRTC实战
WebRTC基础入门
WebRTC通话原理分析
WebRTC开发环境搭建
音视频数据采集
一对一通话时序分析
信令服务器设计
SDP分析
Candidate类型分析
Web一对一通话
Web和Android通话
AppRTC快速演示
编码器优先级设置
最大码率限制规则
信令服务器的本质
为什么从接口获取SDP后还要再次设置
Web和Android的SDP差异
A要和B通话,A怎么知道B的存在
MESH模型多人通话
摄像头分辨率
码率限制
调整编码器顺序
Mesh模型多方通话分析
多人通话信令服务器开发
动态分配stun/tumn服务器
Web客户端源码
Janus SFU模型多人通话
Janus SFU框架分析
Janus SFU信令设计
基于Janus SFU实现会议系统
Janus SFU web客户端源码分析
基于Full ICE的部署
基于Lite ICE的部署
Full ICE和Lite ICE的区别
发布订阅模型
项目实战
开源项目深度剖析
QMplay2
OBS
ZLMediaKit
Qt视频直播软件开发
0 条评论
下一页
为你推荐
查看更多