[转]麻省理工学院(MIT)研究生学习指导[中]

四、笔记


很多科学家都有做科研笔记的习惯,你也应该这样。可能你曾被告知从五年级开始,对于每一门科学课都应该记笔记,确实如此。不同的记笔记方式适用于不同的人,可以做在线笔记,记在笔记本或者便笺簿上。可能需要在实验室有一个,家里还有一个。在笔记本上记录下自己的想法。只有你自己才会去读它,因此可以记得比较随意。记录下自己的思索,当前工作中遇到的问题,可能的解决方案,对将来可能用到的参考文献作小结。定期翻阅你自己的笔记本,有些人会做月度总结,方便将来的引用。
笔记中记录中的东西经常可以作为一篇论文的骨干。这会使生活变得轻松些。另外,你会发现写粗略的论文——标题,摘要,分标题,以及正文的片段——是一种记录自己当前工作的有效方式,即使你并不准备把它变成一篇真正的论文(过一段时间你或许会改变想法)。你或许会发现Vera Johnson-Steiner的书《Notebooks of the Mind》很有用,该书并不是描写如何做笔记,它描述了随着思想片断的积累,创新思想是如何出现的。

五、写作

作的理由有很多。勤于写作不仅仅给你练习的机会。
在整个读研的过程中,你需要写一到两篇(这取决于你所在系的规定)毕业论文,以获得Ph.D.或者MS。
学术的规则就是要么发表,要么腐烂。在很多领域和学校,这通常只有在你成为一名教师时才会要求。但是我们实验室的很多研究生毕业之前就已经开始发表论文了。鼓励论文发表是促进研究的很好策略。
写下自己的想法是很好的调整思路的方式。你会经常地发现自以为很完美的想法一旦写下来就显得语无伦次。
如果你工作的目的是不仅为自己还要为他人服务,就必须把它发表。这也是研究的基本责任。如果你写得精彩,会有更多的人来了解你的工作。自己单独完成写作是很难的,你需要经常地从他人那里获得反馈。对你的论文作评论就是最重要的一种形式。任何事情,要做就要做到最好。
阅读有关如何写作的书籍。
Strunk和White的《Elements of Style》对写作中基本的应该如何不应该如何做了介绍。
Claire的《The MLA's Line By Line》(Houghton Mifflin)是有关在句子级别如何进行编辑的书籍。
Jacques Barzun的《Simple and Direct: A Rhetoric for Writers》(Harper and Row, 1985)是有关如何作文的。
写论文时,读读那些写作高超的书,并思考作者的句法运用。你会发现不知不觉地,你已经吸收了作者的风格。
要成为写作高手,需要付出颇多,历经数年,期间还要忍受和认真对待他人的批评。除此之外,并无捷径可走。
写作有时候是很痛苦的,看起来好像是从“实际的”工作中分心了。但如果你已经掌握了写作技巧,写起来会很快。而且如果你把写作当作一门艺术的话,你能从中得到很多乐趣。
你肯定会遇到思路阻塞的情况,这有很多的可能原因,没有一定可以避免的方法。追求完美可能导致思路阻塞:无论开始写什么,总觉得不够好。要理解写作是一个调试的过程。先写一个草稿,然后返回修订。写草稿有助于理顺思路,如果写不出来正文,那就写个大纲。逐步对之细化,直到已经很容易写出各部分的内容。如果连草稿也写不出来,隐藏掉所有写作窗口,然后随便输入自己脑袋里想到的东西,即使看起来好像是垃圾。当你已经写出了很多文本后,重新打开窗口,将刚才写的东西编辑进去。
另外写作中一个常见错误是以为可以将所有的内容依次写出。通常你应该将论文的核心内容写出来,最后才是介绍部分。引起作者思路阻塞的另一个原因是不切实际的以为写作是很容易的事情。写作是耗时耗力的,如果发现自己每天只能写一页,也不要放弃。
完美主义可能会导致对本来已经足够好的论文还在不停地打磨。这是浪费时间(这也是一种有意无意之间逃避做研究的表现)。将论文看作你与本领域其他人交谈时的谈话。在交谈中,并不是每一句话都是完美的。很少有人会期待自己的某次谈话就是全部的故事,是与对方的最后一次交流。
写信是一种很好的练习。很多技术论文,如果其风格更类似于给朋友的信,那么会有很大的提高。坚持记日记也是练习写作的方法(也会使你试验更多的文体,不仅仅是技术论文)。这两种方法还有其它的实质作用。
一个常见的陷阱是花很多时间去追求修辞而不是内容。要避免这样。LaTeX并非完美,但是它有很多你所需的修饰语。如果这还不够,还可从其他从事这一研究的人那里借用一些词语用法。很多站点(例如MIT)都提供一个写作修辞的数据库。
清楚自己要表达什么。这是清楚的写作中最难最重要的因素。如果你写了拙劣的东西,且不知道如何修改,这很有可能是因为你不知道自己要说什么。一旦搞清楚了自己要说什么,说就行了。
论文的写作要有利于读者查找到你所做的工作。无论是段落的组织还是通篇的组织,都要将最核心的部分放在前面。要精心写作摘要。确保摘要已经反映出你的好思路是什么。确保自己明白自己的创新点是什么,然后用几句话表达出来。太多的论文摘要只是一般性地介绍论文,只说有一个好思路,却不说是什么。
不要用大话来贩卖你的工作。你的读者都是很优秀的人,正直且自尊。与之相反,也不要为自己的工作道歉或者进行消减。
确保自己的论文有中心思想。如果你的程序在10毫秒内解决了问题X,告诉读者你是如何办到的。不要只是解释你的系统是如何构建的,是做什么的,还要解释其工作原理和价值所在。
写作是给人看的,而不是机器。因此仅观点正确是不行的,还要易懂。不要靠读者自己去推理,除非是最明显的推论。如果你在第七页的脚注上解释了某个小玩意的工作原理,接着在第二十三页没有进一步解释就引用了它,此时如果读者感到困惑一点都不值得奇怪。正式的论文要写清楚是很难的。不要模仿数学领域的文献,它们的标准是尽可能少的解释,使读者感到越困难越好。
如果你等做完所有的工作后才开始写作,会失去很多。一旦开始了某个科研项目,建议养成这样的习惯:每隔几个月,就写一篇解释当前工作进展或者学习所得的非正式论文。从你研究笔记中的记载开始,花两天的时间写下来——如果你花的时间更长,说明你是一个完美主义者。写的只是草稿——不是为了被引用的那种。将论文复制数十份,送给你的朋友和那些感兴趣的人(包括你的导师)。与写正式论文相比,这样做也有很多好处(评论,理清思路,写作练习等等),而且从某种意义上讲,付出无需那么多。如果你做得不错,这些非正式论文以后可以作为正式论文的骨干内容,也就是从自己实验室的Working Paper成为一篇期刊文章。一旦你成为Secret Paper Passing Network的成员,会有很多人给你寄论文拷贝要求评论。获得他人对自己的论文的评论是很有价值的。因此你评论的论文越多,你获得支持就越多,也会收到更多人对你论文的评论。不仅如此,学习评价别人的论文也有助你的选择。为论文写有用的评论是一门艺术。
要写出有用的评论,需要读两遍论文。第一遍了解其思想,第二遍开始作评论。如果某人在论文中屡次犯同一错误,不要每次都标记出来。而是要弄清楚模式是什么,他为什么这样做,对此还可以做什么,然后在第一页清晰地指出或者私下交流。
不要在论文写毁灭性的批评如“垃圾”,这对于作者毫无帮助。花时间提出建设性的建议,要设身处地地为作者着想。评论有很多种,有对表达的评论,有对内容的评论。对表达的评论包括校对打字稿、标点、拼写错误、字词丢失等;还可以是校正语法,修辞,以及混乱不清楚的段落。通常人们会持续地犯同一语法错误,因此需要花时间明确指出。接下来是对组织结构的评论:不同程度(子句,句子,段落,小节乃至一章)的次序混乱,冗余,无关的内容,以及论点是否丢失。你可以建议作者扩展自己的想法,考虑某个问题或错误,论文存在的潜在问题,表达赞美等。“因为Y,你应该读X”是一种总是有用的评论。当被要求对论文作评论时,你首先要弄清楚哪种评论更有用。对于早期的论文草稿,主要需要你对内容和论文的组织结构作评论;对于最终的草稿,主要需要你评论表达的细节。
注意,作为一种礼貌,在要求别人评论之前,应首先用拼写检查器对自己的论文进行检查。你无须接受所有的意见,但是必须都认真对待。将论文的部分内容裁掉是挺令人痛心的,但往往也提高了论文的水平。你经常会发现某个意见确实指出了问题,但是解决方法你觉得不可接受,那么就去寻找第三条道路。要多发表论文,这其实比想象中的容易。
确保论文可读性比较好。论文被拒绝的原因,除了没有意义之外,就是无法理解或者组织糟糕。
通常是先向会议投交一篇篇幅比较短的有关工作内容的早期报告,然后再往期刊投交一份篇幅较长的最终正式论文。看看IJCAI(International Joint Conferences on Artificial Intelligence)的会议录,你会发现会议论文录取的标准相当低。而且由于会议评审过程本身固有的随机性,录取的标准变化更大,所以一个发表论文的诀窍是不停地试。主要的会议都会在被接收的论文中评出内容和表达俱佳的获奖论文,仔细研究研究。
论文在投往期刊之前,应该交流一段时间,并根据反馈的评论进行适当的修订。要抵制那种急匆匆地把结果投往期刊的做法。在自己的研究领域,没有竞赛,而且不管怎么说,出版周期的延迟要大大超过对草稿进行评论的时间。另外,读一读你想投稿的期刊或者会议的过刊,确保自己论文的风格和内容是适合的。很多出版物都有一页左右的“作者投稿须知”,仔细看看。
论文被拒绝了,千万不要沮丧灰心。
期刊和会议的论文评审过程存在很大的不同。为了节省时间,会议论文的评审必须迅速,没有时间细究或者交流。如果你被拒绝了,你就失败了。但期刊论文则不同,你可以经常地与编辑争辩,通过编辑与评审人争辩。如果你收到了令人生厌的评审报告,应该向大会的程序主席或者编辑投诉。评审人一般都会对你有所帮助,当然不能期望可以从会议论文评审人那里得到多少反馈,但对于期刊论文,往往可以得到非常棒的建议。你不必完全按照评审报告的建议去做,但是,如果你不按照报告去做,那么就必须解释原因,并且要意识到这可能会导致进一步的负面评价。不管怎么样,无论是哪种评审,作为被评审者都要有礼貌。因为在余下的职业生涯中,你将会与评审者在一个学术圈子里。
论文写作所花的时间总是比期望的要高,论文的发表在耗费时间这个问题上则更严重。当你完成了一篇论文,投出去,等待发表。数月后,论文以及评论意见被返回来,你不得不对论文进行修改。然后又是几个月,才返回对你修改的确认。如果你同时发表了该论文的不同形式,如有一篇短的投会议,一篇长的投期刊,这样的过程将反复数个回合。结果有可能是当你已经厌倦了,研究主题也已经令人生厌后数年,你仍然在修改那篇论文。这启示我们:不要去做那些需要热情投入但是很难发表论文的研究,那将苦不堪言。

六、讲演


与同行交流的另外一种方式就是讲演,上面提到的有关论文写作的问题,同样适用于讲演。站在听众面前从容讲演而不会使听众恹恹欲睡的能力,对于你成功地获得别人的承认、尊敬乃至最终的求职都是非常关键的。讲演的能力不是天生的,下面是一些学习和练习讲演的方法:
Patrick Winston有一篇很好的有关如何作讲演的小论文。每年的一月,他都会就此作讲演,演示和描述他的演讲技巧。
如果你觉得自己是一个糟糕的演讲者,或者想成为一名优秀的演讲者,选一门公共演讲课。初级的表演课也很有用。
如果你的导师有定期的研究讨论会,自愿去作演讲。
计算机教研室有一系列的半正式报告座谈会,如果你觉自己的某些观点值得写进研究领域的Memo或者会议论文中,自告奋勇去作一场报告。
深入了解实验室的不同人研究的项目,当你外地的亲朋好友来的时候,你可以领着他们逛一圈,并就自己研究的内容做20分钟的汇报。
由于修改演讲远比修改论文容易,有些人会觉得这是很好的寻找如何表达思想的方式(Nike Brady有一次曾说,他所有最好的论文都来自于演讲)。
在一间空屋子里练习,最好就是你马上要做的报告。这有助于调整报告的技巧:每一张幻灯讲些什么;转换的延迟以及保持衔接;保持解释和幻灯的同步;估计报告的时间长度。你花在调整设备上的时间越少,留下来的与人交流的时间就越长。
用镜子,录音机或者录像机练习是另外一种方法。实验室会提供这三种设备,这也有助于调整自己的发音和肢体语言。
对于比较正式的报告,特别是你的答辩,应该在几个朋友面前练习一遍,请他们批评指正。
观察别人是如何做报告的。有很多访问MIT的人会做报告,参加这样的报告会能够感受自己不熟悉的领域,并且如果报告令人提不起兴趣,你可以暗中分析报告者错在哪里。
找一位朋友,将你最近的想法说给他听。这既可以提高交际技巧,又能检验自己的思路。

七、程序设计


并不是所有自己研究领域的论文都包含代码,而且本领域的很多重量级人物从来没有写过一个重要的程序。但是为了掌握自己研究的工作原理,你必须会程序设计。不仅仅是很多计算机研究工作需要编写代码,学会程序设计还能带给你什么是可计算的什么是不可计算的直觉。
当然,学习一门语言并不能等同于学习程序设计;自己的程序设计包含的一些技术与那些在系统程序设计或者应用程序设计中用到的大不相同。开始学的时候,可以先看看Abelson和Sussman的《Structure and Interpretation of Computer Programs》,并做一些练习。这本书与自己所研究的程序设计本质上并不相干,但是包含了一些相同的技术。最后,进行实际的程序设计,而不是阅读,才是最好的学习程序的方法。
学习程序设计有很多传统。有些人习惯一起写代码,这取决于个性。还有的人寻找机会直接向有经验的程序员学习,或者请他对你的代码进行评价。阅读别人的代码也是很有效的方法。如果可以向高年级同学要他们的源代码,他们可能会有些抱怨,说自己的编程风格差极了,程序实际上并不能工作云云。不管怎么样,最后你获得了源代码。然后你要仔细地通篇阅读,这很费时间。通常阅读并完全理解别人代码所花的时间与你自己编程完成的时间是一样多的,因此要计划好在你的头一个或者头两个学期用数周的时间去阅读别人的代码。你将从中学到很多以前不曾想到在课本中也没有的技巧。如果你读到了整篇不可理解没有注释的程序,你就会明白不应该如何写代码了。在软件工程课里学习到的那些知识在自己的程序设计中很有可能依然有用。要给代码加注释,使用正确的数据抽象,将数据和你的代码隔离开,提高可移植性,诸如此类。经过头几年的学习后,就应该写一些自己的标准程序设计模块了。
任何你感兴趣的东西都可以尝试用程序实现。你可以抓住问题的实质,在几天之内完成一个功能版本。修改已有的程序是另外一种有效的方法,前提是你已经写过这样的东西,并且确实了解其工作原理,优缺点以及效率等问题。不像其他通常的程序员相互借阅代码(演示代码例外)。虽然可以对代码进行修改满足自己的需要,但记住理解别人的代码是很耗时的,有时候还不如自己写一个。有时候构建一个标准包的工作本身就可以成为一篇论文。像论文一样,程序也有可能过于追求完美。不停重写代码以求完美,最大化的抽象所有的东西,编写宏和库,与操作系统内核打交道,这都使得很多人偏离了自己的论文,偏离了自己的领域(从另外一方面,或许这正是你需要将来谋生的手段)。

文章出处:http://www.mysanco.com/wenda/index.php?class=discuss&action=question_item&questionid=3055

posted on 2014-03-10 20:32  sheldonzhang  阅读(480)  评论(0编辑  收藏  举报