C++后端开发学习路线
语言
- 对象生命周期,垃圾回收
- 标准库
- 错误与异常处理
- 日志分析,断点调试
- gdb使用
- 面向对象理解
- 设计模式
数据结构与算法
- 链表,队列,栈
- 二叉树,红黑树
- b树,b+树
- dijkstra算法,最小生成树
- 递归
- 排序 归并,快排,堆排序
- 贪心,动态规划
- 跳表,散列表,哈希hash,布隆过滤器
数据库
- 持久化mysql
mysql的安装与配置
sql语句建表、索引、存储过程
存储引擎(myisam/innodb)
数据库连接池
异步数据库请求
数据库集群,分库分表,读写分离
- 缓存redis
redis编译安全、配置
redis命令使用
redis连接池/异步redis做法
redis集群,数据备份
缓存雪崩,缓存击穿
网络原理
- ping, telnet, ifconfig
- 网络体系模型
- tcp/udp 三次握手,必会(答对必须,没对送命),四次挥手,滑动窗口,状态机(每个状态如何迁移)
- udp 实时性
- http, https, http2.0, http3.0
- 网络安全,加密,数字签名
- wireshark(linux), tcpdump(windows)
- Session Cookie application
- iperf(上线前回去测一下网络带宽)
操作系统
- CPU, 内存, 磁盘, 外设
- 文件操作,系统操作
- 程序编译,运行
- shell/vim使用
- Linux系统性能监控参数ps/netstat/df
- 操作系统原理相关:进程管理,用户态/内核态(用户态和内核态的交互只有通过系统调用,弄清系统调用的原理),内存管理,内存池,磁盘文件系统(虚拟文件系统,文件缓存,分布式文件系统),磁盘io
网络编程
- socket编程,tcp/udp
- 网络io模型,阻塞非阻塞,同步异步
- io多路复用 select/poll/epoll(答出来很正常,答不出技术不扎实)
- time_wait/close_wait大量
- C10K/C1000K/C10M
- 网络框架 libevent/libev, 协程ntyco, libco
怎么在写业务的过程中扣住知识点
分布式
- rpc,grpc, tars, brpc, srpc 对外提供接口(rpc接口)微服务
- 简单的rpc协议设计/框架搭建
- 协议传输的时候,序列化/反序列化
- 服务注册,服务发现
- 容灾,降级熔断,流量控制
- 高并发,高可用
云原生
- 腾讯云/阿里云
- docker(可以直接保存现场,解决环境一致性问题)
- docker编排,网络
- k8s管理
学的深不深取决于你的基础,基础不扎实,技术部深入,扣住基础
软技能
沟通、组织、协调能力,需求分析
C++岗位: 每个方向技术,游戏c/c++, 存储 IDE,没有统一的标准
