虽然说申请方向从某种程度上来说是无关紧要的,因为目前为止大部分人看所有的方向都是一样的,没有特别的喜欢也没有特别的厌恶,但问题在于如何让自己现有的经验成为一种优势,也就是如何在现有的研究方向上挑选一个和自己最搭边的方向。
最近两天看了 CMU 的教授在 PhD 申请时候的一些建议。他提到了他们需要知道申请者以前的研究经验,但这不是要申请人做出结果,因为他们也知道做出结果需要数年的时间,只是为了保证他们知道申请人做过了研究,知道研究是怎么回事。那这是不是说明申请方向可以不匹配?对这个教授来说是的,对其他人就不一定。所以揣摩这个实在没有必要。想学某方向学就是了,申请不上再补一年的背景就是了,何必因为这个苦恼。
在方向上一直下不了决定怎么办?我之前又想做 Computer System ,又想去研究 Programming Language,但又有一些 Compiler 的研究背景。根据以前的一些经验,找各大会议就可以看到各种研究方向了。但问题是,我找到了各大会议之后,我还是不知道应该从哪里入手。每个会议的 session 倒是一个比较好的方向的入手点,但范围太广,并且一个 session 下面就只有几篇当前的热点论文。比如操作系统的 OSDI 会议中有一个 debugging 的 session,没有头脑地列出了几篇中奖的论文,没有其他东西可以提供有关 debugging 的其他信息。
我几乎就只记得我是在为追求更高层次的教育而做出努力,完全忘记了我为什么要做出这样的努力。正如 CMU 的教授说的,PhD 读完,你应该是一个领域的世界级专家。当我意识到这点的时候(这再次说明了学习的过程是认知到逐步消化吸收的过程,是漫长的过程),我突然醒悟过来我应该做什么了—我应该对这个领域有清晰的了解,了解它的过去,现在,甚至看看将来会发生什么。如果能够做到这样,那 debugging 到底在做些什么也就清楚了;然后就应该看看哪些人都在为 debugging 研究做出努力;他们的目的是不是都是一样的;如果是一样的,那么他们都在用什么方法;他们方法的异同;各方法的优点和劣势;甚至于还可以看看,他们的研究是不是把这个领域朝正确的方向推进。
这些想法以前存在过,但并没有意识到它是这么的重要,这些天居然一直在一些学校的招生页面上浪费时间。不过这样的研究完全可以用低年级的大量课余时间开始做起,花费这样的时间换来的是专业的眼光,之后可以将这样的作业一直保留到高年级,然后用高年级对各个领域的了解再来弥补作业中的不足成分。可惜这样的想法太理想,好比列计划一样,写起来比做起来困难得多。