一 开发技能(硬技能) 学得深不深取决于基础
1. 语言--->
(对象生命周期,垃圾回收,标准库的使用,错误与异常处理,日志分析,断点调试,对面向对象的理解.设计模式.GDB的使用,高内聚低耦合)
2. 数据结构与算法---->
链表、队列、栈 ----- 二叉树、红黑树、B树、B+树、dijkstra算法、最小生成树、广度优先、深度优先、递归、二分查找、11种排序(希尔、归并、快排、堆排序) -----
贪心算法、动态规划、跳表、散列表、hash、bitmap、布隆过滤器。
3. 数据库----> 持久化mysql------缓存redis
mysql安装与配置、sql语句建表-建库-索引-存储过程、存储引擎原理-myisam--innodb、事务隔离、连接池的原理-做法-管理、异步数据库请求、sql注入、webshell攻击、数据库集群的做法--分库分表--读写分离
redis编译安装--配置、redis命令使用、redis连接池、异步redis、redis集群(缓存雪崩,缓存击穿)、redis数据备份
4. 网络原理 ---->
ping , telent , ifconfig
网络体系模型
tcp原理 --三次握手、四次挥手、滑动窗口、慢启动、11个状态迁移
udp原理-- 实时性--不带流量控制
http、https、http2.0/http3.0
Session Cookie application
网络安全、加密、数字签名
wireshark(windows),tcpdump(linux)
iperf
5. 操作系统---->进程、线程、内存、cpu、进程管理、进程间通信、内存管理、内存泄漏主要方法
Linux使用、文件操作、系统操作、程序编译-运行、shell/vi的使用、linux系统性能监控参数 ps/netstat/df 、 进程管理、用户态/内核态、内存管理、内存池、内存泄漏、磁盘文件系统、虚拟文件系统、磁盘IO、
6. 网络编程--->socket reactor livevent (实战)
socket编程、TCP/UDP、网络IO模型、阻塞非阻塞、同步异步、IO多路复用 select/poll/epoll
epoll reactor , proactor -----
time_wait/close_wait大量 C10K/C1000K/C10M 、 网络框架 libevent/libev、协程ntyco,libco
7. 分布式---> rpc
rpc , grpc , tars , brpc , srpc 、 简单rpc协议设计/框架搭建 、 协议传输的时候--序列化反序列化、
服务注册、服务发现、容灾、降机熔断、流量控制、高并发、高可用、分布式锁(多台机器公用一把锁)
8. 云原生 ---> 直接在阿里云买一台机
腾讯云、阿里云、docker的使用 、docker的编排、docker的网络、k8s管理 、
9. 软技能 (决定了走的宽度和高度)
沟通能力、组织能力、协调能力、需求分析