C++后台开发技能列表
plan
C++后台开发知识点
基础:
- csapp
语言:
- 《C++ Primer》
- 《Effective C++:改善程序与设计的55个具体做法》
- 《Effective Modern C++》
- 《STL源码剖析》
- 《深度探索C++对象模型》
- C++ template
- C++ Concurrency in Action,知乎版:https://www.zhihu.com/column/c_1307735602880331776
- more
- 《C++语言的设计与演化》
- 《More Effective C++ 》
- 《C++ 并发编程》
算法
- leetcode
- 《算法》第四版
- 《算法导论》
Linux编程基础
- apue
- unp,1-8
- 几天可看完:《TCP/IP网络编程》
- 《Linux多线程服务器端编程》
- 提升:《Linux高性能服务器编程》
Linux内核
- 《linux内核设计与实现》
- 《深入理解linux内核》
网络
- 《计算机网络 第7版》
- 《计算机网络 自顶向下方法》
- 《TCP/IP详解卷1》12-16章
C++网络编程
- boost asio 的教程可以先过一遍
- 陈硕写的muduo库,还有配套的书
- 手撸一遍,深入理解事件驱动,然后再看看libco,了解下协程
最后转go,美滋滋
数据库
- 《Redis设计与实现》
- Redis实战
- mysql必知必会
- 数据库系统概念
内存泄漏查找
- 重载 new delete 然后记录每次分配的文件和行号(可能直接重载还不行,用宏魔法不知道是不是)
- 直接上 address sanitizer
测试
- Modern C++ Programming with Test-Driven Development
分布式
- 《深入理解Nginx》
- leveldb源码
源代码学习:(测试和文档整理也很重要,项目的每一步都需要文档和数据的支撑。)
- TinyHttp是一个超微型http服务器,分析这段源码前,需要对网络协议,Unix编程,以及HTTP有一定的了解,它采用c语言编写,直接采用的是linux的socket接口编写的,可以更加底层的让读者明白一个浏览器的请求是如何被http server响应的。
- muduo是陈硕老师编写的基于Reactor模式的C++网络库,采用基于对象的方法编写的一套基础网络库。muduo将网络通信的每个过程抽象为c++对象,大量采用了c++11标准和stl来进行实现,书中还采用了较多的设计模式,这对于我们将知识融汇贯通都非常有帮助。最重要的是网上关于muduo的学习视频和资料都有很多!
-
- STL源码
- libevent:Libevent是一个轻量级的开源高性能网络库,采用事件触发,封装了以下三种事件的响应:IO事件,定时器事件,信号事件。
- Memcached:Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态数据库驱动网站的速度。
- Redis:Redis是一个基于纯内存的存储系统,虽然是C写的但是值得一看。
大话设计模式
面试:
- 《程序员代码面试指南》
- C语言C++常见面试题(含答案)
- {% iframe /web/viewer.html?file=/book/C语言C++常见面试题(含答案).pdf%}
总结理解
操作系统关键知识点:
- 进程和线程之间的区别
- 操作系统的调度算法
- 进程间通信的方式和区别
- 虚拟内存机制的作用
- 缓存的作用以及缓存替换算法
- 线程的实现方式
- 虚拟文件系统
计算机网络主要的常考知识点如下:
TCP/IP
分层模型
三次握手、四次挥手原理
拥塞控制
流量控制与滑动窗口
TCP与UDP比较
DDos攻击
close_wait,time_wait状态原因
HTTP
http/https 1.0、1.1、2.0
get/post 以及幂等性
http 协议头相关
Cookie Session 的比较
长连接与短连接,websocket的对比
Socket
IO模型
select ,poll,epoll原理和对比
数据库常考知识点:
MySQL相关
索引:B树、B+树底层结构,索引失效条件
sql语法
关系型数据库三范式
存储引擎:InnoDB和MyISAM对比
数据库的锁:行锁,表锁,页级锁,意向锁,读锁,写锁,悲观锁,乐观锁等等
数据库隔离级别:脏读、不可重复读、幻读
事务的ACID理论
查询优化:explain,慢查询,show profile
分布式:分库分表,读写分离
Redis相关
Redis 特点
Redis 底层数据结构:跳表,字典
数据淘汰策略
持久化方式:AOF,RDB
哨兵模式
集群同步方式