C++ 后台开发岗位知识技能树
一、语言:
a)C/C++ 语言,对象生命周期,垃圾回收,标准库,错误与异常的处理,日志,面向对象的理解,设计模式,GDB的使用,代码高内聚低耦合
二、数据结构与算法:
a)线性表:链表,队列,栈
b)树:二叉树,红黑树,字典树,线段树等
c)图:图搜索,dijkstra算法,最小生成树
d)递归:回溯
e)排序:冒泡,插入,希尔,归并,快排,堆排序,桶排序
f)算法:贪心,动态规划,分治
g)跳表,散列表,布隆过滤器
《链表,队列与栈》
https://blog.csdn.net/sesiria/article/details/115598797
《排序与查找算法》
https://blog.csdn.net/sesiria/article/details/115585812
《哈希表与布隆过滤器》
https://blog.csdn.net/sesiria/article/details/115875283
《动态规划-背包问题》
https://blog.csdn.net/sesiria/article/details/117947146
三、数据库
a)持久型mySql
i.MySql安装与配置
ii.Sq建表,索引,存储过程
iii.存储引擎myisam/innodb
iv.数据库连接池
v.异步数据库请求
vi.数据库集群,分库分表,读写分离
b)缓存型Redis
i.Redis编译安全,配置
ii.Redis命令使用
iii.Redis连接池/异步redis做法
iv.Redis集群,数据备份
v.缓存雪崩,缓存击穿
四、网络原理
a)命令:ping,telnet,ifconfig
b)网络体系模型(ISO模型)
c)Tcp :三次握手,四次挥手,滑动窗口,状态机
d)Udp :实时性,不带流量控制,udp的原理
e)http/https/http2.0/http3.0
f)Session,cookie,application
g)网络安全,加密,数字签名
h)Wireshark抓包工具(windows),tcpdump(linux)
i)Iperf(网络带宽)
五、操作系统
a)Linux使用(文件操作,系统操作)
b)程序的编译,允许
c)Shell/vim的使用
d)LInux系统性能监控参数ps/netstat/ef
e)进程管理
f)用户态/内核态
g)内存管理,内存池,内存泄漏
h)磁盘文件系统,虚拟文件系统,文件缓存
i)磁盘IO
六、网络编程
a)Socket编程,tcp/udp
b)网络IO模型(fd),阻塞非阻塞,异步,同步
c)IO多路复用select/poll/epoll
d)Epoll reactor, proactor
e)Time_wait/close_wait大量
f)C0K/C000K/C0M
g)网络框架的理解(libevent/libev, 协程ntyco,libco
七、分布式
a)RPC,grpc,tars,brpc,srpc(http,RPC调用)
b)简单rpc协议设计/框架搭建
c)协议传输的时候,序列化反序列化
d)服务注册,服务发现,
e)容灾,降级熔断,流量控制
f)高并发,高可用
g)分布式锁
八、云原生
a)了解腾讯云/阿里云
b)Docker使用
c)Docker编排,网络
d)K8s管理
九、软技能
a)沟通能力
b)组织能力
c)协调能力
d)需求分析
参考书籍:
1.MySQL 《高性能MySQL 第三版》
2.Nginx 《深入理解Nginx:模块开发与架构分析(第二版)》
3.Redis:《Redis设计与实现》
4.Linux内核:《深入Linux内核架构》
5.数据结构与算法:《算法导论》
6.性能分析:《性能之巅 洞悉系统,企业与云己算》
7.MongoDB 《MongoDB权威指南》
8.Ceph 《Cep分布式存储学习指南》
9.Docker《Docker容器与容器云》
10.TCP/IP 《Tcp/ip详解 卷一,卷二,卷三》
11.Linux系统编程《Unix高级环境编程》
12.计算机:《深入理解计算机系统》
13.ZeroMQ:《ZeroMQ:云实带极速消息通信库》
14.DPDK《深入浅出DPDK》