PhD:A Long Long Way to go ——《The PhD Grind》 读后感

《The PhD Grind》这篇文章讲述了作者——一个Stanford的博士生——在读博阶段的经历。我将以时间为顺序,重述作者在不同时间段面对的机遇与挑战并加入我个人的观点和感想。

 

前三年对于作者来说是“在徘徊中度过的”。刚进入博士第一年的作者感觉不适应:本科和硕士阶段的研究是其他人曾经做过的或者相关的,而博士阶段则是前人未曾进入过的领域;更加令作者苦恼的是,他把大多数时间花在调试Klee上(Klee是一个能够帮助其他软件找出bug的软件)而不是使用Klee上(而这正是他的导师给他的任务)。他感觉自己不像在做研究,而是在做一些基本的、不需要花时间思考新想法的事情。之后作者获得了NDSEG的奖学金,因此不用再做导师交给他的任务。第二年作者把研究方向转移到了自己感兴趣的方向上:empirical software engineering,但由于导师不是这方面的专家,自己又了解不多,再加上他的同事都没有迫切发表论文的需求,所以尽管他对这个方向很有热情,他并没有在这个领域发表文章。由此可见热情与专业知识在研究的过程中至关重要,他们缺一不可。经过一年的挫折,作者又回到了导师从事的领域——Klee。这一年中作者像其他三年级生一样,难以集中精力并且发现每天去实验室都是一件很苦恼的事。孤立感、与导师逐渐减少的 交流、几乎为零的进步……让作者更加无助。与此同时,他的导师也变得没有耐心:由于教学等其他原因,他的导师无法全身心投入研究中,但从他的导师看来,如果是他自己来做相同的事情,可能很快就有成果了(毕竟只有极少数的博士生可以成为教授,这在Stanford也不例外,所以教授很有可能比他带的学生更有实力)。这些因素使得作者决定退出当前的项目,在夏天作者找了一份MSR全职的实习,希望在新的环境中能有新的想法产生。(顺便说一句,这三年看似白白度过,但这为以后的研究打好了铺垫,后面会提)

 

这份长达三个月实习给作者带来了很大的改变。作者把MSR描述成一个“没有学生的研究型大学”:所有的研究人员都像教授一般,而且他们不用花时间准备诸如教学等等与研究不相关的事情。更重要的是他们不用想办法申请研究经费,这使得他们有更多的时间放在研究工作上。在有了相关领域专业人员的指导后,作者的工作效率得到了很大的提升,而且在MSR,作者可以接触到很多的资料及数据,这是在一般的研究生院或大学是得不到的。作者在MSR的导师在empirical software engineering领域也是一个”insider”,他知道怎样才能让一篇文章更有机会发表。有了这些帮助,作者在实习阶段一共在顶级会议上发表了3篇论文,其中一篇还获得了最佳论文奖。可能是因为看到如此多的进步的缘故,作者在实习中的某一天忽然冒出了灵感,并把它当作回到Stanford之后奋斗的目标。由此可见,当遇到挫折停滞不前的时候,很有可能是在单一的环境下思维遭到了禁锢,换一个环境也许是一个明智的尝试。

 

在第四年中,作者把他在MSR的想法投入了现实,但这个想法与他导师的方向完全不同,所以导师不能给他技术上的帮助。作者很快意识到有一个想法与实施这个想法是完全不同的两个概念。在计算机科学领域,一个博士生大约要投入几千个小时到编写代码中,来实现并验证自己的想法。作者只把论文投到了workshop而非会议中,因为会议需要一个实验结果来验证模型的有效性,而workshop只是有想法即可。这篇论文被接受,这是作者第一篇发表的文章。

 

为了在会议上发表,作者试图寻找愿意使用IncPy的研究员来完成对IncPy的测试。因为大多数人对现有的Python已经足够满意,作者开始并没有找到合作者。在他找到第一批愿意合作的研究员之后,开发过程中的一个小错误又使他丢失了这些伙伴:作者在开发时只试用了基本的配件,并且保证了IncPy对这些配件兼容;但实际应用中一个编译器仅仅有这些基本配件是不够的,各领域的研究员需要安装符合自己需求的配件来完成研究工作,IncPy对这些配件的不兼容性让合作者很失望。毕竟如果一个新产品能够取代旧物的一个必要条件是,它至少能让那些原来运行结果不错的代码在新产品上不比原来的慢,而作者并没有做到这一点,因此合作者的流失就不足为奇了(如果一个机会错过了就再也无法追回,那么一定要在机会到来之前做好充足的准备)。经过这次教训,作者重新思考了IncPy的架构并让其能够兼容更多的配件,在考虑并解决诸多问题之后,他提交了一篇关于IncPy的文章并等待发表。

 

第五年对作者来说是最辉煌的一年——他发表了4篇会议论文和1篇workshop论文。在我的阅读过程中,我感到作者在思维方面有了一个质的飞跃,并且他的研究过程变得更加得心应手。首先作者更改了他关于SlopPy和IncPy的文章使之发表。之后作者从生活中观察到程序员(不仅仅是科学研究人员)有一个解决“dependency hell”的需求,而这正是与他的工作相关的。第四年中作者只是想解决使用python语言的研究人员在使用python过程中遇到的一些问题,而现在他想把自己的产品做到解决大多数是用程序的人员问题的层次。有了IncPy的经验让作者很快开发出了这样一套产品(CDE),之后他建立了一个网站,对他的产品做介绍。这里宣传也是一个至关重要的过程。一个朋友把他产品的大致内容发到了一个论坛上,短时间内就获得了几百份回应……作者受到的反馈越来越多,产品也变得更加稳定。他的产品被一个Google的开发人员看到,并被邀请到Google Tech Talk上去做一个讲座。这个讲座十分成功,作者因此也获得了Google实习的机会。在实习期中作者发表了一篇关于ProWrangler的论文(ProWrangler是CDE的一个升级版本)。这里要提的一点是,在发论文的过程中,文笔也是一个关键因素:作者得到了一个委员会成员——Jeff的帮助,Jeff熟练的论文写作能力和逻辑组织的能力让作者的文章增色不少。这一年的成功让作者看到了希望。

 

最后一年作者决定从研究中退出,因为他考虑到他所做的领域不会申到足够的经费,更重要的是,他觉得持续的科研产出对他来讲是一个负担,他打算摆脱这些限制,更自由地去继续从事他喜欢的工作。值得一提的是,作者在最后一篇论文上花了前所未有的努力,如作者所说,他在工作中找到了满足感、把自己的想法投入现实的自豪感,这些积极的情绪正是作者发奋的动力。

 

纵观作者的整个博士过程,尽管刚开始很不适应,论文和方案又屡遭拒绝,但作者还是没有中途退出,而是选择以不同的方式和视角解决问题;每次遇到挫折时,作者总会找出原因并加以改进;虽然前三年看起来没有什么结果,但这三年积累的科研功底(如HCI知识、扎实的编程技巧、对paper的检验能力)以及对胜利的渴望也为后期研究做出了铺垫。也许这些不平凡的点滴铺就了作者通往成功的道路,也正是这种日积月累、在困难面前不轻易言弃的精神才让作者拥有令人满意的结果。我们正要学习作者这种科研精神与生活态度,不断思考与改进,描绘出令自己满意的一道风景。

 

——Yupeng Gu

posted @ 2012-08-24 18:46  coderepublic  阅读(636)  评论(0编辑  收藏  举报