20130406

一不留神,这学期已经过了一个多月;而距春节已经两个月了。这段时间又理所当然地发生了很多事情,不过在表面上却是风平浪静。

因为程哥去了瑞士读博士后了,而我们的项目仍在进行;程哥就在一月底把MSRA实习的机会给了我,当然这其中赵老师帮了不少忙,而我是白捡了便宜。自然我也不能光吃干饭,总得得人钱财替人干活吧。不过说实在的,虽然在替微软干活,但是做的事情和Windows的毫无关联;所以到头来也不过是和上学期一样在实验室里面干活。因为项目的进展一直缓慢,结果一拖再拖,原本商定今年一月底可以试投一篇A类论文的,结果现在仍然没有这样的底气说可行。这其中原因多多,但是我们实验室里对GNU/Linux tool chains不熟是一个很重要的原因,按下不表。因为参与项目的人分隔好几个地方,尽管有email+git+bitbucket,但是仍然都有自己的其他事情,所以为了更紧密交流远程会议从每周的一次换成了两次。然而,就在这样的环境之下我越发觉得自己不在状态上了。

  1. 做研究没有很强的导向性。因为项目本身的流程比较复杂,所遇到的问题层出不穷,让人难以摸着头脑。还记得研一的时候搞点课程小项目,遇到点问题在网上搜搜基本上还都能找到答案;但是现在大多数问题只能在mail list里面找答案了。又由于C/C++的编译、链接、装载问题往往和系统库文件/头文件/运行时环境相关,同时又和不同的编译器链相关,而llvm本身的版本之间又不具有很好的兼容性,导致不少问题只会在特定的机器上重现,不少答案只能在自己摸索之后才能找到。因为对工具不熟,往往是这里看到一个方案就凑上去瞧瞧,那里有个情形也去试试;在尝试的过程中又遇到新的问题,最后离原本的问题越来越远。我经常对新奇事物比较感兴趣,在尝试的时候会遇到各种各样新的玩意儿,而且有些搞起来很耗时间并且实际收益不大,这导致我宁可去折腾一些本来非硬性的tool而忽略了项目。缺乏优先级和必要的时间管理荒废了不少。
  2. 没有适度的计划安排。这个问题一直存在,我一直不是一个善于管理时间的人。以前听不少人说GTD,但是一直没有去实践过;而由于项目过程中遇到的种种挫折导致了制定计划异常艰难;加上我最近做的都是些配置上面的工作,和编程都不怎么有关,所以导致的恶果是我的作息时间已经完全乱了。听说过”程序员的作息时间表“,但是不得不说这很无奈;coding的确是苦力活,需要把连续的长时间花在一件事情上,需要动脑筋但是并不算的上是脑力密集型(不过在无脑的状态下干出来的事情肯定是要废了的);工业界的程序员们还要面对各种需求变更、修复bug之类的紧急任务——按计划行事在程序员面前似乎是天方夜谭。但也因此制定计划对我们这些人更为重要。我发现我这些天纯粹是行尸走肉——拖着疲倦的身体起床,吃完早饭去实验室干活,吃中饭,在实验室干活,吃晚饭,在实验室干活,回宿舍睡觉;第二天goto到起点。还码农呢,我TM连码畜都不如!!!直到最近,当我发现我已经安于这种现状很久了,我才觉得问题大得去了。之前没有意识到一件事——作息时间和任务计划是可以分开来的。我需要有一个相对稳定的作息时间表,然而我的任务计划却是需要持续不断地变化的。前者我可以通过Google Calendar的SMS提醒功能来敦促自己,而后者我现在使用org-agenda和git同步功能。剩下的就要看我自己的执行力了。
  3. 心存侥幸。一直在心理有个结:读个硕士够不够?继续读的话是在哪里读?去年学期末曾经问过赵老师,并且也向实验室的博士们咨询过,外校来过不少老师招过人,但是我一直在犹豫。硕士时间太短,压根搞不出什么成果;博士时间太长,好不容易毕业了,都是什么时候了?不过现在我意识到了,我不能再做虎头蛇尾的事情了;于是这些天我一直想着硕博连读的事情(毕竟这可以省去不少麻烦事)。国内的学术氛围就这样,学校/学院/实验室里做研究的气氛也不见得多好;但是看到学院对申请直博并没有多少障碍,一鸟在手胜过双鸟在林。在一个地方待久了就会变得麻木,年龄越大胆子越小;在交大软院待了一年半多,我的确变得没什么激情了。前几天才知道学院的政策导致我留在实验室里继续读下去没希望了,惊醒梦中人哪!其实我也知道,硕博连读不过是权宜之计,毕业那时我就囧了。现在倒好,长痛不如短痛。在心理上我倒是早有准备,不过英语、论文等上面的准备就远远不够了。因为这些天一直在踌躇,一直没有勇气抉择,恶性地导致我对项目的期望不够,也因此有了拖延症。现在我终于明白,想单靠狗屎运是行不通的,实习的机会是天上掉下来的馅饼,已经有了一个不应当有第二个了。程哥说把一篇小论文的一作让给我(因为他们的确不在乎)我坚决不能要;本来嘛这会议paper就是鸡肋一般;而现在的项目并没有取得多大进展,这个真没多大意义——连我都不大愿意投。如果因此解决了小论文的问题,那我倒是真的成了国内学术界无研究的佐证了。而且关键在于我并没有做什么实质的东西,idea全是hucheng和程哥的,而且我这学期以来coding方面的活都没怎么干!现在明白这样终究不是个道理,我得主动一点把这项目进展提提速,要不我真的会吃不了兜着走的!

问题先说到这里。下面再给一些理由说服一下我。

  1. 以前听说丘成桐对刘克峰说过这么一句话:“你要好好学习,要不离开大学就读不了书了”。高校毕竟比工业界总体上里学术更近一些,想搞纯粹一点的玩意儿还是不要指望公司。浪潮之巅里曾说过,在理论上斯坦福的计算机是比不上麻省理工的,因为那里有更多工业界的东西;而依托公司的研究院自然也是有所导向的,前有AT&T和HP的先例,现在又有微软亚研某些部门和腾讯研究院的一些例子(微软的各个研究院总体很不错,至少我看的第一篇计算机科学领域的paper就是MSR的一个系统组的搞的,从之看不出任何和Windows有关的蛛丝马迹)。其实工业界导向并非不好,只是那样的话我估计靠现在的知识结构很难找到完全对口的公司了。扯远了,事实是现在找工作我压根就找不到不闹心的工作(实验室比我们大一界的学长两个进了微软,一个摩根,一个ET,但据我所知近微软的那两个并不特别满意当前的工作);而关键是很多公司连我认为不好的职位都不一定给我!!!
  2. 继续读书,风险不小;年龄问题至少是个问题。在国内读有不少困难,其中一个是交流的人少了——因为国内高校的体制问题(值得一提的是互联网开放问题确实臭名昭著),加上不少人都有类似得过且过的想法,这导致了一个小的恶性循环,所以现在真正研究深入的人少了,不少和solid的成果反而是工业界先有,奇怪也哉。这些学生进入了工业界之后,又有了一个大的恶性循环,结果就是国内学术呵呵呵。国内有不少技术达人的出身并不好,至少可以看出我国高校的精英教育并不一定培养得了什么人才,事实上我就看到些电院计算机系吃干饭的。另一个例子就要数王垠了,对程序语言领域懂的的确不少,但是谈到到计算理论/系统/软件工程上连我这样在CS混的时间不那么长的人都可以看出他在鬼扯了,但是工业界似乎倒是没见到多少人去反驳他的。相反到一个好的环境,资源就丰富多了。一个在网上需要查很长时间或许都没有结果的问题,或许旁边一个熟悉一点的人几分钟就搞定了,而且把原因分析得很透彻。虽说现实大多不是这么神奇,但是集思广益可远比一个人单枪匹马单干强很多。在码农界不是就有个叫结对编程的说法吗?而且这在大神之间似乎很待见的样子!想想从南理工的数学系到上交大的软院,我周围的CS/SE/IT的氛围吧!人脉什么的更不用说了!

前些天又看了一下考研那时候【彪叔播报关毅老师稿件】(20101029,感谢彪叔):

到目前为止,我有过两次懂开小差的念头的经历。一次是考研前一天,一次是出国一个月后。好在每次仅是动动念头,没有真的逃跑。现在回头想想,如果当时真的跑了,我的人生将会完全不同。现在,千斤重担开始落在我的学生身上,产生一点动摇怀疑也情有可原。孩子你只要尽力就好。可以失败,但是不能逃跑。

有种被当头棒喝的感觉。嗯,要开始多想想了:项目上要积极点思考解决办法,同时也要分配出时间给自己。我也用GTD来提高一下效率吧!

 

备忘:

  1. 番茄工作法:http://book.douban.com/subject/5916234/
  2. 用Org-mode实践《奇特的一生》:http://www.mastermindcn.com/2012/02/org_mode_quite_a_life/