Cpp后台学习计划与记录

2022-11-14 14:22:17 浏览数 (1)

Cpp后台需要学习的知识多而杂,务必要制定一个切实可行的学习计划。

Cpp后台书籍&项目

技术栈思维导图

Cpp

  • 《C primer》 √
  • 《Effective C 》 √   第一遍:43-47,49-52未读。
  • 《Effective STL》
  • 《STL源码剖析》-
  • 《深度探索C 对象模型》
  • 《More Effective C 》

Linux环境&相关工具

  • 《鸟哥的Linux私房菜I》-
  • GCC/GDB -
  • Make/CMake
  • Git -

算法与数据结构

  • LeetCode Top100 Liked Questions -
  • LeetCode -
  • 《挑战程序设计竞赛》 -

系统编程

  • 《深入理解计算机操作系统》 -
  • 《Unix/Linux编程实践教程》 √
  • 《Linux/UNIX系统编程手册(上册)》 √
  • 《Linux/UNIX系统编程手册(下册)》 √
  • 《UNIX环境高级编程》

网络编程

  • 《TCP/IP详解 卷1:协议》
  • 《TCP/IP详解 卷2:实现》
  • 《UNIX网络编程 卷1:套接字联网API》-
  • 《UNIX网络编程 卷2:进程间通信》
  • 《Linux多线程服务器端编程:使用muduo C 网络库》-

Linux内核

  • 《计算机操作系统(汤小丹汤子瀛版)》√
  • 《Linux内核设计与实现》

源码阅读

  • Tinyhttpd √
  • Webbench √
  • leveldb
  • muduo
  • Redis
  • nginx
  • UNIX v6

项目实践

  • C 线程池 √
  • C 内存池 √
  • 代理程序
  • ftp服务器
  • 网络库
  • 即时通讯软件
  • 消息队列
  • k-v数据库

笔试面试

  • 牛客网面经 -
  • 牛客笔试题
  • 《剑指offer》 √
  • 《编程之美》

其他

  • 《后台开发:核心技术与应用实践》 -   本书可以用来当做一个知识图谱,具体知识还需要去看相应书籍来学习。
  • 《Redis设计与实现》
  • 《深入理解Nginx》

要点与注意事项

  • 基础知识是最根本的,也是最基本的。这些书一定要过一遍,并且有些书要读不止一遍。
  • 每一阶段的学习一定要多总结!多总结!可以总结到博客里,不然很快就会忘记。

学习计划与记录

思维导图对应markdown

本图参考《后台开发:核心技术与应用实践》

代码语言:javascript复制
# 后台开发
## 常用类库
### JSON
* 掌握JSON的结构
* JSON相关库的使用
* JSON的用途
### Protobuff
* 了解Protobuff的特点
* 能熟练使用Protobuff
* 了解Protobuff的用途
## HTTP协议
### HTTP协议
* HTTP协议结构
* HTTP的原理
### CGI
* 掌握CGI的环境变量
* 熟练掌握GET和POST参数的使用
### FASTCGI
* 了解FASTCGI是什么
## 进程通信
### 多线程
* 了解多线程的使用、属性
* 了解进程同步问题
* 了解多线程重入问题
### 进程
* 掌握进程的创建与结束
* 掌握僵尸进程和守护进程
* 熟练使用daemon函数
### 进程间通信
* 掌握管道、共享内存和信号量的使用
* 了解消息队列
* 掌握ipcs工具的使用
## 网络通信
### TCP协议
* 深入了解TCP协议和状态流转图
* 掌握超时重传、滑动窗口、与用塞控制机制
* 熟练使用网络编程api
* 了解TCP协议选项
* 了解网络字节序和主机序的区别
* 可以轻松地写出一个客户端和服务器端
### 网络IO模型
* 了解网络IO模型
* 知道selectpollepoll的使用方法和原理
* 了解selectpollepoll的区别
### 网络分析工具
* 熟练使用pingtcpdumpnetstatlsof四款工具
## 编译调试
### 编译与链接
* 了解编译与链接过程中都发生了什么
### Makefile的编写
* 能熟练地编写Makefile
### 目标文件
* 了解ELF文件类型
* 了解两种视图下ELF文件的内容
* 了解处理目标文件相关工具
### 调试工具
* 熟练使用stracegdb调试程序
* 熟练使用toppsvalgrind工具分析进程
## 编程语言
### 语法
* 熟练掌握函数、数组指针、引用、结构体、预处理等语法知识
### 面向对象
* 类与对象
    * 掌握类的封装性
    * 掌握构造函数、析构函数、静态数据成员
    * 掌握类模板
    * 会计算对象的存储空间
* 类的继承与派生
    * 熟练使用类的继承与派生
    * 了解派生类的访问属性
* 类的多态
    * 熟练使用类的多态和虚函数
    * 能使用单例模式
    * 掌握纯虚函数的用法
### STL的使用
* 掌握stringvectormapset的使用和原理
* 使用时需注意的细节

欢迎与我分享你的看法。 转载请注明出处:http://taowusheng.cn/

0 人点赞