您的位置:首页 > 其它

这一年的学习/科研生涯回顾(非纯技术文)

2016-09-16 15:26 239 查看

序言

不知不觉间,大学四年时光悄然而逝。我也已经正式成为了一名研究生,在科研之路上也小小地迈步向前了。但是回过头来去想这一年所做的事,却没有太大的满足感和成就感,心头仍然笼罩着不知所向的阴霾。

因此,我想通过简单地梳理过去的所做所思所感,给今天的自己一点回味,一点启发,也让我记住:从前的光阴,没有白费,更应该珍惜眼前短暂的时光,早出成果。

迟到的开始

我虽然确定保研的时间比较早,在大二下学期完时就没有什么悬念了,但进入科研状态很晚。当别的优秀的同学在大三上时就纷纷联系导师,进实验室看论文搞研究的时候,我仍然重复着课堂——食堂——图书馆——寝室四点一线的生活。

对于此,我一直是耿耿于怀的。如果我早点进入状态,多参加实验项目,那么我的本科时光也许就更加有意义了。然而,后悔和自怨自艾此时已于事无补,从现在起专心科研和论文才是必由之路。

而我真正开始读论文的起点,是从做毕业设计开始的。

毕业设计

我在去年十二月的时候联系了我很敬佩的一个导师,想跟着他做关于网络算法方面的课题,他欣然同意并安排了一个师兄指导我。

当时第一次正经读论文,感觉一遍过去后只是按部就班地将英文翻译成中文而已,根本没法概括文章的精要和价值,更不必提复述给他人听了。因此,这一篇论文我前后反反复复读了大约有十遍,才终于明白作者做了一件什么事,为什么要做这件事,有什么特殊价值,和别人的工作有什么联系又有什么区别,哪里可以改进等等。

但是这篇论文是师兄直接发给我的,而我自己还不知道该如何高效地查找自己需要的文献,因此也多次请教师兄,终于慢慢地进入状态了。通过文献引用目录,谷歌学术关键词等,找到了相关的一些有用的文献资料。

当然,那个时候还有一个很大的问题,我判断一篇文章是否可以读的标准很肤浅,就是看引用和年份。引用数量越多越好,发表年份越新越好。直到后来进入现在指导我的导师的讨论组,才习得不同期刊和会议论文的等级差别。原来我一直不知道我第一篇读的论文是什么等级的,它引用少但是文章新,不好判断。但从会议IEEE INFOCOM来看,既是SCI收录又是CCF A类,基本可以断定是一篇质量较高的论文。

在做毕业设计的过程中,我就将该论文通篇翻译成了汉语,也同步到CSDN博客上了,但是不知道我这种自作主张的做法是否对其他学习者有用,也许只是一种自嗨吧。这个论坛里大部分还应该是技术和项目驱动的。

我是一个从通信跨专业保研到计算机系的学生,深刻地明白自己相较于科班出身的计算机研究生的差距在哪里。编程绝对是最主要的一点,本科只粗略接触C语言,虽然自学了Java和Python但是感觉学得一点都不系统不专业。

编程是必备的技能

在做毕业设计的过程中,需要用到一个针对Linux平台开源的SDN网络仿真软件Mininet,在进行算法嵌入和网络仿真时需要自己编写脚本,而核心的控制器则完全需要编程人员按照Mininet的接口自己去写。我第一次认认真真地以面向对象的方式写Python就是从这里开始,大概花了一星期将头脑中构思的算法转换成了一千多行代码。

这些代码并不都是我自己的产物,其中一部分是源于我读的第一篇论文的算法实现。所以,我大部分的时间只是将别人的工作重现了一遍。在算法方面编写程序,其实还不算复杂,真正复杂的地方在于构思算法的过程。而现在我所处的科研状态,则几乎完全跟算法无关,是纯粹系统级的知识。我深深地感到在系统层面我的编程技能的欠缺,而我的困惑与茫然,多半也源于此。

参与项目

今年三月初的时候,我来到即将读研的高校,参与到课题组的项目中。项目也如同前文所说的那样,不是我熟悉的算法的课题,而是实打实的操作系统内存管理相关。

这可如何是好?虽然大三的确上过一门《微机原理》的课程,但作为对非计算机专业学生开的课来说,那也太表面化了,完全没有驾驭真正的操作系统项目的功效。而我自己,在系统方面的造诣,也几乎等于零。

那时候,我还不懂cache line,page fault机制是什么,心中只是充满了畏惧和抵抗情绪。

而更加让我跟不上课题组思路的是,内存管理项目的中期指标已经基本完成,只剩下文档事务需要处理了。所以,我根本没有机会参与到系统的开发实践中去,而是负责了编写文档的工作。

三篇文档

上一学期我在项目方面的主要成果也就只有文档了。一篇《软件著作权》,一篇《技术报告》,一篇《开发文档》。在写文档的过程中,我也逐渐了解了我们课题组的工作成果、研究点、创新点等。我也感觉到,我不讨厌写文档。如果推测合理,那么我应该也不讨厌写论文,这稍稍令我感到些许安慰。但是写论文的前提是要有发现有成果,巧妇难为无米之炊,我必须找到研究点,攻克一个问题以后才能把我的思路和方案转化成论文。

操作系统,该如何亲近你

话说回来,我在项目上的进展一直都比同课题组的同伴要慢地多。一方面是因为我本身没有参与到项目的开发过程中来,另一方面是理解基于Linux内核的系统代码对我还是一个非常大的挑战。

我的大boss给我们的推荐的阅读书籍是《深入理解计算机操作系统》,整个实验室大课题组都会看的一本书是《深入Linux内核架构》。两本书都算是大部头,当然不可能从前往后一页一页地读过去,只能按照自己的需要翻阅相应的部分。

但是我就算只阅读《内存管理》相关的部分,也有许多地方难以理解和消化,果然还是因为我在某方面欠缺了相应的基础吧。但是我却难以查明自己所欠缺的那部分到底是什么。我常常思考的一个问题是,这些理论的框架和思路,是如何转化成实打实的代码的呢?比如冷热页的判断和换入换出,具体的代码应该长成什么样呢?

算法与系统

不只一位老师跟我这么说过,现在搞研究,做算法就是比做系统的人要快很多。可能你做系统做一年也出不了什么成果,他们做算法的已经发表两篇不错的论文了。

那我应该去做算法,对自己毕业比较有利吗?

老师们还说,无论在学术界还是工业界,对于做系统的研究者,评价都会高一些。同一级别的论文,做系统的人会被更加器重。

我的指导老师对我是有期望的,希望我尽快找到一个鲜明的研究点,无论是结合项目也好,还是结合自身兴趣也好,在这一年中尽早出点成果。但我到底该怎么做呢?做系统本身难度的压力,我自身基础薄弱的压力,同伴比我早发表论文的压力,毕业标准的压力,还有其他许许多多的烦恼,迟早有一天会一同像我袭来的吧。

不过,有一点是可以改善的,尽快补上自己的短板,对系统知识进行全方位的充电。“打不倒我的,必使我强大!”

前辈的话

我和许多师兄师姐都聊过,他们将自己读研读博的感悟心路讲给我听。我真的非常感谢他们。

害怕延迟毕业吗

有一个刚升博三的师兄,在上一学期我跟他聊的时候,他跟我说:延期毕业没有什么可怕的,可怕的是这几年里你没有学到东西。所以我觉得假如我能研究出很好的成果,那么延期毕业一两年又有什么问题呢?

话虽如此,我果然还是想正常地毕业啊,当然也希望产出令自己满意的成果。这应该不是“鱼与熊掌不可兼得”的问题吧。

把精力用在科研上

研究生第一年都是有课程的,我专门针对这件事问了一个今年刚升博四的师兄。他对我讲:课程不用太在意,及格就好,将自己的主要精力放在自己的科研问题上。

我似懂非懂地点点头,毕竟我也是个直博生。考核博士生的标准并不是你的课程成绩多么优秀,而是你的学术成果是否优秀。

但是另外一个师姐说:课业还是尽量学号比较好。国外有很多学术很优秀的同学,他们的成绩也都是很好的,每门课也都认认真真上了的。

同时搞好课业与科研,应该还是有点难吧?研究生阶段,还多了项目任务这一项,因此归结起来我实际上要做的事情是三个:课程任务、项目任务、科研任务,而这已经把社交工作排除在外了。所以我的时间是非常非常紧迫的。依照不同的人能力的不同,这里可能需要trade off(取舍),但根据我个人的性格,我当然是希望每件事都能做得尽善尽美。

要想把事情做得非常非常好,我只有非常非常拼命了。但我好担心,自己努力的状态不能一直持续下去。

读五十篇论文才有发言权

我的指导老师曾批评我读的论文太少,肚子里才没有墨水。这是极其正确的,也是令我感到羞愧的事实。之所以羞愧,是因为我的能力远远达不到老师的期望。她说系统方面的论文,一周至少可以读三到五篇才对,但是我却只能读两篇而已。而且就算只读两篇,也很难完全掌握作者在文中强调的所有要点,重现文章的研究成果更不可能是一周内可以实现的事情了。一次又一次的打击,让我深深地明白自己的软弱,这种软弱不是与谁对比所产生的,而是在我的科研领域上我本身就是软弱。

老师说我至少在读五十篇(定向领域的)论文才能在这一方面有发言权。有发言权的意思是明白这个领域最近在做什么,有哪些人在做,存在的主要问题和解决方案是什么。然而,有发言权,也并不意味着自己就会有崭新的成果。发言权只是最基础的一部分罢了。

毕业是新的篇章

今年六月,我回本科学校完成了毕业的诸多事宜,包括身为班长需要处理的班级毕业材料,班级毕业照,论文上交和答辩等等。

侥幸的优毕

可能是基于本身论文的文字水平和流畅程度而不是实质的创新度打分,我很幸运地获得了校优秀毕业论文这一荣誉。我记得在参加完答辩之后,我去找答辩组的一位老师请教问题,他是一个真正的良师益友。“不要浮躁,不要骄傲,第一年沉下心来读论文,慢慢地你会有自己的想法的。”这是他对我说的话,可是不骄傲我容易做到,浮躁这种情绪却难以克制。

第一年,第一年很重要!我想趁着第一年就能出好的成果呀!

可是以我现在的水平,这又怎么可能做到。难道是把我的毕业论文改一改,拿去投稿么?虽然并非完全中不了,但那已经不是我的研究点了吧,在博士阶段把它投出去又能如何?老师们大概也不会支持的。

我一直强调努力努力,但是到底该朝哪个方向?把操作系统的书籍,博客,代码都好好看看?提高编程技能?还是所有的方向?

仍然迷茫的我

我仍然是迷茫的,我相信今后科研的大部分时光也都将在这样的情绪中度过。感受而不是沉湎于自己的迷茫是好事,这会迫使我自己绞尽脑汁去思考去总结,去破而后立。

现在阅读论文不是那么费劲了,科研选题的迁移也逐渐趋于稳定。从老师一开始建议的分布式计算系统框架设计,到分布式计算和新型内存的结合,到新型内存与数据库系统的结合,到新型内存与logging的结合。

我相信,这个迁移的过程不是迷失,而是寻找到正确的那条路所必须的阵痛。

博士班集结

九月入学,见到了许多和自己一样的直博新生。我们班级总共35人,算上春季入学的3个学生就是38人。今后的科研生涯,我们都将踏上自己艰苦奋斗而又有独特韵味的旅程。我不知道四五年后,我们是否都能毕业,但我希望,毕业以后,我们都能成为独当一面的博士,在自己的领域有所建树,成长为真正的科学家。

路终究还得自己走

我的博士师兄师姐,有些是博三博四还没有成果产出的,有些是早在博一就已经发表论文拿国奖的,还有些是博二博三刚发表论文处于中庸状态的。

但是无论如何,读博都是我们自己选择的路,它是一场赌博,是一场冒险。但是,谁的人生又不需要一点点冒险呢?

我不知道我的研究生生涯是否会顺利,我只希望,自己不变的心态是一直努力。无论是现在,还是三五年后,还是十年后,还是行将老去,我都想用努力去标榜自己无悔的一生。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息