今天和大佬面谈,收获非常大。我觉得我有必要立即记录下来,形成日后的学习路线。首先大佬指出了我自身的不足:

  • 没有做自己的东西。也就是说,我所有的学习都是基于零散的知识点扩展而来,没有尝试去做自己的东西。这样只能零碎的积累,无法形成对系统整体的认知。
  • 缺乏硬件的理解。也就是说,我缺乏对基本硬件工作原理的理解,没有理解CPU是如何设计并运行的,没有理解缓存的硬件实现。

我认为为了补齐短板,我应该开始学习如下知识:

  • 编译器设计。理解编译器如何实现,吃透编译原理。
    • 首先啃完编译原理三本大砖头
    • 阅读gcc和LLVM的代码
    • 实现自己的编译器
  • 数字电路设计。这里其实我是懂最基本的原理的,只是没有相应实践,因此主要以实践为主。可以尝试:
    • 使用FPGA实现一些常见项目
    • 设计自己的RISC-V CPU软核
  • 系统整体设计相关的书籍。

短期阅读计划

  • ACPI EC驱动以及相关标准。原因:突然拿到一本EC相关的手册和实际设计的原理图,对应机器还能在京东买到。
  • 编译原理。原因:系统学习编译器设计。
  • BPF performance tools。原因:无意中和我弟在图书大厦看见这本,有了兴趣。
  • System Performance。原因:BPF performance tools的作者的另外一本书,作者一同推荐了。