General Suggestions

general, Shanghai Jiao Tong University, EECS, 2024

This is a description of a teaching experience. You can use markdown like any other post.

建议1:关于读什么书

计算机领域的知识非常广,不可能有人有精力把什么都弄懂。在硕士或博士研究生期间,我建议每个同学按照两个维度来学习。

1. Design Principal。

它是一切计算机系统或架构的设计原则,大量的其他知识是它的变种和延伸。以《计算机组成原理》为例子(我们也叫它《初体》),主要就是 design principal。其中介绍的 5 级流水线、缓存等知识是一切后续知识的基础。而《量化研究方法》(我们也喜欢将其称之为《高体》),虽然包含大量的高阶知识,却不是所有知识点都适合每一个学生学习的。例如,其中有很多强调对 CPU 性能的提升和加强(比如scoreboard/Tomasulo算法)。对于非专注于研究CPU架构的同学来说,这些知识点过于细节,等哪天用到了再去看也行。对于这类知识,只需知道乱序执行这件事【存在】即可,无需深究细节。《高体》的另一个精要在于【如何量化地】设计处理器,这就属于【principal】类型的知识,比如其中的 instruction per second,roofline model等。要注意的是,对于不同的学生而言,需要【principal】类的知识也有优先级的区别,建议每个同学多多找我沟通。研究生阶段有大量open的知识,大家切记在细节里迷失,要学会聪明地把握真正有价值的内容。

2. 实用方法

就是细枝末节。但是能够帮你出论文,对你科研能够有直接助力的。等你积累经验足够久,你会发现计算机行业很多时候都是权衡(tradeoff)。在design principal之上,针对不同情景进行变换而已。在研究生阶段,学习【过多】旁枝末节对学问成长的意义并不大,把一个细枝钻研的【够深】才有意义。

建议2:积累阅读量

积累阅读量是非常重要的事情,大家要多多读书。

1. 精:自己专业的领域论文(这个必须的,我会紧密督促大家,特别是研究生初期。)

2. 泛:体系结构&集成电路相关知识(这个很重要,我会时不时分享一些重要&有趣信息,开阔大家视野。)

3. 博:历史、政治、经济、哲学…(这个是需要以十年为维度长期保持的习惯,但和研究学习无关。大家自己把握哈。)

建议3:学术阅读

建议4:知觉与行动