C++ 后台开发岗位知识技能树
一、语言:
C/C++ 语言,对象生命周期,垃圾回收,标准库,错误与异常的处理,日志,面向对象的理解,设计模式,GDB的使用,代码高内聚低耦合
二、数据结构与算法:
线性表:链表,队列,栈
树:二叉树,红黑树,字典树,线段树等
图:图搜索,dijkstra算法,最小生成树
递归:回溯
排序:冒泡,插入,希尔,归并,快排,堆排序,桶排序
算法:贪心,动态规划,分治
跳表,散列表,布隆过滤器
三、数据库
持久型mySql
MySql安装与配置
Sq建表,索引,存储过程
存储引擎myisam/innodb
数据库连接池
异步数据库请求
数据库集群,分库分表,读写分离
缓存型Redis
Redis编译安全,配置
Redis命令使用
Redis连接池/异步redis做法
Redis集群,数据备份
缓存雪崩,缓存击穿
四、网络原理
命令:ping,telnet,ifconfig
网络体系模型(ISO模型)
Tcp :三次握手,四次挥手,滑动窗口,状态机
Udp :实时性,不带流量控制,udp的原理
http/https/http2.0/http3.0
Session,cookie,application
网络安全,加密,数字签名
Wireshark抓包工具(windows),tcpdump(linux)
Iperf(网络带宽)
五、操作系统
Linux使用(文件操作,系统操作)
程序的编译,允许
Shell/vim的使用
LInux系统性能监控参数ps/netstat/ef
进程管理
用户态/内核态
内存管理,内存池,内存泄漏
磁盘文件系统,虚拟文件系统,文件缓存
磁盘IO
六、网络编程
Socket编程,tcp/udp
网络IO模型(fd),阻塞非阻塞,异步,同步
IO多路复用select/poll/epoll
Epoll reactor, proactor
Time_wait/close_wait大量
C0K/C000K/C0M
网络框架的理解(libevent/libev, 协程ntyco,libco
七、分布式
RPC,grpc,tars,brpc,srpc(http,RPC调用)
简单rpc协议设计/框架搭建
协议传输的时候,序列化反序列化
服务注册,服务发现,
容灾,降级熔断,流量控制
高并发,高可用
分布式锁
八、云原生
了解腾讯云/阿里云
Docker使用
Docker编排,网络
K8s管理
九、软技能
沟通能力
组织能力
协调能力
需求分析