给中国学生的第二封信[最新修订版]
from http://cznao.blogdriver.com/cznao/index.html
[原创] Kai-Fu 2003-11-20
自从本站推出了李开复先生的专辑后,收到了很多网友的来信,分别谈了自己对计算机学习的看法和看完开复先生对中国大学生教导的感想,为了更好的帮助大家学习,我们取得开复先生同意后,在这里刊登出开复博士“给中国学生的第二封信[最新修订版]”,希望大家能够更好的学习开复博士对我们中国大学生寄予的期望。任何组织和个人不得用于商业用途,我们建议大家将此文下载打印出来作为自己终身学习的指南,在此计算机科学技术网代表中国当代大学生感谢开复先生对中国大学生给予的无微不至的帮助!
Hi, Zeng Yi,
A friend pointed me to the webpage you created for me. I am really flattered and touched by your kind words.
Enclosed is a newer and more refined version of my "second letter". I hope you will find it useful, and I hope you can use it to replace the speech version I gave, which was simplified.
Good luck with your studies. Please let me know if you have any questions or issues that I can help you with.
Kai-Fu
给中国学生的第二封信
三年前离开中国时,我在《给中国学生的一封信》中,与广大青年学生一道,讨论了一些大家共同关心的话题,并结合自己的学习和工作经历,就青年学生如何对待机遇、学业、工作、他人、自己等问题,阐述了我的个人意见。我提出诚信和正直、主动意识、交流和沟通、努力一生学习这几个个人素质方面值得中国学生高度重视,
在这三年,许多中国学生,经过电子邮件、讲座后的问答、座谈、和其他渠道(例如在电视节目“对话”中),常对我提到“如何成才”的问题。对于这个大家关注的问题,我整理了许多材料,集成这封“第二封信”。
在第一封信力所提到的个人素质或“价值观”是成材的必要的基础。但是,除了素质之外,成才同样的需要领导能力(leadership)。很多人误以为领导能力最重视的是天资、号召力、管理能力。但是,根据我个人的经验,和最近一些研究的结论,如果你想成为一名成功的领导,最重要的不是你的智商(IQ),而是你的情商(EQ)。最重要的不是要成为一个有号召力令人信服的领导,而是要成为一个有 “谦虚”、“执著”和“勇气” 的领导。
这“给中国学生的第二封信”是为那些希望不断提高自己,不断学习事业成功所必需的基本技能和领导艺术的人所写的。第一部分重申了《给中国学生的一封信》中讨论过的有关个人素质的话题;第二部分阐释了领导能力中最重要的情商;第三部分给出了卓越的领导所必须具备的、有别于普通人的基本特质。
1 如何提高个人素质
1.1 诚信和正直
一个人的人品如何直接决定了这个人对于社会的价值。而在与人品相关的各种因素之中,诚信又是最为重要的一点。微软公司在用人时非常强调诚信,我们只雇佣那些最值得信赖的人。去年,当微软列出对员工期望的“核心价值观”时,诚信(honesty and integrity)被列为一位。
在我发表“第一封信”后,曾经有一位同学问我:为什么一个公司要涉入员工的道德呢?我回答:这是为了公司自己的利益。例如,一位应聘者在面试时曾对我说,如果他能加入微软公司,他就可以把他在前一家公司所做的发明成果带过来。对这样的人,无论他的技术水平如何,我都不会雇用他。他既然可以在加入微软时损害先前公司的利益,那他也一定会在加入微软后损害微软公司的利益。
另外有一位同学看了“对话”后问我,为什么我会把诚信放在智慧之前呢?难道我们会去衡量员工的诚信和他们的智慧而给诚信更高的比重?其实,我们的衡量都在直接的工作目标上,并不会对诚信或智慧做直接的衡量。但是,作为第一“核心价值”,诚信是我们对员工最基本的要求。 我们根本不会去雇用没有诚信的人。如果一个员工发生了严重诚信的问题,他会被立刻解雇。
当一个公司这么重视诚信,员工一定更值得信赖。因此,公司对员工也能够完全信任,让他们发挥自己的才能。在微软公司,公司的各级管理者都会给员工较大的自由和空间发展他们的事业,并在工作和生活上充分信任、支持和帮助员工。只要是微软录用的人,微软就会百分之百地信任他。和一些软件企业对员工处处提防的做法不同,微软公司内的员工可以看到许多源代码,接触到很多技术或商业方面的机密。正因为如此得到公司的信任,微软的员工对公司才有更强的责任心和更高的工作热情。
1.2 培养主动意识
坦白地说,中国的学生和职员大多属于比较内向的类型,在学习和工作中还不够主动。在学校时,学生们往往需要老师安排学习任务,或是按照老师的思路做课题研究。在公司里,中国职员常常要等老板吩咐做什么事、怎么做之后,才开始工作。此外,许多中国人并不善于推销和宣传自己,这恐怕和中国自古以来讲求中庸的文化氛围有很大关系。
但是,要想在现代企业中获得成功,就必须努力培养自己的主动意识:在工作中要勇于承担责任,主动为自己设定工作目标,并不断改进方式和方法;此外,还应当培养推销自己的能力,在领导或同事面前要善于表现自己的优点,有了研究成果或技术创新之后要通过演讲、展示、交流、论文等方式和同事或同行分享,在工作中犯了错误也要勇于承认。只有积极主动的人才能在瞬息万变的竞争环境中获得成功,只有善于展示自己的人才能在工作中获得真正的机会。
1.3 客观、直接的交流和沟通
开诚布公的交流和沟通是团队合作中最重要的环节。人与人之间遮遮掩掩、言不由衷甚至挑拨是非的做法都会严重破坏团队中的工作氛围,阻碍团队成员间的正常交流,并最终导致项目或企业经营失败。
比如,在开会讨论问题的时候,与会的所有人员都应当坦诚地交换意见,这样才能做出正确的决定。如果某个人因为考虑到某些其他因素(比如不愿反驳上级领导的意见)而在会议上不敢表达自己的观点,一味地唯唯诺诺,会后到了洗手间里再和别人说“其实我不同意他的观点”,这种戴着假面具工作的人不但不能坚持自己的观点,还会破坏公司内部的沟通和交流渠道,对工作产生负面的影响。
微软公司有一个非常好的文化叫“开放式交流(Open communication)”,它要求所有员工在任何交流或沟通的场合里都能敞开心扉,完整地表达自己的观点。在微软开会时,大家如果意见的不统一,一定要表达出来,否则公司可能错过良机。当Internet刚开始时,很多微软的领导者不理解、不赞成花太多精力做这个“不挣钱”的技术。但是有几位技术人员,他们不断地提出他们的意见和建议,虽然他们的上司不理解,但是仍然支持他们“开放式交流”的权利。后来,他们的声音很快的达到比尔•盖茨的耳里,促成比尔改变公司方向,彻底支持Internet。从这个例子我们可以看到,这种开放的交流环境对微软公司保持企业活力和创新能力都是非常重要的。
彻底的开放式交流也有缺点。开放式交流有时会造成激烈的辩论甚至是争吵,而吵到气头上有时会说出不尊重别人的语言,会破坏人与人之间的关系。因此,微软公司的总裁史蒂夫•鲍尔默去年在微软的核心价值观中,提出我们要把这种开放式交流文化改进成“开放并相互尊重(Open and respectful)”。这要求我们在相互交流时充分尊重对方。当我们不同意对方的意见时,一定要用建设性的语言提出。
1.4 挑战自我、学无止境
从一名大学生到一名程序员,再到一位管理者,在软件人才的成长历程中,学习是永无止境的。在大学期间,我们要打好基础,培养自己各方面的素质和能力;工作以后,我们应当努力在实际工作中学习新的技术并积累相关经验;即使走上了管理岗位,我们也应当不断学习,不断提高自己。软件产业本身就是一个每天都会有新技术、新概念诞生,充满了活力和创造力的产业。作为软件产业的从业人员,如果只知道闭门造车、抱残守缺,我们就必然会落伍,必然会被市场淘汰。
许多中国学生喜欢与别人竞争,但这种竞争更多地表现为一种“零和游戏”,无法使自己和他人得到真正的提高。我建议大家最好能不断和自己竞争——不要总想着胜过别人,而要努力超越自我,不断在自身的水平上取得进步。
在学习的过程中,打好基础最为重要。从软件产业对人才的需求来看,我们必须学好数学和英语这两门基础学科。数学是所有工程科学的基础,无论是软件产品的开发,还是软件技术的研究,都要大量使用数学方法和数学原理。英文则是软件行业中的国际语言,要想了解国际上软件技术的发展趋势,掌握最新的研究成果,或是与国外同行进行技术交流,就必须掌握英文的听、说、读、写,能够在工作中熟练使用英文来解决问题。
2 情商和领导能力
同学们都希望增进自己的leadership skills(领导能力)。从我的经验和一些最近的研究结果看来,领导能力中最重要的是所谓的“情商”( EQ)。
智商(IQ)反映人的智慧水平,情商则反映了人在情感、情绪方面的自控和协调能力。在高新技术企业中,大家都知道智慧的重要,但是情商的重要性甚至超过了智商。我看过一篇文章,该文的作者调查了188个公司,他用心理学方法测试了这些公司里每一名员工的智商和情商,并将测试结果和该员工在工作上的表现联系在一起进行分析。经过研究,该文的作者发现,在对个人工作业绩的影响方面,情商的影响力是智商的两倍。此外,他还专门对公司中的高级管理者进行了分析。他发现在高级管理者中,情商对于个人成败的影响力是智商的九倍。这说明,智商略逊他人的人如果拥有更高的情商指数,也一样可以获得成功;反之,智商很高,但情商不足的人欠缺“领导能力”,很难成为一个成功的领导。
2.1 什么是情商?
在现代社会,如果你只知道智商而不晓得情商的话,你至少在意识上已经落伍了。许多心理学家早已明确地指出,单单使用智商的标准考察一个人在才智方面的表现,并不足以准确预测这个人在事业上可能取得的成就。为了全面考察个人能力,特别是考察个人在社会生活中的适应能力和创造能力,心理学家们提出了情商的概念。
情商主要是指那些与认识自我、控制情绪、激励自己以及处理人际关系等相关的个人能力。在情商所描述的各项能力因素中,自觉、同理心、自律和人际关系是四种对现代人的事业成败起决定性作用的关键因素。
智商是先天赋予的,但是情商是可以培养的。多花功夫理解和应用这四种情商的关键因素。除此之外,因为情商不是自己能看清楚的,我建议可多理解别人对你的看法、多吸取别人(尤其是情商高的人)的意见。
2.2 自觉
中国人常说,人贵有自知之明。这实际上是说,社会生活中的每个人都应当对自己的素质、潜能、特长、缺陷、经验等各种基本能力有一个清醒的认识,对自己在社会工作生活中可能扮演的角色有一个明确的定位。心理学上把这种有自知之明的能力称为“自觉”,这通常包括察觉自己的情绪对言行的影响,了解并正确评估自己的资质、能力与局限,相信自己的价值和能力等几个方面。
我的下属中有一个“自觉心”明显不足的人:他虽然有一些能力,但是他自视甚高,总是对自己目前的职位不满意,随时随地自吹自擂,总是不满现状。前一段时间,他认为我不识才,没有重用他,决定离开我的组,并期望在微软其他组中另谋高就。但是,他最终发现,自己不但找不到更好的工作,公司里的同事也都对他颇有微辞,认为他缺少自知之明,期望和现实相距太远。最近,他沮丧地离开了公司。接替他职位的人,是一个能力很强,而且很有“自觉心”的人。虽然这个人在上一个职位工作时不很成功,但他理解自己升迁太快,愿意自降一级来做这份工作,以便打好基础。他现在的确做得很出色。
简单地说,一个人既不能对自己的能力判断过高,也不能轻易低估自己的潜能。对自己判断过高的人往往容易浮躁、冒进,不善于和他人合作,在事业遭到挫折时心理落差较大,难以平静对待客观事实;低估了自己的能力的人,则会在工作中畏首畏尾、踟蹰不前,没有承担责任和肩负重担的勇气,也没有主动请缨的积极性。无论是上述哪一种情况,个人的潜力都不能得到充分的发挥,个人事业也不可能取得最大的成功。
有自知之明的人既能够在他人面前展示自己的特长,也不会刻意掩盖自己的欠缺。谈成自己的不足而向他人求教不但不会降低了自己,反而可以表示出自己虚心和自信,赢得他人的青睐。比如,当一个领导对某个职员说“在技术上你是专家,我不如你,我要多向你学习”的时候,职员不但认为这个领导非常谦虚,也一定会对这个领导更加信任,因为他理解自己的能力。
在微软公司,大家在技术上互帮互学,在工作中互相鼓励,没有谁天天都摆出盛气凌人的架子,也没有谁自觉矮人一头,这就自然营造出了一种坦诚、开放的工作氛围。
有自知之明的人在工作遇到挫折的时候不会轻言失败,在工作取得成绩时也不会沾沾自喜。认识自我,准确定位自我价值的能力不仅仅可以帮助个人找到自己合适的空间及发展方向,也可以帮助企业建立起各司其职、协同工作的优秀团队。有自知之明的人让人感觉他是一个自信、谦虚、真诚的人。
2.3 同理心
同理心(Empathy)是一个比较抽象的心理学概念,但解释起来非常简单:同理心指的是人们常说的设身处地、将心比心的做法。也就是说,在发生冲突或误解的时候,当事人如果能把自己放在对方的处境中想一想,也许就可以更容易地了解对方的初衷,消除误解。我们在生活中常说“人同此心,心同此理”,就是这个道理。
人与人之间的关系没有固定的公式可循,要从关心别人、体谅别人的角度出发,做事时为他人留下空间和余地,发生误会时要替他人着想,主动反省自己的过失,勇于承担责任。只要有了同理心,我们在工作和生活中就能避免许多抱怨、责难、嘲笑和讥讽,大家就可以在一个充满鼓励、谅解、支持和尊重的环境中愉快地工作和生活。
对于软件企业中的管理者来说,体现同理心的最重要一点就是要体谅和重视职员的想法,要让职员们觉得你是一个非常在乎他们的领导。拿我自己来说,我在工作中不会盲目地褒奖下属,不会动不动就给职员一些“非常好”、“不错”、“棒极了”等泛泛的评价,但是我会在职员确实做出了成绩的时候及时并具体地指出他对公司的贡献,并将他的业绩公之于众。例如,我会给部门内的全体职员发电子邮件说某个员工在上一周的工作中取得了出色的成绩,并详细说明他的工作成果,列举他的工作对于公司的重要价值,给出具体的表彰意见。这种激励员工的方式能够真正赢得员工的信任和支持,能够对企业的凝聚力产生巨大的影响。
同理心也是一种了解和认识他人的有效方法。我被调到新部门担任领导职位的时候,部门中有400多名员工,我都不认识。于是,我每周选出了10名员工,与他们共进午餐。在午餐时,我详细了解了每一个人的姓名、履历、工作情况以及他们对部门工作的建议。这些信息对于一个部门领导来说非常重要。在午餐会后,我立即根据这10名员工对部门的建议,安排部署相关的工作,并给这10名员工一一发回反馈意见,告诉他们我的处理方法。我的计划是在一个不长的时间里,认识并了解部门中的每一位员工,并在充分听取员工意见的基础上合理地安排工作。
2.4 自律
自律(Self-Regulation)指的是自我控制和自我调整的能力。这包括:自我控制不安定的情绪或冲动,在压力面前保持清晰的头脑;以诚实赢得信任,并且随时都清晰地理解自己的行为将影响他人。
自律对于领导者来说更为重要。作为软件企业的领导,要管理别人,要让下属信服,就要先从自我做起。这是因为,领导的做法通常是大家做事的目标和榜样,领导的每一次举手投足都会给下属留下深刻的印象,如果处理不好的话,可能会造成负面的影响。特别是当公司或团队处于危急时刻,需要领导带领大家克服困难、冲出重围的时候,如果领导表现得比职员还要急躁,翻来覆去拿不定主意,大家就会对领导丧失信心,公司或团队也会因此而走向失败。
有一次,我见过公司里的两个组即将被合并。第一个组的经理缺少自律,开会时对他的队伍说合并不是他的决定,他自己也不知下一步该怎么办。这个经理对未来没有信心,并猜测自己的队伍可能会被裁员。而第二个组的经理则在合并后告诉他的队伍这次合并对公司的好处。他也坦诚地说自己并不掌握所有的信息,但是他承诺会提醒上级尽快地做决定。并且,第二个经理还告诉大家他会尽其所能,帮助每一个员工安排最合理、最公平的出路。最后的结果是,第一个组的人很快就散了,他们的经理离开了公司,而第二个组的经理接管了合并后的机构。
自律必须建立在诚信的基础上。为了表现所谓的“自律”而在他人面前粉饰、遮掩自己的缺点,刻意表演的做法是非常不可取的。只有在赢得他人信任的基础上,严于律己、宽以待人,才能真正获得他人的尊重和赞许。
2.5 人际关系
人际关系包括在社会交往中的影响力、倾听与沟通的能力,处理冲突的能力、建立关系、合作与协调的能力,说服与影响的能力等等。
有些人在人际交往中的影响力是与生俱来的,他们在参加酒会或庆典的时候,只要很短的时间就能和所有人交上朋友。但也有些人并不具备这样的天赋,他们在社交活动中常常比较内向,宁愿一个人躲在角落里也不愿主动与人交谈。
我个人就缺乏人际交往的倾向。以前,我并不认为这有什么不妥,直到我遇到了一位非常具有个人影响力的经理为止。那个经理没有超人的智慧,但是他自称他认识了公司中几乎每一个有能力的人,并和其中的许多人成为了非常要好的朋友。我不知道他是怎么做到这一点的,但我很快就发现,他的这种能力对公司非常有用。比如,我需要在公司内部选拔一些职员到我的部门工作时,我就可以从他那里获得许多有关该职员的详细信息;与公司其他部门协调工作时,他的人际关系网也可以发挥非常大的作用。从那时起,我发现处理人际关系的能力对于一个人,特别是一个领导者来说非常重要,我开始特别注重培养自己在人际关系方面的影响力。
在技术研究和开发方面,沟通和说服的能力也至关重要。比如,我们开发出了一项先进的技术,要把它变成公司的产品。这首先要说服公司的决策层。我们必须细心准备我们的产品建议书,并通过精彩的演讲和现场展示让领导者相信我们研究出的技术对公司来说大有裨益,让决策层认为即将开发的产品可以在市场上取得成功。这些工作都需要我们具备处理人际关系、展示自己、影响他人的能力。
3 从优秀到卓越
在著名企业管理学家吉姆·柯林斯的《从优秀到卓越》(中信出版社,2002年)一书中,作者通过大量的案例调查和统计,讨论并分析了一家企业或一位企业的领导者是如何从优秀(Good)上升到卓越(Great)的层次的。柯林斯和他的研究小组耗费了10.5个人年,阅读并系统整理了6000多篇文章,记录了2000多页的专访内容,对1435家企业进行了问卷调查,收集了28家公司过去50年甚至更早的信息,进行了大范围的定性和定量分析,得出了如何使公司和公司的管理者从优秀跨越到卓越的令人惊异而振奋的答案。
根据吉姆·柯林斯得出的结论,优秀的公司和优秀的领导者很多,许多公司都可以在各自的行业里取得不俗的业绩。但如果以卓越的标准来衡量公司和个人的成绩,那么,能够保持持续健康增长的企业和能够不断取得事业成功的领导者都非常少。一位企业的领导者在成功的基础上,要想进一步提高自己,使自己的企业保持持续增长,使自己的个人能力从优秀向卓越迈进,就必须努力培养自己在“谦虚”、“执著”和“勇气”这三个方面的品质。
谦虚使人进步。许多领导者在工作中唯我独尊,不能听取他人的规谏,不能容忍他人和自己意见相左,这些不懂得谦虚谨慎的领导者也许可以取得暂时的成功,但却无法在事业上不断进步,达到卓越的境界。这是因为,一个人的力量终究有限,在瞬息万变的商业环境中,领导者必须不断学习,善于综合他人的意见,否则就将陷入一意孤行的泥潭,被市场所淘汰。比尔·盖茨就是一个非常谦虚的人。例如,他在每一次演讲结束后,请撰写演讲稿的人分析一下他的演讲有哪些不足之处,以便下一次改进。
执着是指我们坚持正确方向,矢志不移的决心和意志。无论是公司也好,还是个人也好,一旦认明了工作的方向,就必须在该方向的指引下锲而不舍地努力工作。在工作中轻言放弃或者朝三暮四的做法都不能取得真正的成功。微软公司在Windows 95操作系统取得了巨大的成功之后,比尔·盖茨仍然坚持发展企业级的Windows NT和Windows 2000操作系统。这是因为,他看到了企业级市场的广阔前景和微软在此方面的巨大潜力。经过几年的发展,微软公司的企业级操作系统终于在原本被Unix统治的市场上取得了成功,现在,包括个人操作系统在内的所有Windows产品都已经被构建在了更加安全、可靠的Windows NT架构之上。
成功者需要有足够的勇气来面对挑战。任何事业上的成就都不是轻易就可以取得的。一个人想要在工作中出类拔萃,就必须面对各种各样的艰难险阻,必须正视事业上的挫折和失败。只有那些有勇气正视现实,有勇气迎接挑战的人才能真正实现超越自我的目标,达到卓越的境界。正如马克·吐温所说:“勇气不是缺少恐惧心理,而是对恐惧心理的抵御和控制能力。”
4 结论
很多人认为,在IT和其他高科技领域内,西方人表现得更为出色,因此中国人只有吸取西方的企业文化才能获得一席之地。的确,IT产业内的一些新观点、新理念,与中国古老的东方文化之间确实有差异(例如,西方文化直截了当的沟通和主动参与的意识)。
不过,从本文中我们不难发现,成功所需要的一些最重要、最基本的素质大多还是中华的传统美德。在故宫里,我看到“正大光明”的匾额,其含义也就是“诚信和正直”;“学无止境”、“人贵有自知之明”、“将心比心”、“严于律己、宽以待人”都是中国历来推崇的道德观;人际关系更是在西方人公认在中国成功的秘诀;而最重要的“谦虚”、“执著”、“勇气”这三点则是中国传统文化的直接体现。因此,我认为中国人的EQ决不低于西方人,我对中国卓越的人才无比乐观。
在今天这个充满机遇和挑战的时代里,在软件产业这个高速发展、不断创新的领域内,只有那些不懈努力、善于把握自己、勇于迎接挑战的人才能取得真正的成功。我个人衷心地希望中国高新技术产业能够在新世纪中蓬勃发展,中国的人才能够在事业上不断取得成功,实现从优秀到卓越的跨越。
- 作者: cznao 2004年02月24日,星期二 22:38:38 回复(0) | 引用(0 )
李开复博士写给中国大学生的第一封信
李开复博士写给中国大学生的第一封信
[原创] Kai-Fu 2003-11-21
华裔美国科学家、微软中国研究院院长李开复是一位在语音识别、人工智能、三维图形和国际互联网多媒体等领域享有很高声誉的年轻人。他的成功经验和治学精神引起了我国许多青年尤其是大学生的广泛关注。在与我国年轻人的交往过程中,李开复归纳出了一些大家共同关心的问题,并结合自己的学习和工作经历,坦诚相见,直抒胸臆,写成了一封给我国学生的长信。
今天全文刊载这封信件,相信对大学生和青年朋友在如何对待机遇、如何对待学业、如何对待工作、如何对待他人 、如何对待自己等诸多方面会有一些有益的启示。
我在中国的这两年来,工作中最大的享受是到国内各高校与学生们进行交流。这些访问和交流使得我有机会与成千上万的青年学生就他们所关心的事业、前途等问题进行面对面的沟通。中国学生的聪明、好学和上进给我留下了非常深刻的印象。
在与这些青年学生的交流过程中,我发现有一些问题是大家都十分关心的。那些已经获得国外大学奖学金的学生,大都希望我谈一谈应该如何度过自己在美国的学习生涯;那些决定留在国内发展的学生,非常关心如何确定一个正确的方向,并以最快的速度在科研和学业方面取得成功;还有那些刚刚踏进大学校门的学生,则希望我能讲给他们一些学习、做人的经验之谈。最近,更有一些学生关心网络信息产业的发展,希望了解美国的大学生是如何创业和致富的。看到这么多双渴求知识、充满希望的眼睛,我突然产生了一种冲动,那就是给中国的学生们写一封信,将我与同学们在交流过程中产生的一些想法以及我要对中国学生的一些忠告写出来,帮助他们在未来的留学、工作或者创业的过程中能够人格更完美,生活更顺利,事业更成功。
坚守诚信、正直的原则
我在苹果公司工作时,曾有一位刚被我提拔的经理,由于受到下属的批评,非常沮丧地要我再找一个人来接替他。我问他:“你认为你的长处是什么?”他说: “我自信自己是一个非常正直的人。”我告诉他:“当初我提拔你做经理,就是因为你是一个公正无私的人。管理经验和沟通能力是可以在日后工作中学习的,但一颗正直的心是无价的。”我支持他继续干下去,并在管理和沟通技巧方面给予他很多指点和帮助。最终, 他不负众望,成为一个出色的管理人才。
与之相反,我曾面试过一位求职者。他在技术、管理方面都相当出色。但是,在谈话之余,他表示,如果我录取他,他可以把在原来公司工作时的一项发明带过来。随后他似乎觉察到这样说有些不妥,特作声明:那些工作是他在下班之后做的,他的老板并不知道。这一番谈话之后,对于我而言,不论他的能力和工作水平怎样,我都肯定不会录用他。原因是他缺乏最基本的处世准则和最起码的职业道德:“诚实”和“讲信用”。如果雇用这样的人,谁能保证他不会在这里工作一段时间后,把在这里的成果也当作所谓“业余之作”而变成向其他公司讨好的“贡品”呢?这说明,一个人品不完善的人是不可能成为一个真正有所作为的人的。
在美国,中国学生的勤奋和优秀是出了名的。曾经一度是美国各名校最欢迎的留学生群体,而最近,却有一些变化。原因很简单,某些中国学生拿着读博士的奖学金到了美国,可一旦找到工作机会,他们就会马上申请离开学校,将自己曾经承诺要完成的学位和研究抛在一边。这种言行不一的做法已经使得美国一部分教授对中国学生的诚信产生了怀疑。应该指出,有这种行为的中国学生是少数,然而就是这样的“少数”,已经让中国学生的名誉受到了极大的损害。另外,目前美国有些教授不愿理会部分中国学生的推荐信,因为他们知道这些推荐信根本就出自学生自己之手,已无参考性可言。这也是诚信受到损害以后的必然结果。
我在微软研究院也曾碰到过类似的问题。一位来这里实习的学生,有一次出乎意料地报告了一个非常好的研究结果。但是,他做的研究结果别人却无法重复。后来,他的老板发现,这个学生对实验数据进行了挑选,只留下了那些合乎最佳结果的数据,而舍弃了那些“不太好”的数据。我认为,这个学生永远不可能实现真正意义的学术突破,也不可能成为 一名 真正合格的研究人员。
最后想提的是一些喜欢贪小便宜的人。他们用学校或公司的电话打私人长途、多报销出租车票。也许有人认为,学生以成绩、事业为重,其他细节只是一些小事,随心所欲地做了,也没什么大不了的。然而,就是那些身边的所谓“小事”,往往成为一个人塑造人格和积累诚信的关键。一些贪小便宜、耍小聪明的行为只会把自己定性为一个贪图小利、没有出息的人的形象,最终因小失大。中国有“勿以恶小而为之”的古训,很值得记取。
生活在群体之中
与大多数美国学生比较而言,中国学生的表达能力、沟通能力和团队精神要相对欠缺一些。这也许是由于文化背景和教育体制的不同而造成的。今天,当我们面对一个正在走向高度全球化的社会时,生活在群体之中,做出更好的表现,得到更多的收获,是尤为重要的。
表达和沟通的能力是非常重要的。不论你做出了怎样优秀的工作,不会表达,无法让更多的人去理解和分享,那就几乎等于白做。所以,在学习阶段,你不可以只生活在一个人的世界中,而应当尽量学会与各类人交往和沟通,主动表达自己对各种事物的看法和意见,甚至在公众集会时发表演讲,锻炼自己的表达能力。
表达能力绝不只是你的“口才”。哈佛大学的Ambady教授最近做过一个非常有趣的实验,他让两组学生分别评估几位教授的授课质量。他把这几位教授的讲课录像带先无声地放两秒钟给一组学生看,得出一套评估结果。然后与那些已经听过这几位教授几个月讲课的学生的结果进行对比,两个小组的结论竟然惊人的相似。这表明,在表达自己思想的过程中,非语言表达方式和语言同样重要,有时作用甚至更加明显。这里所讲的非语言表达方式是指人的仪表、举止、语气、声调和表情等。因为从这些方面,人们可以更直观、更形象地判断你为人、做事的能力,看出你的自信和热情,从而获得十分重要的“第一印象”。
对于一个集体、一个公司,甚至是一个国家,团队精神都是非常关键性的。微软公司在美国以特殊的团队精神著称。像 Windows2000这样的产品的研发,有超过3000名开发工程师和测试人员参与,写出了5000万行代码。没有高度统一的团队精神,没有全部参与者的默契与分工合作,这项工程是根本不可能完成的。
以前我在别的公司时却也曾见到过相反的现象。一项工程布置下来,大家明明知道无法完成,但都心照不宣,不告诉老板。因为反正也做不完,大家索性也不努力去做事,却花更多的时间去算计怎么把这项工程的失败怪罪到别人身上去。就是这些人和这样的工作作风,几乎把这家公司拖垮。
为了培养团队精神,我建议同学们在读书之余积极参加各种社会团体的工作。在与他人分工合作、分享成果、互助互惠的过程中,你们可以体会团队精神的重要性。
在学习过程中,你千万不要不愿意把好的思路、想法和结果与别人分享,担心别人走到你前面的想法是不健康的,也无助于你的成功。有一句谚语说,“你付出的越多,你得到的越多”。试想,如果你的行为让人觉得“你的是我的,我的还是我的”,当你需要帮忙时,你认为别人会来帮助你吗?反之,如果你时常慷慨地帮助别人,那你是不是会得到更多 人的 回报呢?
在团队之中,要勇于承认他人的贡献。如果借助了别人的智慧和成果,就应该声明。如果得到了他人的帮助,就应该表示感谢。这也是团队精神的基本体现。
做一个主动的人
三十年前,一个工程师梦寐以求的目标就是进入科技最领先的IBM。那时IBM对人才的定义是一个有专业知识的、埋头苦干的人。斗转星移,事物发展到今天,人们对人才的看法已逐步发生了变化。现在,很多公司所渴求的人才是积极主动、充满热情、灵活自信的人。
作为当代中国的大学生,你应该不再只是被动地等待别人告诉你应该做什么,而是应该主动去了解自己要做什么,并且规划它们,然后全力以赴地去完成。想想今天世界上最成功的那些人,有几个是唯唯诺诺、等人吩咐的人?对待自己的学业和研究项目,你需要以一个母亲对孩子那样的责任心和爱心,全力投入,不断努力。果真如此,便没有什么目标是不能达到的。
一个积极主动的人还应该虚心听取他人的批评和意见。其实,这也是一种进取心的体现。不能虚心接受别人的批评,并从中汲取教训,就不可能有更大的进步。比尔·盖茨曾经对公司所有员工说过:“客户的批评比赚钱更重要。从客户的批评中,我们可以更好地汲取失败的教训,将它转为成功的动力。”
除了虚心接受别人的批评,你还应该努力寻找一位你特别尊敬的良师。这位良师应该是直接教导你的老师以外的人,这样的人更能客观地给你一些忠告。这位良师除了可以在学识上教导你之外,还可以在其他一些方面对你有所指点,包括为人处世,看问题的眼光,应对突发事件的技能等等。
我以前在苹果公司负责一个研究部门时,就曾有幸找到这样一位良师。当时,他是负责苹果公司全球运作和生产业务的高级副总裁,他在事业发展方面给我的许多教诲令我终身受益。如果有这样的人给你帮助 ,那你成长的速度一定会比别人更快一些。
中国学生大多比较含蓄、害羞,不太习惯做自我推销。但是,要想把握住转瞬即逝的机会,就必须学会说服他人,向别人推销自己或自己的观点。在说服他人之前,要先说服自己。你的激情加上才智往往折射出你的潜力,一个好的自我推销策略可以令事情的发展锦上添花。
例如,有一次我收到了一份很特殊的求职申请书。不同于已往大多数求职者,这位申请人的求职资料中包括了他的自我介绍、他对微软研究院的向往、以及他为什么认为自己是合适的人选,此外还有他已经发表的论文、老师的推荐信和他希望来微软作的课题等。尽管他毕业的学校不是中国最有名的学校,但他的自我推销奏效了。我从这些文件中看到了他的热情和认真。在我面试他时,他又递交了一份更充分的个人资料。最后,当我问他有没有问题要问我时,他反问我,:“你对我还有没有任何的保留?”当时,我的确对他能否进入新的研究领域有疑虑,于是就进一步问了他一些这方面的问题。他举出了两个很有说服力的例子。最后,我们雇用了这名应聘者。他现在做得非常出色。
挑战自我、开发自身潜力
我在苹果公司工作的时候,有一天,老板突然问我什么时候可以接替他的工作?我非常吃惊,表示自己缺乏像他那样的管理经验和能力。但是他却说,这些经验是可以培养和积累的,而且他希望我在两年之后就可以做到。有了这样的提示和鼓励,我开始有意识地加强自己在这方面的学习和实践。果然,我真的在两年之后接替了他的工作。我个人认为,一个人的领导素质对于他将来的治学、经商或从政都是十分重要的。在任何时候、任何环境里,我们都应该有意识地培养自己的领导才能。同时,我建议你给自己一些机会展示这方面的能力,或许像我一样,你会惊讶自己在这一方面的潜力远远超过了自己的想象。
给自己设定目标是一件十分重要的事情。目标设定过高固然不切实际,但是目标千万不可定得太低。在二十一世纪,竞争已经没有疆界,你应该放开思维,站在一个更高的起点,给自己设定一个更具挑战性的标准,才会有准确的努力方向和广阔的前景,切不可做“井底之蛙”。另外,只在一所学校取得好成绩、好名次就认为自己已经功成名就是可笑的,要知道,山外有山,人上有人,而且,不同地方的衡量标准又不一 样。所以,在订立目标方面,千万不要有“宁为鸡首,不为牛后”的 思想。
一个一流的人与一个一般的人在一般问题上的表现可能一样,但是在一流问题上的表现则会有天壤之别。美国著名作家威廉·福克纳说过:“不要竭尽全力去和你的同僚竞争。你更应该在乎的是:你要比现在 的你 更强。”你应该永远给自己设立一些很具挑战性、但并非不可及的目 标。
在确立将来事业的目标时,不要忘了扪心自问:“这是不是我最热爱的专业?我是否愿意全力投入?”我希望你们能够对自己选择所从事的工作充满激情和想象力,对前进途中可能出现的各种艰难险阻无所畏惧。谈到对工作的热爱,我认识的一位微软的研究员曾经让我深有感触。他经常周末开车出门,说去见“女朋友”,后来,一次偶然机会我在办公室里看见他,问他:“女朋友在哪里?”他笑着指着电脑说:“就是她呀。 ”
对于工作的热爱,比尔·盖茨也曾有过非常精彩的阐述,他说:“每天早晨醒来,一想到所从事的工作和所开发的技术将会给人类生活带来的巨大影响和变化,我就会无比兴奋和激动。”
几个月前,《北京青年报》上曾有一场探讨比尔·盖茨和保尔·柯察金谁更伟大的讨论。由于从小在美国长大,我并不知道保尔和他的事迹。但是,我非常赞同保尔的这段名言:“人最宝贵的东西是生命,生命属于我们只有一次。人的一生应当这样度过,当他回首往事的时候,不因虚度年华而悔恨,也不因碌碌无为而羞愧……”所以,你应当选择一个你真心热爱的事业,不断地挑战自我、完善自我,让自己的一生过得精彩和充实。
客观、直接了当的沟通
有一次,一位中国的大学教授找到我,希望我帮他找一位国外的专家在他组织的会议上去作主题演讲,末了还特意加了一句,最好是一个洋人。我很不以为然地对他说:“这个领域最具权威的人士就是在北京的一个中国人,为什么你一定要找一位洋人呢?”他表面上同意我的说法,但是他仍然请了一个美国人来作这个演讲,结果效果很差。所以,我们不应该陷入盲目的崇洋情结。我们应该用客观的眼光来判断事物,而不是以他 的肤色或他的居住地来决定。
有一句话说,“真理往往掌握在少数人手中”。这句话的意思是,我们看问题应该有自己的眼光,有独立思考的能力,不一定大多数人认可的,或某个权威说的,就是对的。不论是作学问、搞研究还是经商,我们都不能盲从,要多想几个为什么。有了客观的意见,你就应该直接了当地表达。如果做任何事情都像“打太极拳”,会让人不知所云,也会造成很多误会。有一次,在微软研究院工作的一位研究人员就自己所选择的研究方向来征求我的意见,我作了一番分析,认为这个方向有不少问题,但如果他坚持,我愿意支持他试着去做。结果他认为我这句话的意思实际上就是不允许他去做,所以他就选择了其他的方向。后来他要出差时,负责行政事务的人告诉他,你可以选择坐火车或者坐飞机。他认为行政人员实际上是在暗示他坐火车,因为坐飞机太贵。其实,他的猜测都是错误的。因为我们的沟通方式是直接了当,而他却在“打太极拳”。这之后,我们通过一系列的公司文化讲座,让员工们了解到,心里想什么就讲什么,不要把简单的问题复杂化。现在,研究院里这类的误会少了很多。
拐弯抹角,言不由衷,结果浪费了大家的宝贵时间。瞻前顾后,生怕说错话,结果是变成谨小慎微的懦夫。更糟糕的是还有些人,当面不说,背后乱讲,这样对他人和自己都毫无益处,最后只能是破坏了集体的团结。这样的人和作风既不能面对社会,也不可能在科学研究中走出新路,更不可能在激烈的商战中脱颖而出。
希望同学们能够做到开诚布公,敢于说“不”,这才是尊重自己思想意愿的表现。当然,在表达你的意见时,无论反对和批评都应是建设性的,有高度诚意的,而不是为批评而批评,为辩论而批评。我赞成的方式是提供建设性的正面的意见。在开始讨论问题时,任何人先不要拒人千里之外,大家把想法都摆在桌面上,充分体现个人的观点,这样才会有一个容纳大部分人意见的结论。当然,你也要学习用适当的方法和口气表达你的意见,比如说不要在很多人面前让别人难堪。这样,你的批评才会奏效。
珍惜校园学习生活
几天前,报纸上登出一条消息,说有中学生辍学去开网络公司。我认为这并不值得提倡。对绝大多数学生来讲,在校生活是系统地学习基础理论知识,学习思考和解决问题方式的好机会。这些知识将成为你未来发展过程中所需要的最基本的知识和技能。就像建一栋高楼,如果不打好基础,是经不起风吹雨打的。
在全球范围内,美国的研究水平无疑是世界一流的。而除了美国之外,你会发现英国的研究水平也是相当突出的。究其原因,其实就是语言问题。英国人可以毫无阻碍地阅读美国乃至全球各种最新的英文研究报告和资料。这对于他们把握研究方向,跟踪最新进展,发表研究成果都有很大的帮助。因此,英语学习对于我们作研究的人来说,是相当重要的。只有加强这方面素质的培养,才能适应将来的发展。我建议,学英语先听说,再学读写,而且务必在大学阶段完全解决英语学习的问题。等到年龄大了,要付出的代价相比就会大得多。
除了英语之外,数学、统计学对理工科学生也是很重要的基础课程,是不可忽视的。数学是人类几千年的智慧结晶,你们一定要用心把它学好,不能敷衍了事。我今天就很后悔自己当初没有花更多功夫把数学 学得更好些。另外,计算机应用、算法和编程也都是每一个工科学生应该 熟悉 和掌握的,它们是将来人人必须会用的工具。
科技的发展可谓日新月异。在校学习的目的,其实就是掌握最基本的学习工具和方法。将来利用这些工具和方法,再去学习新的东西。比如:上课学会了C++,能否自己学会Java?上课学会了HTML,能否自己 学会 XML?与其说上大学是为了学一门专业,不如说是为了学会如何学习 ,让 自己能够“无师自通”。
大学毕业后的前两年,同学们聚到一起,发现变化都还不算大。五年后再聚到一起,变化就大多了。一些人落伍了,因为他们不再学习,不再能够掌握新的东西,自然而然地落在了社会发展的后面。如果我们要在这个竞争激烈的社会中永不落伍,那就得永远学习。
我的老板RickRashid博士是目前微软公司主管研究的高级副总裁,他已经功成名就,却始终保持着一颗学习和进取的心。现在,他每年仍然编写大约 50,000行程序。他认为:用最新的技术编程可以使他保持对计算机最前沿技术的敏感,使自己能够不断进步。今天,有些博士生带着低年级的本科生和硕士生做项目,就自满地认为自己已经没有必要再编程了。其实,这样的做法是很不明智的。
每次到清华和其他学校访问,被问到最多的就是学生打工的问题。我认为,打工从总体来说对学生是一件好事,是拓宽视野的一种方式。例如,在研究机构打工,可以学到最新的科技;在产品部门打工,可以学到开发的技术和技能;在市场部门打工,可以理解商业的运作。我认为每一个学生都应该有打工的经验,但不要打一些“没用的工”。首先要明白打工只是学生生活中的一种补充,学习才是最重要的。打工的目的是开阔眼界,不是提前上班。如果你把翻译书本、录入数据库所花的时间投入学习,将来可以赚更多的钱。那些钱将远远超出目前打工的收入。
此外,还有一些学生受到目前退学创业风潮的鼓励,为成为中国的比尔·盖茨和迈克尔·戴尔而中途辍学。以我的观点,除了十分特殊的情况外,我不建议在校学生退学创业。你所看到的那些退学创业的成功者实际上少之又少。目前,大部分学生虽有创业的想法,但缺少创业的经验,所以失败的可能性非常大。如果要成功,我建议你们先把书读好。如果是要学习创业的经验,你完全可以利用假期的时间先去一家公司边打工边学。
比尔·盖茨也曾说过:“如果你正在考虑自己成立一家新公司,你应该首先明确地知道:创办公司需要巨大的精力投入,要冒巨大的风险。我觉得你们不必像我,一开始就创办一家公司。你应该考虑加盟其他公司并 在这 家公司中学习他们的工作、创业方法。”
你想戴一顶什么样的博士帽
在我进入卡内基梅隆大学攻读计算机博士学位时,系主任曾对我讲,当你拿到你的博士学位时,你应该成为你所从事的研究领域里世界第一的专家。这句话对于初出茅庐的我来说简直高不可攀,但也让我踌躇满志、跃跃欲试。就这样,在经过五年寒窗、夜以继日的努力工作后,他所期待的结果就那么自然而然地出现了。
一个打算攻读博士学位的人,就应该给自己树立一个很高的目标。如果没有雄心壮志,就千万不要自欺欺人,也许经商或从事其它工作,会有更大的成绩。在目标确立之后,我建议你为自己设计一个三年的学习和科研计划。首先,你需要彻底地了解在相关领域他人已有的工作和成绩。然后再提出自己的想法和见解,做脚踏实地的工作。另外,还要不断跟踪这个领域的最新研究进展。只有这样,才可以把握好方向,避免重复性工作,把精力集中在最有价值的研究方向上 。
在学术界,人们普遍认为“名师出高徒”。可见导师在你的成长道路中作用是多么大。所以,你应该主动去寻找自己所研究的领域里最好的老师。除了你的老师之外,你还应该去求教于周围所有的专家。更不要忘了常去求教“最博学的老师”Internet!现在,几乎所有的论文、研究结果、先进想法都可以在网上找到。我还鼓励你直接发电子邮件去咨询一些世界公认的专家和教授。以我的经验,对于这样的邮件,他们中的大部分都会很快给你回复。
我在攻读博士学位时,每周工作七天,每天工作16个小时,大量的统计结果和分析报告几乎让我崩溃。那时,同领域其他研究人员采用的是与我不同的传统方法。我的老师虽然支持我,但并不认可我的研究方向 。我也曾不止一次地怀疑自己的所作所为是否真的能够成功。但终于有一 天,在半夜三点时做出的一个结果让我感受到了成功的滋味。后来,研究有了突飞猛进的进展,导师也开始采用我的研究方法。我的博士论文使我的研究成为自然语言研究方面当时最有影响力的工作之一。
读博士不是一件轻松的事,切忌浮躁的情绪,而要一步一个脚印,扎扎实实地工作。也不可受一些稍纵即逝的名利的诱惑,而要200%的投入。也许你会疲劳,会懊悔,会迷失方向,但是要记住,你所期待的成功和突破也正孕育其中。那种一切都很顺利,谁都可以得到的工作和结果,我相信研究价值一定不高。从一定意义上讲,一个人如果打算一辈子从事研究工作,那么从他在读博士学位期间所形成的做事习惯、研究方法和思维方式基本上就可以判断出他未来工作的轮廓。所以,你一定要做一个“有心人”,充分利 用在 校的时间,为自己的将来打好基础。
上述一些观点,是我在与同学们交往过程中的一些感受。我希望这些建议和想法能对正在未来之路上跋涉的你们有所启发,能对你们目前的学习有所帮助。或许因为观点不同、人各有志,或许因为忠言逆耳,这封信可能无法为每一位同学所接受。但是只要一百位阅读这封信的同学中有一位从中受益,这封信就已经比我所作的任何研究都更有价值。我真诚地希望,在新的世纪,中国学生无论是在国内,还是国外;无论是做研究,还是经商,都显得更成熟一些,成功的机率更大一些。
- 作者: cznao 2004年02月24日,星期二 22:35:57 回复(1) | 引用(0 )
计算机科学技术学习引论
计算机科学技术学习引论
[原创] zengyi820 2003-07-01
计算机科学与技术这一门科学深深的吸引着我们这些同学们,上计算机系已经有近三年了,自己也做了一些思考,原先不管是国内还是国外都喜欢把这个系分为计算机软件理论、计算机系统、计算机技术与应用。后来又合到一起,变成了现在的计算机科学与技术。我一直认为计算机科学与技术这门专业,在本科阶段是不可能切分成计算机科学和计算机技术的,因为计算机科学需要相当多的实践,而实践需要技术;每一个人(包括非计算机专业),掌握简单的计算机技术都很容易(包括原先Major们自以为得意的程序设计),但计算机专业的优势是:我们掌握许多其他专业并不"深究"的东西,例如,算法,体系结构,等等。非计算机专业的人可以很容易地做一个芯片,写一段程序,但他们做不出计算机专业能够做出来的大型系统。今天我想专门谈一谈计算机科学,并将重点放在计算理论上。
1、计算机理论的一个核心问题--从数学谈起:
[1]高等数学Vs数学分析
记得当年大一入学,每周四课时高等数学,天天作业不断(那时是七天工作制)。颇有些同学惊呼走错了门:咱们这到底念的是什么系?不错,你没走错门,这就是计算机科学与技术系。我国计算机科学系里的传统是培养做学术研究,尤其是理论研究的人(方向不见得有多大的问题,但是做得不是那么尽如人意)。而计算机的理论研究,说到底了,如网络安全学,图形图像学,视频音频处理,哪个方向都与数学有着很大的关系,虽然也许是正统数学家眼里非主流的数学。这里我还想阐明我的一个观点:我们都知道,数学是从实际生活当中抽象出来的理论,人们之所以要将实际抽象成理论,目的就在于想用抽象出来的理论去更好的指导实践,有些数学研究工作者喜欢用一些现存的理论知识去推导若干条推论,殊不知其一:问题考虑不全很可能是个错误的推论,其二:他的推论在现实生活中找不到原型,不能指导实践。严格的说,我并不是一个理想主义者,政治课上学的理论联系实际一直是指导我学习科学文化知识的航标(至少我认为搞计算机科学与技术的应当本着这个方向)。
其实我们计算机系学数学仅学习高等数学是不够的(典型的工科院校一般都开的是高等数学),我们应该像数学系一样学一下数学分析(清华计算机系开的好像就是数学分析,我们学校计算机学院开的也是,不过老师讲起来好像还是按照高等数学讲),数学分析这门科学,咱们学计算机的人对它有很复杂的感情。在于它是偏向于证明型的数学课程,这对我们培养良好的分析能力和推理能力极有帮助。我的软件工程学导师北工大数理学院的王仪华先生就曾经教导过我们,数学系的学生到软件企业中大多作软件设计与分析工作,而计算机系的学生做程序员的居多,原因就在于数学系的学生分析推理能力,从所受训练的角度上要远远在我们平均水平之上。当年出现的怪现象是:计算机系学生的高中数学基础在全校数一数二(希望没有冒犯其它系的同学),教学课时数也仅次于数学系,但学完之后的效果却不尽如人意。难道都是学生不努力吗,我看未见得,方向错了也说不一定,其中原因何在,发人深思。
我个人的浅见是:计算机系的学生,对数学的要求固然跟数学系不同,跟物理类差别则更大。通常非数学专业的所?quot;高等数学",无非是把数学分析中较困难的理论部分删去,强调套用公式计算而已。而对计算机系来说,数学分析里用处最大的恰恰是被删去的理论部分。说得难听一点,对计算机系学生而言,追求算来算去的所谓"工程数学"已经彻底地走进了误区。记上一堆曲面积分的公式,难道就能算懂了数学?那倒不如现用现查,何必费事记呢?再不然直接用Mathematica或是 Matlab好了。退一万步讲,即使是学高等数学我想大家看看华罗庚先生的《高等数学导论》也是比一般的教材好得多。华罗庚在数学上的造诣不用我去多说,但是他这光辉的一生做得我认为对我们来说,最重要的几件事情:首先是它筹建了中国科学院计算技术研究所,这是我们国家计算机科学的摇篮。在有就是他把很多的高等数学理论都交给了做工业生产的技术人员,推动了中国工业的进步。第三件就是他一生写过很多书,但是对高校师生价值更大的就是他在病期间在病床上和他的爱徒王元写了《高等数学引论》(王元与其说是他的爱徒不如说是他的同事,是中科院数学所的老一辈研究员,对歌德巴赫猜想的贡献全世界仅次于陈景润)这书在我们的图书馆里居然找得到,说实话,当时那个书上已经长了虫子,别人走到那里都会闪开,但我却格外感兴趣,上下两册看了个遍,我的最大收获并不在于理论的阐述,而是在于他的理论完全的实例化,在生活中去找模型。这也是我为什么比较喜欢具体数学的原因,正如我在上文中提到的,理论脱离了实践就失去了它存在的意义。正因为理论是从实践当中抽象出来的,所以理论的研究才能够更好的指导实践,不用于指导实践的理论可以说是毫无价值的。
我在系里最爱做的事情就是给学弟学妹们推荐参考书。没有别的想法,只是希望他们少走弯路。中文的数学分析书,一般都认为以北大张筑生老师的"数学分析新讲"为最好。张筑生先生一生写的书并不太多,但是只要是写出来的每一本都是本领域内的杰作,这本当然更显突出些。这种老书看起来不仅是在传授你知识,而是在让你体会科学的方法与对事物的认识方法。万一你的数学实在太好,那就去看菲赫金哥尔茨?quot;微积分学教程"好了--但我认为没什么必要,毕竟你不想转到数学系去。吉米多维奇的"数学分析习题集"也基本上是计算型的书籍。书的名气很大,倒不见得适合我们,还是那句话,重要的是数学思想的建立,生活在信息社会里我们求的是高效,计算这玩意还是留给计算机吧。不过现在多用的似乎是复旦大学的《数学分析》,高等教育出版社的,也是很好的教材。
中国的所谓高等代数,就等于线性代数加上一点多项式理论。我以为这有好的一面,因为可以让学生较早感觉到代数是一种结构,而非一堆矩阵翻来覆去。这里不得不提南京大学林成森,盛松柏两位老师编的"高等代数",感觉相当舒服。此书相当全面地包含了关于多项式和线性代数的基本初等结果,同时还提供了一些有用的又比较深刻的内容,如Sturm序列,Shermon- Morrison公式,广义逆矩阵等等。可以说,作为本科生如能吃透此书,就可以算是高手。国内较好的高等代数教材还有清华计算机系用的那本,清华出版社出版,书店里多多,一看就知道。从抽象代数的观点来看,高等代数里的结果不过是代数系统性质的一些例子而已。莫宗坚先生的《代数学》里,对此进行了深刻的讨论。然而莫先生的书实在深得很,作为本科生恐怕难以接受,不妨等到自己以后成熟了一些再读。
正如上面所论述的,计算机系的学生学习高等数学:知其然更要知其所以然。你学习的目的应该是:将抽象的理论再应用于实践,不但要掌握题目的解题方法,更要掌握解题思想,对于定理的学习:不是简单的应用,而是掌握证明过程即掌握定理的由来,训练自己的推理能力。只有这样才达到了学习这门科学的目的,同时也缩小了我们与数学系的同学之间思维上的差距。
[2]计算数学基础
概率论与数理统计这门课很重要,可惜大多数院校讲授这门课都会少些东西。少了的东西现在看至少有随机过程。到毕业还没有听说过Markov过程,此乃计算机系学生的耻辱。没有随机过程,你怎么分析网络和分布式系统?怎么设计随机化算法和协议?据说清华计算机系开有"随机数学",早就是必修课。另外,离散概率论对计算机系学生来说有特殊的重要性。而我们国家工程数学讲的都是连续概率。现在,美国已经有些学校开设了单纯的"离散概率论"课程,干脆把连续概率删去,把离散概率讲深些。我们不一定要这么做,但应该更加强调离散概率是没有疑问的。这个工作我看还是尽早的做为好。
计算方法学(有些学校也称为数学分析学)是最后一门由数理学院给我们开的课。一般学生对这门课的重视程度有限,以为没什么用。不就是照套公式嘛!其实,做图形图像可离不开它,密码学搞深了也离不开它。而且,在很多科学工程中的应用计算,都以数值的为主。这门课有两个极端的讲法:一个是古典的"数值分析",完全讲数学原理和算法;另一个是现在日趋流行的"科学与工程计算",干脆教学生用软件包编程。我个人认为,计算机系的学生一定要认识清楚我们计算机系的学生为什么要学这门课,我是很偏向于学好理论后用计算机实现的,最好使用C语言或C++编程实现。向这个方向努力的书籍还是挺多的,这里推荐大家高等教育出版社(CHEP)和施普林格出版社(Springer)联合出版的《计算方法(Computational Methods)》,华中理工大学数学系写的(现华中科技大学),这方面华科大做的工作在国内应算是比较多的,而个人认为以这本最好,至少程序设计方面涉及了:任意数学函数的求值,方程求根,线性方程组求解,插值方法,数值积分,场微分方程数值求解。李庆扬先生的那本则理论性过强,与实际应用结合得不太紧,可能比较适合纯搞理论的。
[3]也谈离散数学
每个学校本系里都会开一门离散数学,涉及集合论,图论,和抽象代数,数理逻辑。不过,这么多内容挤在离散数学一门课里,是否时间太紧了点?另外,计算机系学生不懂组合和数论,也是巨大的缺陷。要做理论,不懂组合或者数论吃亏可就太大了。从理想的状态来看,最好分开六门课:集合,逻辑,图论,组合,代数,数论。这个当然不现实,因为没那么多课时。也许将来可以开三门课:集合与逻辑,图论与组合,代数与数论。(这方面我们学校已经着手开始做了)不管课怎么开,学生总一样要学。下面分别谈谈上面的三组内容。
古典集合论,北师大出过一本《基础集合论》不错。
数理逻辑,中科院软件所陆钟万教授的《面向计算机科学的数理逻辑》就不错。现在可以找到陆钟万教授的讲课录像,http://www.cas.ac.cn/html/Dir/2001/11/06/3391.htm自己去看看吧。总的来说,学集合/逻辑起手不难,普通高中生都能看懂。但越往后越感觉深不可测。
学完以上各书之后,如果你还有精力兴趣进一步深究,那么可以试一下GTM系列中的《Introduction to Axiomatic Set Theory》和《A Course in Mathematical Logic》。这两本都有世界图书出版社的引进版。你如果能搞定这两本,可以说在逻辑方面真正入了门,也就不用再浪费时间听我瞎侃了。
据说全中国最多只有三十个人懂图论。此言不虚。图论这门科学,技巧性太强,几乎每个问题都有一个独特的方法,让人头痛。不过这也正是它魅力所在:只要你有创造性,它就能给你成就感。我的导师说,图论里面随便找一块东西就可以写篇论文。大家可以体会里面内容之深广了吧!国内的图论书中,王树禾老师的"图论及其算法"非常成功(顺便推荐大家王先生的"数学思想史",个人认为了解科学史会对我们的学习和研究起到很大的推动作用)。一方面,其内容在国内教材里算非常全面的。另一方面,其对算法的强调非常适合计算机系(本来就是科大计算机系教材)。有了这本书为主,再参考几本翻译的,如Bondy & Murty的《图论及其应用》,人民邮电出版社翻译的《图论和电路网络》等等,就马马虎虎,对本科生绝对足够了。再进一步,世界图书引进有GTM系列的 "Modern Graph Theory"。此书确实经典!国内好象还有一家出版了个翻译版。不过,学到这个层次,还是读原版好(说实话,主要是亲身体验翻译版的弊端,这个大家自己体会)。搞定这本书,也标志着图论入了门。
离散数学方面我们北京工业大学实验学院有个世界级的专家,叫邵学才,复旦大学概率论毕业的,教过高等数学,线性代数,概率论,最后转向离散数学,出版著作无数,论文集新加坡有一本,堪称经典,大家想学离散数学的真谛不妨找来看看。这老师的课我专门去听过,极为经典。不过你要从他的不经意的话中去挖掘精髓。在同他的交谈当中我又深刻地发现一个问题,虽说邵先生写书无数,但依他自己的说法每本都差不多,我实在觉得诧异,他说主要是有大纲的限制,不便多写。这就难怪了,很少听说国外写书还要依据个什么大纲(就算有,内容也宽泛的多),不敢越雷池半步,这样不是看谁的都一样了。外版的书好就好在这里,最新的科技成果里面都有论述,别的先不说,至少?quot;紧跟时代的理论知识"。
原先离散数学和数据结构归在一起成为离散数学结构,后来由于数据结构的内容比较多,分出来了,不过最近国外好像有些大学又把它们合并到了一起,道理当然不用说,可能还是考虑到交叉的部分比较多。比较经典的书我看过得应算是《Discrete Mathematical Structures》了,清华大学出版社有个影印版的。
[4]续谈其他的一些计算数学
组合数学我看的第一本好像是北大捐给我们学院的,一本外版书。感觉没有太适合的国产书。还是读Graham和Knuth等人合著的经典"具体数学"吧,西安电子科技大学出版社有翻译版。
《组合数学》,《空间解析几何》还有那本《拓扑学》,看这三本书的时候是极其费事的,原因有几点,首先是这三本书无一例外,都是用繁体字写的,第二就是书真得实在是太脏了,我在图书馆的座位上看,同学们都离我做得很远。我十分不自然,不愿意影响同学,但是学校不让向外借这种书(呵呵,说起这是也挺有意思,别人都不看这种书,只有我在看,老师就特别的关注我,后来我和他讲了这些书的价值,他居然把他们当作是震馆之宝,老师都不许借,不过后来他们看我真得很喜欢看,就把书借给了我,当然用的是馆长的名义借出去的。)不过收获是非常大的,再后来学习计算机理论时里面的很多东西都是常会用到的。当然如果你没看过这些书绝对理解不到那个层次。拿拓扑学来说,我们学校似乎是美开设这门课程,但是这门课程的重要性是显而易见的,没有想到的是在那本书的很多页中都夹着一些读书笔记,而那个笔记的作者及有些造诣,有些想法可以用到现代网络设计当中。
抽象代数,国内经典为莫宗坚先生的《代数学》。此书听说是北大数学系教材,深得好评。然而对本科生来说,此书未免太深。可以先学习一些其它的教材,然后再回头来看"代数学"。国际上的经典可就多了,GTM系列里就有一大堆。推荐一本谈不上经典,但却最简单的,最容易学的:http://www.math.miami.edu/~ec/book/这本"Introduction to Linear and Abstract Algebra"非常通俗易懂,而且把抽象代数和线性代数结合起来,对初学者来说非常理想,我校比较牛的同学都有收藏。
数论方面,国内有经典而且以困难著称摹冻醯仁邸?(潘氏兄弟著,北大版)。再追溯一点,还有更加经典(可以算世界级)并且更加困难的"数论导引"(华罗庚先生的名著,科学版,九章书店重印,繁体的看起来可能比较困难)。把基础的几章搞定一个大概,对本科生来讲足够了。但这只是初等数论。本科毕业后要学计算数论,你必须看英文的书,如Bach的"Introduction to Algorithmic Number Theory"。
计算机科学理论的根本,在于算法。现在很多系里给本科生开设算法设计与分析,确实非常正确。环顾西方世界,大约没有一个三流以上计算机系不把算法作为必修的。算法教材目前公认以Corman等著的《Introduction to Algorithms》为最优。对入门而言,这一本已经足够,不需要再参考其它书。 深一点的就是大家作为常识都知道的TAOCP了。即是《The Art of Computer Programming》3册内容全世界都能看下来的本身就不多,Gates曾经说过"若是你能把这书上面的东西都看懂,请把你的简历发给我一份"我的学长司徒彦南兄就曾千里迢迢从美国托人买这书回来,别的先不说,可见这书的在我们计算机科学与技术系中的分量。
再说说形式语言与自动机。我看过北邮的教材,应该说写的还清楚。有一本通俗易懂的好书,MIT的sipser的 《introduction to theory of computation》。但是,有一点要强调:形式语言和自动机的作用主要在作为计算模型,而不是用来做编译。事实上,编译前端已经是死领域,没有任何 open problems,北科大的班晓娟博士也曾经说过,编译的技术已相当成熟。如果为了这个,我们完全没必要去学形式语言--用用yacc什么的就完了。北邮的那本在国内还算比较好,但是在深度上,在跟可计算性的联系上都有较大的局限,现代感也不足。所以建议有兴趣的同学去读英文书,不过国内似乎没引进这方面的教材。可以去互动出版网上看一看。入门以后,把形式语言与自动机中定义的模型,和数理逻辑中用递归函数定义的模型比较一番,可以说非常有趣。现在才知道,什么叫"宫室之美,百官之富"!
计算机科学和数学的关系有点奇怪。二三十年以前,计算机科学基本上还是数学的一个分支。而现在,计算机科学拥有广泛的研究领域和众多的研究人员,在很多方面反过来推动数学发展,从某种意义上可以说是孩子长得比妈妈还高了。但不管怎么样,这个孩子身上始终流着母亲的血液。这血液是the mathematical underpinning of computer science(计算机科学的数学基础),也就是理论计算机科学。原来在东方大学城图书馆中曾经看过一本七十年代的译本(书皮都没了,可我就爱关注这种书),大概就叫《计算机数学》。那本书若是放在当时来讲决是一本好书,但现在看来,涵盖的范围还算广,深度则差了许多,不过推荐大一的学生倒可以看一看,至少可以使你的计算数学入入门,也就是说至少可以搞清数学到底在计算机科学什么地方使用。
最常和理论计算机科学放在一起的一个词是什么?答:离散数学。这两者的关系是如此密切,以至于它们在不少场合下成为同义词。(这一点在前面的那本书中也有体现)传统上,数学是以分析为中心的。数学系的同学要学习三四个学期的数学分析,然后是复变函数,实变函数,泛函数等等。实变和泛函被很多人认为是现代数学的入门。在物理,化学,工程上应用的,也以分析为主。
随着计算机科学的出现,一些以前不太受到重视的数学分支突然重要起来。人们发现,这些分支处理的数学对象与传统的分析有明显的区别:分析研究的问题解决方案是连续的,因而微分,积分成为基本的运算;而这些分支研究的对象是离散的,因而很少有机会进行此类的计算。人们从而称这些分支为"离散数学"。"离散数学"的名字越来越响亮,最后导致以分析为中心的传统数学分支被相对称为"连续数学"。
离散数学经过几十年发展,基本上稳定下来。一般认为,离散数学包含以下学科:
1) 集合论,数理逻辑与元数学。这是整个数学的基础,也是计算机科学的基础。
2) 图论,算法图论;组合数学,组合算法。计算机科学,尤其是理论计算机科学的核心是算法,而大量的算法建立在图和组合的基础上。
3) 抽象代数。代数是无所不在的,本来在数学中就非常重要。在计算机科学中,人们惊讶地发现代数竟然有如此之多的应用。
但是,理论计算机科学仅仅就是在数学的上面加上"离散"的帽子这么简单吗?一直到大约十几年前,终于有一位大师告诉我们:不是。D.E.Knuth(他有多伟大,我想不用我再说了)在Stanford开设了一门全新的课程Concrete Mathematics。 Concrete这个词在这里有两层含义:
首先:对abstract而言。Knuth认为,传统数学研究的对象过于抽象,导致对具体的问题关心不够。他抱怨说,在研究中他需要的数学往往并不存在,所以他只能自己去创造一些数学。为了直接面向应用的需要,他要提倡"具体"的数学。在这里我做一点简单的解释。例如在集合论中,数学家关心的都是最根本的问题--公理系统的各种性质之类。而一些具体集合的性质,各种常见集合,关系,映射都是什么样的,数学家觉得并不重要。然而,在计算机科学中应用的,恰恰就是这些具体的东西。Knuth能够首先看到这一点,不愧为当世计算机第一人。其次, Concrete是Continuous(连续)加上discrete(离散)。不管连续数学还是离散数学,只要是能与我们研究的内容挂上钩的都是有用的数学!
2、理论与实际的结合--计算机科学技术研究的范畴与学习方法 前面主要是从数学角度来看的。从计算机角度来看,理论计算机科学目前主要的研究领域包括:可计算性理论,算法设计与复杂性分析,密码学与信息安全,分布式计算理论,并行计算理论,网络理论,生物信息计算,计算几何学,程序语言理论等等。这些领域互相交叉,而且新的课题在不断提出,所以很难理出一个头绪来。想搞搞这方面的工作,推荐看中国计算机学会的一系列书籍,至少代表了我国的权威。下面随便举一些例子。
由于应用需求的推动,密码学现在成为研究的热点。密码学建立在数论(尤其是计算数论),代数,信息论,概率论和随机过程的基础上,有时也用到图论和组合学等。很多人以为密码学就是加密解密,而加密就是用一个函数把数据打乱。这样的理解太浅显了。
现代密码学至少包含以下层次的内容:
第一,密码学的基础。例如,分解一个大数真的很困难吗?能否有一般的工具证明协议正确?
第二,密码学的基本课题。例如,比以前更好的单向函数,签名协议等。
第三,密码学的高级问题。例如,零知识证明的长度,秘密分享的方法。
第四,密码学的新应用。例如,数字现金,叛徒追踪等。
密码学方面值得推荐的有一本《应用密码学》还有就是平时多看看年会的论文集,感觉这种材料实用性比较强,会提高很快。
在分布式系统中,也有很多重要的理论问题。例如,进程之间的同步,互斥协议。一个经典的结果是:在通信信道不可靠时,没有确定型算法能实现进程间协同。所以,改进TCP三次握手几乎没有意义。例如时序问题。常用的一种序是因果序,但因果序直到不久前才有一个理论上的结果....例如,死锁没有实用的方法能完美地对付。例如,......操作系统研究过就自己去举吧!
如果计算机只有理论,那么它不过是数学的一个分支,而不成为一门独立的科学。事实上,在理论之外,计算机科学还有更广阔的天空。
我一直认为,4年根本不够学习计算机的基础知识,因为面太宽了,要是真学的话,我想至少8年的学习能使你具有一定的科学素养......
这方面我想先说说我们系在各校普遍开设的《计算机基础》。在高等学校开设《计算机基础课程》是我国高教司明文规定的各专业必修课程要求。主要内容是使学生初步掌握计算机的发展历史,学会简单的使用操作系统,文字处理,表格处理功能和初步的网络应用功能。但是在计算机科学系教授此门课程的目标决不能与此一致。在计算机系课程中目标应是:让学生较为全面的了解计算机学科的发展,清晰的把握计算机学科研究的方向,发展的前沿即每一个课程在整个学科体系中所处的地位。搞清各学科的学习目的,学习内容,应用领域。使学生在学科学习初期就对整个学科有一个整体的认识,以做到在今后的学习中清楚要学什么,怎么学。计算机基本应用技能的位置应当放在第二位或更靠后,因为这一点对于本系的学生应当有这个摸索能力。这一点很重要。推荐给大家一本书:机械工业出版社的《计算机文化》(New Perspective of Computer Science),看了这本书我才深刻的体会到自己还是个计算机科学初学者,才比较透彻的了解了什么是计算机科学。科学出版社的《计算科学导论》(赵致琢先生的著作)可以说是在高校计算机教育改革上作了很多的尝试,也是这方面我受益很大的一本书。
一个一流计算机系的优秀学生决不该仅仅是一个编程高手,但他一定首先是一个编程高手。我上大学的时候,第一门专业课是C语言程序设计,念计算机的人从某种角度讲相当一部分人是靠写程序吃饭的。在我们北京工业大学实验学院计算机系里一直有这样的争论(时至今日CSDN上也有),关于第一程序设计语言该用哪一种。我个人认为,用哪种语言属于末节,关键在养成良好的编程习惯。当年老师对我们说,打好基础后学一门新语言只要一个星期。现在我觉得根本不用一个星期,前提是先把基础打好。不要再犹豫了,学了再说,等你抉择好了,别人已经会了几门语言了。
[1]专谈计算机系统的学习
汇编语言和微机原理是两门特烦人的课。你的数学/理论基础再好,也占不到什么便宜。这两门课之间的次序也好比先有鸡还是先有蛋,无论你先学哪门,都会牵扯另一门课里的东西。所以,只能静下来慢慢琢磨。这就是典型的工程课,不需要太多的聪明和顿悟,却需要水滴石穿的渐悟。有关这两门课的书,计算机书店里不难找到。弄几本最新的,对照着看吧。组成原理推荐《计算机组成与结构》清华大学王爱英教授写的。汇编语言大家拿8086/8088入个门,之后一定要学80x86汇编语言。实用价值大,不落后,结构又好,写写高效病毒,高级语言里嵌一点汇编,进行底层开发,总也离不开他,推荐清华大学沈美明的《IBM-PC汇编语言程序设计》。有些人说不想了解计算机体系结构,也不想制造计算机,所以诸如计算机原理,汇编语言,接口之类的课觉得没必要学,这样合理吗?显然不合理,这些东西迟早得掌握,肯定得接触,而且,这是计算机专业与其他专业学生相比的少有的几项优势。做项目的时候,了解这些是非常重要的,不可能说,仅仅为了技术而技术,只懂技术的人最多做一个编码工人,而永远不可能全面地了解整个系统的设计,而编码工人是越老越不值钱。关于组成原理还有个讲授的问题,在我学这门课程时老师讲授时把CPU工作原理誉微程序设计这一块略掉了,理由是我们国家搞CPU技术不如别的国家,搞了这么长时间好不容易出了个龙芯比Intel的还差个十万八千里,所以建议我们不要学了。我看这在各校也未见得不是个问题吧!若真是如他所说,那中国的计算机科学哪个方向都可以停了,软硬件,应用,有几项搞得过美国,搞不过别人就不搞了,那我们坐在这里干什么?教学的观念需要转变的。我们学校现在有一个学弟就专攻CPU设计,平时交流不少,发现他能够将软件的设计思想应用到芯片设计上,我看真的是不错的,比起那些望而生畏的恐怕要强上百倍。
模拟电路这个学科,如今不仅计算机系学生搞不定,电子系学生也多半害怕。如果你真想软硬件通吃,那么建议你先看看邱关源的"电路原理",也许此后再看模拟电路底气会足些。教材:康华光的"电子技术基础"(高等教育出版社)还是不错的(我校电子系在用)。有兴趣也可以参考童诗白的书。
数字电路比模拟电路要好懂得多。推荐大家看一看北京工业大学刘英娴教授写的《数字逻辑》。业绩人士都说这本书很有参考价值(机械工业出版社的)。原因很明了,实用价值高,能听听她讲授的课程更是有一种"享受科学"的感觉。清华大学阎石的书也算一本好教材,遗憾的一点是集成电路讲少了些。真有兴趣,看一看大规模数字系统设计吧(北航那本用的还比较多)。
计算机系统结构该怎么教,国际上还在争论。国内能找到的较好教材为Stallings的《Computer Organization and Architecture:Designing for Performance》(清华影印本)。国际上最流行的则是《Computer architecture: aquantitative approach》, by Patterson & Hennessy。
[2]一些其他的专业课程
操作系统可以随便选用《操作系统的内核设计与实现》和《现代操作系统》两书之一。这两部都可以算经典,唯一缺点就是理论上不够严格。不过这领域属于 Hardcore System,所以在理论上马虎一点也情有可原。想看理论方面的就推荐清华大学出版社《操作系统》吧,高教司司长张尧学写的,我们教材用的是那本。可以说理论涉及的比较全,在有就是他的实验指导书,操作系统这门学科同程序设计一样,不自己试着做些什么恐怕很难搞通。另外推荐一本《Windows操作系统原理》机械工业出版社的,这本书是我国操作系统专家在微软零距离考察半年,写作历时一年多写成的,教操作系统的顶级教授除了清华大学的张尧学(现高教司司长)很多专家都参加了。Bill Gates亲自写序。里面不但结合windows2000,xp详述操作系统的内核,而且后面讲了一些windows编程基础,有外版书的味道,而且上面一些内容可以说在国内外只有那本书才有对windows内核细致入微的介绍。
如果先把形式语言学好了,则编译原理中的前端我看只要学四个算法:最容易实现的递归下降;最好的自顶向下算法LL(k);最好的自底向上算法LR(k);LR(1)的简化SLR(也许还有另一简化LALR)。后端完全属于工程性质,自然又是another story。 推荐教材:Kenneth C.Louden写的《Compiler Construction Principles and Practice》即是《编译原理及实践》(机械工业出版社的译本)
学数据库要提醒大家的是,会用VFP,VB, Power builder不等于懂数据库。(这世界上自以为懂数据库的人太多了!)数据库设计既是科学又是艺术,数据库实现则是典型的工程。所以从某种意义上讲,数据库是最典型的一门计算机课程--理工结合,互相渗透。另外推荐大家学完软件工程学后再翻过来看看数据库技术,又会是一番新感觉。至少对一些基本概念与描述方法会有很深的体会,比如说数据字典,E-R图之类的。推荐教材:Abraham Silberschatz等著的 "Database System Concepts".作为知识的完整性,还推荐大家看一看机械工业出版社的《数据仓库》译本。
计算机网络的标准教材还是来自Tanenbaum的《Computer Networks》(清华大学有译本)。还有就是推荐谢希仁的《计算机网络教程》(人民邮电出版社)问题讲得比较清楚,参考文献也比较权威。不过,网络也属于Hardcore System,所以光看书是不够的。建议多读RFC,http://www.ietf.org/rfc.html里可以按编号下载RFC文档。从IP的读起。等到能掌握10种左右常用协议,就没有几个人敢小看你了。再做的工作我看放在网络设计上就比较好了。
数据结构的重要性就不言而喻了,学完数据结构你会对你的编程思想进行一番革命性的洗礼,会对如何建立一个合理高效的算法有一个清楚的认识。对于算法的建立我想大家应当注意以下几点:
当遇到一个算法问题时,首先要知道自己以前有没有处理过这种问题.如果见过,那么你一般会顺利地做出来;如果没见过,那么考虑以下问题:
1. 问题是否是建立在某种已知的熟悉的数据结构(例如,二叉树)上?如果不是,则要自己设计数据结构。
2. 问题所要求编写的算法属于以下哪种类型?(建立数据结构,修改数据结构,遍历,查找,排序...)
3. 分析问题所要求编写的算法的数学性质.是否具备递归特征?(对于递归程序设计,只要设计出合理的参数表以及递归结束的条件,则基本上大功告成.)
4. 继续分析问题的数学本质.根据你以前的编程经验,设想一种可能是可行的解决办法,并证明这种解决办法的正确性.如果题目对算法有时空方面的要求,证明你的设想满足其要求.一般的,时间效率和空间效率难以兼得.有时必须通过建立辅助存储的方法来节省时间.
5. 通过一段时间的分析,你对解决这个问题已经有了自己的一些思路.或者说,你已经可以用自然语言把你的算法简单描述出来.继续验证其正确性,努力发现其中的错误并找出解决办法.在必要的时候(发现了无法解决的矛盾),推翻自己的思路,从头开始构思.
6. 确认你的思路可行以后,开始编写程序.在编写代码的过程中,尽可能把各种问题考虑得详细,周密.程序应该具有良好的结构,并且在关键的地方配有注释.
7. 举一个例子,然后在纸上用笔执行你的程序,进一步验证其正确性.当遇到与你的设想不符的情况时,分析问题产生的原因是编程方面的问题还是算法思想本身有问题.
8. 如果程序通过了上述正确性验证,那么在将其进一步优化或简化。
9. 撰写思路分析,注释.
对于具体的算法思路,只能靠你自己通过自己的知识和经验来加以获得,没有什么特定的规律(否则程序员全部可以下岗了,用机器自动生成代码就可以了).要有丰富的想象力,就是说当一条路走不通时,不要钻牛角尖,要敢于推翻自己的想法.我也只不过是初学者,说出上面的一些经验,仅供大家参考和讨论。
关于人工智能,我觉得的也是非常值得大家仔细研究的,虽然不能算是刚刚兴起的学科了,但是绝对是非常有发展前途的一门学科。我国人工智能创始人之一,北京科技大学涂序彦教授(这老先生是我的导师李小坚博士的导师)对人工智能这样定义:人工智能是模仿、延伸和扩展人与自然的智能的技术科学。在美国人工智能官方教育网站上对人工智能作了如下定义:Artificial Intelligence, or AI for short, is a combination of computer science, physiology, and philosophy. AI is a broad topic, consisting of different fields, from machine vision to expert systems. The element that the fields of AI have in common is the creation of machines that can "think".
这门学科研究的问题大概说有:
(1)符号主义: 符号计算与程序设计基础,知识表达方法 :知识与思维,产生式规则,语意网络,一阶谓词逻辑问题求解方法:搜索策略,启发式搜寻,搜寻算法,问题规约方法,谓词演算:归结原理,归结过程专家系统:建立专家系统的方法及工具
(2)联接主义(神经网络学派):1988年美国权威机构指出:数据库,网络发展呈直线上升,神经网络可能是解决人工智能的唯一途径。关于神经网络学派,现在很多还是在发展阶段。
我想对于人工智能的学习,大家一定不要像学数学似的及一些现成的结论,要学会分析问题,最好能利用程序设计实现,这里推荐给大家ACM最佳博士论文奖获得者涂晓媛博士的著作《人工鱼-计算机动画的人工生命方法》(清华大学出版社)。搞人工生命的同学不会不知道国际知名的涂氏父女吧。关于人工智能的书当然首选《Artificial Intelligence A New Synthesis》Nils J.Nilsson.鼻祖嘛!
关于网络安全我也想在这里说两句,随着计算机技术的发展,整个社会的信息化水平突飞猛进,计算机网络技术日新月异,网络成了当即社会各个工作领域不可缺少的组成部分,只要有网络存在,网络安全问题就是一个必须解决好的问题,学习网络安全不是简简单单的收集一些黑客工具黑一黑别人的网站,而是要学习他的数学原理,实现原理,搞清底层工作机制,这样才能解决大部分的现有问题和新出现的安全问题。总的来说信息安全学的研究还是非常深奥的,这方面体会比较深的要算是在最近的微软杯程序设计大赛中利用.NET平台开发的那个项目My E-business Fairy.NET过程中了。
[3]闲聊软件工程
关于计算机科学的一些边缘科学我想谈一谈软件工程技术,对于一个企业,推出软件是不是就是几个程序员坐在一起,你写一段程序,我写一段程序呢?显然不是。软件工程是典型的计算机科学和数学,管理科学,心理学,社会学等学科的综合。它使我们这些搞理论和技术的人进入了一个社会。你所要考虑的不仅仅是程序的优劣,更应该考虑程序与软件的区别,软件与软件产品的区别,软件软件产品的市场前景,如何去更好的与人交流。这方面我还在学习阶段,以后这方面再写文章吧,先推荐给大家几本书:畅销20年不衰的《人月神话》(清华大学中文版,中国电力出版社影印版),《软件工程-实践者研究的方法》(机械工业出版社译本),《人件》(据说每一位微软公司的部门经理都读过这本书,推荐老总们和想当老总的同学都看看,了解一下什么是软件企业中的人)以及微软公司的《软件开发的科学与艺术》和《软件企业的管理与文化》(研究软件企业的制胜之道当然要研究微软的成功经验了!) 看完上面的书,结合自己做的一些团队项目,我的一些比较深的体会有这么几点:
1.How important a plan is for a project development.
2.How to communicate with your team members in a more effective way.
3.How to solve unexpected situations.
4.The importance of unification.
5.The importance of doing what you should do.
6.The importance of designing before programming.
7.The importance of management.
8.The importance of thinking what your teammates think.
在软件开发过程中我们应当具有以下能力:
1.Like it if you would like to do it.
We believe that your attitude toward your work will definitely makes great effect on the project.
2.The spirit of group working.
Take myself as an example. I am just a part of the team, just a little part. You must make it clear that you are just a member of the team, but your effort will change your project a lot.
3.Passion
With passion, you can do your job in a more effective way.
4.The ability of solving unexpected problems.
5.Learning New things in a very short time
It is the basic requirement for we computer major to learn new technology.
6.Creativity
The tools are changing. As for us, what's more important is to use these new tools and technology to enable people and businesses throughout the world to realize their full potential.
7.The ability to do your work independently.
Every member has his own business. In a team, your work cannot be replaced by others' so you must do your business well in order to assure the project development process.
团队开发当中的一些具体精神应当有:
<1> Success and Failure is not one person's effect.
Your team's success is not the contribution of a single person. Success contributes to the whole team. If your project failed, it also is not just because of one person's poor work. It is also your failure.
<2> Learn from each other.
Every person has his own specialty. Even Bill Gates cannot know all the things about software development. We often learn from each other and gains a lot. The old saying goes like this:
There must be one out of three who can be your teacher. In our team we say: Every person is your teacher.
<3> Help those who have problems. Use the group working spirit to overcome all the difficulties.
There is no need to explain it. As the old saying: Two heads are better than one. We always find it difficult to solve all the problems just by oneself.
<4> Praise them who have got some improvement.
In our team, I always praise the members when they have finished something or just solved one problem, and they think that it is interesting and gains a lot. Because they can see their efforts.
<5> Say something if needed.
这个是一次软件大赛当中的体会,和大家也做个交流,不过不能再说了,软件工程学说起来写本2000页的书一点也不多,恕我才疏学浅,不再做过多论述了。
[4]谈谈学习态度的问题
关于计算机技术的学习我想是这样的:学校开设的任何一门科学都有其滞后性,不要总认为自己掌握的某门技术就已经是天下无敌手了,虽然现在Java, VB,C,C++用的都很多,怎能保证没有被淘汰的一天,我想.NET平台的诞生和X#语言的初见端倪完全可以说明问题。换言之,在我们掌握一门新技术的同时就又有更新的技术产生,身为当代的大学生应当有紧跟科学发展的素质。举个例子,就像有些同学总说,我做网页设计就喜欢直接写html,不愿意用什么 Frontpage,Dreamweaver。能用语言写网页固然很好,但有高效的手段你为什么不使呢?仅仅是为了显示自己的水平高,unique? 我看真正水平高的是能够以最快的速度接受新事物的人。高级程序设计语言的发展日新月异,今后的程序设计就像人们在说话一样,我想大家从xml中应是有所体会了。难道我们真就写个什么都要用汇编,以显示自己的水平高,真是这样倒不如直接用机器语言写算了。反过来说,想要以最快的速度接受并利用新技术关键还是在于你对计算机科学地把握程度。
计算机技术牵扯的内容更为广泛些,一项一项说恐怕没个一年半载也说不清。我只想提醒大家的还是那句话,技术与科学是不能分家的,学好了科学同时搞技术,这才是上上策。犹如英语,原先人们与老外交流必须要个翻译,现在满马路的人都会说英语。就连21世纪英语演讲比赛的冠军都轮不到英语系的学生了。计算机也是一样的,我们必须面对的一个现实就是:计算机真就只是一个工具,如果不具备其它方面的素养,计算机系的学生虽然不能说找不到工作,不过总有一天当其他专业性人才掌握了计算机技术后将比我们出色许多。原因就在于计算机解决的大都是实际问题,实际问题的知识却是我们少有的。单一的计算机技术没有立足之地。
我想是时候指出:学习每一个课程之前,都要先搞清这一课程的学习目的。这一学科的应用领域。据我自身所了解到的同龄同学和低年级的同学的学习状况:他们之中很少有人知道学一个学科的学习目的,期末考试结束了也不知道学这科做什么用。这就失去了读计算机科学的意义。当然这与现存的教育思想不能说一点关系都没有。
总的来说,从教育角度来讲,国内高校的课程安排不是很合理,强调理论,又不愿意在理论上深入教育,无力接受新技术,想避开新技术又无法避得一干二净。我觉得关键问题就是国内的高校难于突破现状,条条框框限制着怎么求发展。我们虽然认识得到国外教育的优越性,但为什么迟迟不能采取行动?哪怕是去粗取精的取那么一点点。我们需要改变。从我们自身角度来讲,多数人4年下来既没有学习计算机科学的学术水平,也没有学习计算机技术的那种韧劲。在我刚上大一时,我的计算机科学入门导师,淮北煤炭师范学院王爱平教授曾经对我说过这样一番话:"当你选择了计算机这一门科学,就意味着你踏上了一条不归路,就意味着你一生都要为之奋斗……你的身后是悬崖,只有向前走,不能往后退。"
有些同学说按照这样学习学的东西太多,有的未见得有用,我想打个形象的比方:学校学出来的人都是一个球体,方方面面的知识都应具备。可是社会上需要球体的地方很少,反而需要的是砖和瓦,即精通某一行的人才。但是对于同等体积的物体,用球体来改造是最方便最省事的。学校的学生很多,为了能够使更多的学生来适应这个社会,学校也就不得以把所有的学生都打造成一个球体,然后让社会对这些学生进行再加工,成为真正能够有用的人才。即使你非常清楚自己的将来要干什么,并且非常下定决心要走自己的路,这一步你也必须走,世界是在不断变化的,你不能预料未来。想清楚,努力去干吧!
必须结束这篇"胡侃" 了,再侃下去非我力所能及。其实计算机还有很多基础课都值得一侃。怎奈我造诣有限,不敢再让内行耻笑。计算机科学博大精深,我只是个初学者。最后声明:这些只针对本科阶段的学习。即使把这些全弄通了,前面的路还长,计算机科学需要我们为之奋斗......学习计算机科学需要韧性,更需要创新,需要激情。深刻学习理论知识,勇于接受新技术的挑战,这才是我们这一代人应具有的素质。最后送大家一句话"Wake up every day with a feeling of passion for the difference technology will make in people's life!"。
在我大一时无意中找到了南京大学网友sir的帖子"胡侃(理论)计算机学习",这个帖子对我的大学学习起了至关重要的作用,后来也同他进行了一些交流,写这份材料时也引用了其中的不少观点,并得到了sir的支持。再有就是每次和本系司徒彦南兄的交谈,都能从中学到很多东西,在这份材料中也有很多体现。这份材料是我原来在实验学院进行新生入学教育的讲稿之一,原有基础上改进了其中我认为不太合适的理论,修正了一些观点,在推荐教材方面结合我的学习情况有了较大改变。值得一提的是增加了一些计算机理论的内容,计算机技术的内容结合我国的教学情况和我们学习的实际情况进行了重写。这里所作的工作也只是将各位学长和同学们的学习体会以及我在学习计算机科学时的所思所想汇总在一起写了下来,很不成熟。目的就是希望能够给一些刚入学或者是学习计算机科学还没有入门的同学以一些建议。不期能够起到多大的作用,但求能为同学们的学习计算机科学与技术带来微薄的帮助。还是那句话,计算机科学博大精深,我只是个初学者,不当之处希望大家批评指正。
点击进入作者的更多文章
- 作者: cznao 2004年02月24日,星期二 22:32:18 回复(0) | 引用(0 )
致研究者的一封信
致研究者的一封信
Duane A. Bailey
通过一点有条理的组织,研究工作可以变得更令人愉快,更富有成效。不幸的是,对很多计算机科学家而言,研究技巧的获得是通过经验,而不是通过正式训练。本文概述了一些如何组织研究工作的建议。大多数建议对本科生也是有用的。斜体表示是针对研究生,职业研究者和教师的。希望本文能有所帮助。
关于我的建议
成功的计算机科学研究牵涉到很多方面的协调。为了使你花在研究上的时间尽可能的有成效,有趣味,我收集了一些你可能会发现有用的“组织方面的提示”。花一些时间来阅读这些提示。一些提示是极为显然的(另一些则是很困难的!!),但是都有改进你的研究事业的潜力。
阅读是基础
发现并且阅读相关的著作是好的研究的基础。如果在你的研究领域,你是一位新手,可能你只熟悉教科书上的内容。你可以从 ACM Guide to Computing Literature[3] 和 Computing Reviews[2] 这两个重要的发现相关参考书目的资源入手。当你开始研究你的题目时,是从一个较短的基础读物的书目开始的。作为一个研究者,你必须发展这一相关著作的书目,并且不断找到新的阅读材料。你将会发现其他人错过的有用的参考书目。
持续不断的阅读。虽然背景知识的阅读是任何研究工作的最初任务,但是重要的参考文献经常较后才出现,尤其是如果研究的重心改变了的话。你务必识别出那些对你的研究领域有重要作用的资料,并且你阅读期刊的速度能跟上期刊发行的速度。一个月只需花两三个小时就能浏览一遍最新的论文。(虽然对会议录的审阅不象对期刊那样严格,但是会议录在快速发表研究结果方面起着重要的作用。)因为计算机科学研究更新速度很快,所以及时阅读最近的技术文献是至关重要的。
仔细的阅读一些文章。粗略的浏览能识别出与你当前的研究有关的材料。当发现一篇论文对你的研究有所帮助时,更加详细的考虑这篇论文是很重要的。阅读论文时,需要考虑以下三方面:
这一研究对你的工作有什么贡献?
这一贡献和你以前遇到的文献是怎样的关系?
在这篇论文中,作者引用了那些重要的参考文献?
这些问题看起来似乎是显然的、基本的,但是没有理由不问这些问题。
对每一篇你认为和你的研究工作相关的文章做摘要。摘要有助于向别人快速的介绍工作。如果你将来不得不再阅读这些文章,以前写的摘要就提供了一种“自助”机制。在研究工作中,做摘要(对你的或者他人的文章)是一项通常的任务;言简意赅的写摘要是一门艺术。
阅读完一篇写得很好的文章后,考虑它表达的方式。它可能组织得很好,或者可能用了缜密考虑过的例子来强调重要的概念。
什么使得这篇文章容易阅读?
文章提供了什么样的详细程度?
使用什么例子来论证了重要的概念?
哪些问题未被回答?
结论可以推广吗?
因为我们是通过实例学习的,所以标记那些写得特别好的文章是很重要的。
不幸的是,技术文献经常写得比较晦涩。有时,和你的指导老师或者对此也感兴趣的同事一起阅读一篇文章会是颇有裨益的。这样,进展速度可能会较慢,但最终一篇写得好的文章的潜力会被实现,你对文章的理解也会增进。
在较大的系,非正式的研讨班或“期刊俱乐部”提供了一个理由,让研究者们每周集会,讨论论文。要集中于一个主题(如这学期的内存回收),但是当一个共同的兴趣发展起来时,也允许偏题。在拥挤的日程表中,这些非正式的每周会议为那些否则可能会被扔在一边的研究工作保留了时间。
写作是根本
好的写作是科学研究的唯一持久的方法。当口头报告已被人遗忘,程序已被清除,很久以后,写下的文章仍然保留有重要的概念。所以,你应该尽可能早的开始写下你的研究结果。虽然实验是重要的,但如果没有仔细记录下来的话,所有的努力都是白费。
仔细的写作。当你不知如何下笔时,请使用简单的写作风格。如果你是个生手,或者不常写作,那么你关心的是磨砺你的写作技巧。如果你够幸运,你阅读的文章里就会有在你这一领域成功的写作的范例。通常说来,有效的文章只需要一遍的阅读就能传达重要的论点。这些文章还会讨论有趣的例子。当以数学公式或者代码的方式直接给出技术细节时,它们都不能代替英语的说明。以能够既正确又简明的传达信息的文风来写作是比较困难的。当你对你使用的文风不确信的时候,重新阅读一篇你喜欢的文章,同时注意把它的文风特性结合进你的写作。
保持写日志。在日志中,写下参考书目,提出疑问,描述问题和它们的解决方案。保持记录实验和实验结果。就象实验室科学家们所知道的那样,日志是组织你的研究工作的一个简单工具,日志也是你所做的进展的宝贵记录。
坚持对相关文献中的结论做摘要。如果你预计你将会正式报告你的研究(始终对此保持乐观!),那么对你的读者而言,把你的工作和其他人的工作比较、定位是有用处的。重新考虑相关研究也能提醒你那些重要的参考文献,并且把你的目标和你的研究领域内其他人的目标有机的结合起来。因为这一摘要文档需要经常被编辑,它应以电子稿的方式存储。(BIBTEX[10]是一个组织参考书目信息的较好的系统,它还提供了和其他人交换参考书目的方便的机制。)
写下一些小的项目。写下的是一两页关于某一主题的正式提出的构思。当构思不允许被表达出来,在脑子里徘徊时,它们就逐渐变得畸形、混乱。这些记述帮助磨砺你的写作能力,组织那些自发的想法。当学生们希望得到研究项目时,这些能迅速被找到的记下的构思就大有用处了
保留一部分时间来好好写作。花在写作上的一小时是考虑问题的一小时,而不是和计算机格斗的一小时。你必须离开那些令人分心的事,集中你的努力,专心记录工作。象规则的练习那样,你必须做它,并且你会慢慢喜欢它。
和其他人一起工作
对很多人来说,成功来自于和其他人一起工作。和他人分享构思,并且让构思在一个组的环境下发展是很重要的。(在小的系里,这可能是成问题的—尤其如果你是在一个孤立的领域内,但合作仍然是重要的。)不管什么时候,只要可能,和你的指导老师或者研究伙伴讨论你的想法。你可能认为你的想法不值一提,但是不管怎样,你应当尝试一下。让谈话继续!大多数研究者都乐于参加富有成效的讨论。
遵循一个规则的会议时间表。如果看起来似乎“没有什么可以讨论”,这本身就是一个重要的讨论主题。不要轻易略过或者取消会议,因为这会成为一个不可逆转的先例。如果你和你的讨论组失去了联系,你应该主动重新建立联系。不太可能他们会主动来找到你,而且共同的兴趣会随着时间而衰减。
会议提供了集中讨论主题的同步点。会议上会产生重要的见解,所以花一些时间来写下这些想法(带上你的日志!)并且复印分发它们。这些非正式的“会议记录”帮助在各次讨论之间维持前后联系,并且记录下做出的决定。改头换面的重复老的内容通常是在浪费时间。
仔细考虑批评。因为别人的评论是科学研究过程中完整不可分的一个组成部分,所以总是有你的研究被批评的时候。不要被批评意见所触怒,而是应该把它作为指导方针,使得你的论点更有效。同样的,当批评别人的工作时,使得你的意见富有建设性是很重要的;那些没有益助的意见就应该被忽视。
报告并不容易
在任何严肃的研究工作中,你都会需要做报告。好的报告需要相当多的准备,所以尽早开始。幻灯片应该是清晰的,没有任何无关紧要的东西(包括代码)。幻灯片中应该包含有能说明问题的例子,但例子的详细程度应该对你的听众适合。幻灯片应该相互关联,共同证明你的贡献。
对你的报告进行排练并且计时。没有准备的报告是极为显而易见的,并且通常会导致原本愿意接受新思想的听众对你的报告发起攻击。仔细组织并且排练你的报告,这样当你面对没有预料到的提问时,就有更好的准备。
项目
计算机科学的研究经常导致一个需要编程的“项目”。务必记住编程不是计算机科学研究。对于大多数计算机科学家而言,编程纯粹只是做实验的方法。象任何实验一样,编程也需要预先仔细计划:
* 建立目标。 知道你的目标,并且毫不分散注意力的接近它。列出一些表明进展的重大事件,并且努力实现它们。如果你不能简练的阐明目标,那么你就应该停止,重新考虑这个项目的动机。
* 考虑简单。 设计你的项目,使得它们能够在合理的时间内被完成。一位熟练的程序员每个月产生的可靠代码几乎不超过一百行。因此,正确编写一个需要上千行代码的项目将花费掉一个熟练程序员两三个学期或者更长的时间。所以,需要修剪实验的大小,使它易于处理。修剪的时间是花得很值得的。大的项目并不必定产生大的结果。
* 建立原型。 原型的建立对大多数的项目是有益的。一个考虑得很好的原型能验证假设,测试摘要的价值,并且引起对于立不住脚的想法的重新考虑。尽管草草做一个“产品”几乎没有什么研究价值,但是通过实现部分功能的原型系统,很多研究问题能够被满意的回答。
* 使用工具。 通过使用一些简单的工具,程序员的效率得到了极大的提高。今天的程序员应该意识到使用工具,例如anim[6],awk[1,4,5],HyperCard[8]和Mathematica[13]。 在窗口环境下,界面生成器能消除界面设计过程中很多让人心烦意乱的琐碎工作。当然,还有很多其他重要的、有用的工具,工具使用的主旨是清晰的:正确选择工具能够减少项目的整体工作量。找到工具,学习工具,并且使用工具。
* 与人合作。 当资源能够被协调时,群组协作经常比孤立的个人的奋斗更有成效。如果你和他人有共同的研究兴趣,那么和他们联系,与他们合作。毫无疑问,有些他们已经解决的问题你正在考虑,他们的解决方案将会影响到你如何达到你们共有的目标。
合作的一个副作用是增加了纪律性。为了减少花在各方面同步上的精力,纪律是很必要的。对程序员来说,现在有各种各样的资源可以用来管理分布的项目。例如,GNU项目发展了一套合适的代码标准,并且程序可以恰当的强制使用通用的编码风格(例如缩进)。当多人共享对同一项目的存取时,就要考虑使用一个版本控制系统(例如SCCS或RCS)。
* 为项目结果写文档。 应该为完成的项目编写文档。至少,项目的技术概述使得别人能够了解到你的研究动机。文档应该描述问题,你的假设,你的方法,和对你的项目结果的诚实的评价。当为软件编写文档时,文档要包括说明性的例子,指南,和任何从该软件的使用中获得的经验。写得好的文档极大的增加了项目的影响。
总结
最理想的是,你在研究工作中的参与,是整个流水线的一部分。你的工作基于他人的工作之上,并且产生一些有用的东西。作为一个变化迅速的领域的参与者,你有责任保持了解情况,设计并且完成合适的实验来测试你的假设,以所有研究成员都可以存取的方式来给出你的结果。这里给出的建议能够帮助你完成这些责任。