1. 代码风格和编程习惯:google编程规范
  2. 精通C编程,熟练shell脚本、python脚本
  3. 熟悉Linux系统编程:Linux/Unix系统编程手册、Unix网络编程
  4. 涉猎C++21、Rust、Go
  5. 学习Github网络编程项目,参与Github开源项目
  6. 培养分析问题和解决问题的能力,对解决具有挑战性问题充满激情
  7. 算法水平:leetcode Medium 稳过,部分 Hard 能做
  8. 完善附属技能:
    • 熟悉 Debian、Ubuntu、Fedora、Arch Linux等一种或多种 Linux 发行版本
    • 熟悉Linux容器应用:lxc、docker、Podman
    • 熟悉编译链工具:makefile、Cmake、Xmake
    • 熟悉gdb、crash、systemtap等工具,能够分析内核相关的常见问题
    • 熟练掌握 Linux 常用命令,如 grep、sed、awk 等
    • 熟练使用 Svn、Git 进行版本控制
  9. 熟悉Linux系统
    • 深入理解Linux操作系统以及内核设计原理与运行机制
    • 熟悉Linux内核各大子系统,比如:内存管理、文件系统、CPU调度、网络、存储等
    • 熟悉 GNU 编译工具链、GRUB、Systemd 等开源组件
    • 熟悉ARM、MIPS等交叉编译
    • 熟悉Linux内核相关开发环境与基础工具
  10. 计算机基础
    • csapp+lab
    • ostep

还没读完的书:C++并发编程实战、Effective C++

还没完成的项目:完成webserver项目,添加循环缓冲区

还没看的项目:muduo网络库、libevent、libunifex callback -> epoll -> io_uring

web服务器:

  • 缓存:磁盘缓存、纯内存缓存、nvme缓存,参考下haystack
  • http协议:http1、http2

项目推荐:https://www.zhihu.com/question/40131963

webserver服务器项目可以使用的新技术:

  • http2、http3
  • Linux5.1的io_uring