blog荒芜了好久了。不知道自己的整个12月在忙什么,一直都没有时间哪怕是写一定点的东西。现在放假了,回到了温暖的家,终于可以写点东西了。

首先第一要写的,2005年过去了。也要总结一下了。去年的总结不打算再按照去年的样子记流水账了。挑几个值得一表的主题,写一写吧:

读书篇

授课篇

飞行篇

技术篇

人生篇

其它篇

读书篇

2005年的上半年到6月份为止是我的研究生第一学年,这段时间我基本上都在学校里上课修学分。

总体来说,这段时光我的生活过得基本还像个学生。经历过晚上熬夜上网第二天睡到11点起床吃午饭;经历过晚上伙同几个人到门口的小店吃东西;经历过食堂排队;经历过上课睡觉(上课睡觉曾经一度是我认为研究生阶段我在教室里面学会的唯一一项以前不会的技能);经历过期末紧张复习考试;也经历过了迟到旷课。

这半年中唯一还有印象的也就这么几件事:上学期上英语课的时候跟几个同学一起在圣诞Party上表演Jingle Bell,我表演了一颗圣诞树……,下学期英语的中级口语课上表演“皇帝的新衣”,我扮演裸体皇帝,以“表情造作,略显浮夸”的演技折服了全班同学……。其它的,几乎就没有给我留下什么印象。

跟我同宿舍的几个哥们也都跟我非常要好。另外几个人各有特色。袁禄来,这个跟我同为计算机软件点的研究生,给我的感觉是非常学者的类型,自己很勤奋好学。而他的导师也是兢兢业业搞学术的人。有时也会听到他对研究生的抱怨。大概本科不是同济,怀着向往之心来到了这里,结果失望大于希望。高晶晶比我们高一届,是同济土木的研究生,比较严肃不太喜欢说话,但是对事对人非常认真。陆春,跟我一样是本科同济读出来的。以经常不上课考试都能过而著称,对一些事情很是有自己的主见跟看法。至今还经常记得跟他们一起吹牛的日子。还记得研一结束的时候跟他们一起吃散伙饭,然后一起到复旦大学,躺在刚刚盖好的标志性建筑“双子星”前的草坪中抒怀畅谈,在沪东的草坪前大口啃西瓜的洒脱岁月。

至于上课,只记得英语课我逃了几乎三分之二,结果后来分数还够了保博线(当然打死我我也不会保的,祸国殃民害自己)。自然辩证法跟科学社会主义公共课背完了考完了就忘。至于专业课,似乎跟学生比,老师们更想逃课。逃课、放课、找别人帮忙上课是再正常不过的事情,好多课只上了3,4次就草草结束了。教软件工程的老师居然听说过SQA这个名词(别急,当然不会令大家失望,他把Structs念成了“死抓磕它”,还认为这个是一个CASE工具。大学里面看不思进取的计算机系的老师闹笑话也是人生一大乐趣,还有个老师扬言带几个研究生就可以开发一套Windows,还有的老师说java AWT里面有显卡驱动……),但是不知道学校为什么不把SQA(这里的S应该是Student了)体系引进高等教育中。最直接的问题就是导致高等教育的产品(学生)质量没有保证。居然高校里面还流行一句话,叫“没有毕不了业的硕士,没有考不上的博士”。不知道这种硕士、博士出来之后除了当社会的蛀虫之外,还有什么用武之地?

现在还经常被别人问及要不要读研,要不要直接工作等等问题。我觉得还是要看个人的主见。没有主见盲目跟风去读研是比较恐怖的事情。判断要不要读,只需要回答一个问题:我为什么要读研,或者读研的目的是什么?如果不能回答这个问题,那么估计即使读了,也有九成的可能要失望。我总结的,读研十大动机:

  1. 想为了伟大的科学研究事业殚精竭虑,奉献一生。(很好,应该读。而且应该找最好的研究生学校,最好的导师读。)

  2. 想拿个学历,以后多捞点钱。(这恐怕是绝大多数在读研究生的心态。其中的情况又非常复杂。好学校,好学历的确有可能会导致高收入。但是只是有可能。而且,最重要的是机会成本问题。网上有很多关于读研机会成本的讨论。核心问题还是要自己权衡利弊。反正我见过某人读研前年薪10万,读完之后变5万了)

  3. 我想换专业。(“我不要coding了,我去考经管的研究生。”这是我听到的最多的软件学生的抱怨。基本上换专业的愿望可以实现,但是换了之后是否就一定好呢?)

  4. 我本科是“xx化工学校”,我要考个名牌学校的研究生镀镀金。(如果是这种心态,我觉得读研基本上也可以满足需求。如果本科学校实在太差,读研或许也是一种出路。)

  5. 我觉得自己还小,想在学校里再成熟几年。(别做梦了,在学校里面永远也不会成熟起来。只能是浪费3年,你幼稚依然,而且最终还是会被推向社会。)

  6. 现在工作难找,我要等几年看看。(一样别做梦了,谁知道3年后会怎么样?万一更难找了呢?接着读博士?然后接着读博士后?然后是壮士?烈士?圣斗士?)

  7. 工作太郁闷了,我要回学校呆着。(基本上是在逃避,其实还是要看看郁闷的原因是什么。通常,郁闷都是由于自己的生活态度或者心态造成的,而不是工作或者周围的环境本身。)

  8. 我的确觉得自己的知识不够了/我觉得自己什么都不会,要充电。(基本上心态跟动机都是好的。只有一个问题要问自己,是否有比读研究生更好的获取知识的方式?)

  9. 我是保送的,人家都上,那我就上吧。(我自己就是这种,还是属于没有主见随大流的。其实我挺佩服那些放弃保研的,至少他们都有自己的主见或追求。在被保之前应该再问自己一句:能够被保送,不能说明你很优秀,但是至少说明你自己不差,读研真的能让你更好么?)

  10. 我是为了追随我GF/BF,或者我是为了离开[南京|北京|上海]这个伤心地 :-)(你别说为了感情的其实还挺多,这个我就不评论了。)

又回到利弊问题上来。个人感觉,研究生大致有如下一些权衡利弊:

  1. 多了“那张纸”(跟哈里波特学,You-Know-What)。至于那张纸是不是有用,也是依靠个人判断。如果立志进企业,的确在刚开始工作的时候,有些企业会在这张纸上面做文章。但是我相信工作10年,20年之后,恐怕没人会关心你是什么学历什么学校毕业。如果立志进事业单位当官差,有个好学历或许有用。但是我也见过事业单位“领导”是本科,因此而拒绝招收硕士的。理由是“你丫的怎么能比我强?”。

  2. 老了三岁。如果觉得自己嘴上没毛说话不牢,在学校里再长长身体或许也不错。但是对于一些吃青春饭的行业(我就不举例子了),22-25岁的三年浪费在学校里可是要好好考虑的。

  3. 关于知识。不要指望读研可以从导师和课堂上学到什么东西。这只是一个舞台,戏是要自己演的。

  4. 可以有一个清静的环境,去总结,思考一些问题。这一条似乎也是不少人读研的动机,尤其是工作过的人。只有一点要提醒:如果你遇上一个剥削成性的老板,你是不会得安宁的。

  5. 没了3年的工作经验。这个也要自己考虑,你向往的公司/单位(如果有的话)是希望要一个没有经验的硕士,还是有3年工作经验� �本科生。

  6. 可以多认识一些人,多一些经历。干什么事情都会有一些经历。是好是坏,可能N年之后才会有定论。当局者一般是不会看清的。

其实还有很多,不想一一列举了。总之一句话,不要盲从,不要随大流,不要听别人的。自己把读研的利弊权衡好。如果对自己的未来有规划,而且研究生有利于你规划的实施,那么就读吧。

授课篇

自己在读书的同时,2005年我还参加了一系列的培训别人的活动。05年3月,我在北京北京交通大学参加了微软组织的国内首届Windows Embedded的TTT培训,成了微软的Windows Embedded讲师。自那之后,一些社会上的讲座,培训就接踵而至了。大多数都是义务劳动,没钱。流水账一下:

2005.4,在中国IT俱乐部技术论坛中做关于Windows Mobile的技术演讲;

感谢建忠的邀请,又一次回到了美罗大厦19楼。这个我曾经呆了一年的地方。讲座听众大概有70人左右。都是来自各公司的一线程序员。我讲的内容是Windows Mobile开发的简介。时间是3个小时。这次讲座是我准备的比较充分的一次了,向学院借了PDA跟智能手机。因为是第一次在公开场合露面,演讲的地方又是在自己的“老东家”(其实谈不上)的场地。最后效果还是不错的。

2005.6,在微软亚洲研究院与同济大学联合举办的“微软Windows Embedded教学研讨培训会”上做专题演讲;

这次演讲可能算规模最大最正式的。一拖再拖的拖到了6月份。云集了全国各大顶尖高校的教师队伍300多人。我的演讲包括一个课程经验介绍还有两个晚上的动手实验。还有向许峰雄和MS US的Ivan做项目介绍。这是第一次用英文作报告,还是准备了挺多东西,还让英语系的研究生MM帮忙修改了演讲稿。结果挺好,没紧张,很顺利。

2005.9,在微软公司举办的Windows Embedded技术研讨会上做关于Windows CE系统定制的专题讲座;

这次演讲是听众最多的一次,大概有500人,由于是在线免费报名,人也比较多,比较杂。MS的毛国华邀请我讲一个最简单的Windows CE 5.0的Demo,时间是45分钟。这次是演讲最悬的。中间有个demo,我前一天晚上已经私下演示了无数遍,结果讲座之前突然不work了。等我上了台之后,问题依旧,吓得我出了一身汗。结果不知道随便点了那个按钮,结果居然通过了。基本上是涉险过关。

2005.11,在首届全国Modern C++ Design & Programming 技术研讨会上做关于C++在嵌入式系统中应用的讲座;

以前参加的技术研讨会挺多。但是我觉得这次是技术含量最高,收获最大的。在会议上有幸见到了C++之父Bjarne Stroustrup以及国内业界有名的孟岩、云风等众多同行前辈(当然还有陈榕老板)。虽然以前自认为对C++的语言机制、对象模型都有比较深入的了解,在工程上也有一些经验。但是这几天的讲座还是让我受益匪浅,学到了很多东西,同时对C++这门语言本身也有了更多的思考。

我的演讲安排在第三天,题目是C++在嵌入式系统中的应用,主要讲了一些比较基本的东西,然后讲了Symbian、Windows Mobile两个嵌入式平台以及一个嵌入式图形系统做例子,没有涉及到比较深入的知识。也没有什么demo。演讲也还算顺利,时间把握得不太好。开始的时候去的人不多,所以推迟了几乎半个小时,后面比较仓促。

2005.12,研华公司Windows Embedded嵌入式系统技术讲座;

2006.1.5,ICOP公司Windows CE技术讲座;

这两次都是技术入门讲座,基本上相当于给没有见过用过Windows CE的人扫盲。没有什么技术含量。

除此之外,在学校里面,我还是继续我的“毁人”事业,继续讲授《Windows CE嵌入式系统》课程。比较有挑战性的是给软件学院的04届研究生上课,因为我自己也是04届的研究生么:-)。虽然只有9个人选我的课,教室有时候有些冷清,但是还是上的挺开心。12月份的时候有个“微软-发改委精品课程”项目,学院把我的这门课程重新包装了一下,叫嵌入式软件开发导论,作为了申报项目,不知道能否过关。

此外,还带着一个瑞典乌普萨拉大学交换过来的学生做项目,我给他出的题目是Windows CE下的网卡驱动程序开发,主要是在Freescale龙珠开发板下做CS8900A网卡的驱动程序开发。经过半年时间,东西基本结束了。老外学生克里斯托弗的认真负责给我留下了深刻的印象。他非常善于钻研,每次与他碰头开会,都可以看到项目的进展。这种认真的态度是很多中国学生都欠缺的。

虽然经常在外面讲座,但是也越来越深刻的感到,“闻道有先后,术业有专攻”的道理。每个人都有值得学习的地方。而讲座上课并不代表什么,只不过是把自己掌握的一些东西分享给别人。仅此而已。

飞行篇

回头看去,2005年让我事先没有预料到的是居然出了这么多趟差。一年中,跑了五趟北京,一趟合肥,一趟武汉。在05年以前的22年里我都只在华东六省一市活动,都没有坐过飞机,05年一年就飞了7趟,有五趟是北京-上海,还有两趟是上海-武汉。

3月份去北京参加微软TTT培训,在北京交通大学住了一周。MS的培训还真是累,把人关在屋子里做实验一周,不过收获还是挺大的。

4月份去了一趟合肥。来回都是火车。主要取合肥华恒公司协调Windows CE BSP的开发问题。在那里住了一天,还顺便参观了一下科大。

5月份去了北京,参加微软亚洲研究院每年一次的主题研讨会。我去了Windows OS分组,认识了一些国内高校中操作系统届的老师。还第一次去了知春路上的西格玛大厦,见到了传说中的地方。

6月去北京参加了MS教学包中期评估会。还顺便与同学小聚了一下。

11月去北京参加微软举办的Windows Embedded讨论会,住在香山饭店。主要是邀请了与Windows CE相关的一些产业的人参加,包括培训,硬件,License等等等。感觉认识了挺多人,还顺便爬了香山。

12月又去北京,住在北大,参加花旗的花旗杯软件开发竞赛。顺便逛了颐和园。

12月中旬去了武汉,参加Intel的“64bit计算的优化培训”。在黄鹤楼转了一圈,武汉成了我到达的祖国最西端。

经常出去跑跑感觉不错。游览一下祖国的名山大川,财去人安乐。不知道什么时候能有机会去国外兜一圈 🙂

技术篇

技术是俺们赖以吃饭的东西。不去跟别人比,就跟自己比。自从03年转专业,每年都觉得自己有挺大的进步,就像所有的技术型工作,这也是一个逐渐积累的过程吧。盘点一下05年,有什么大的长进呢?

上半年在学校里,能够静下心来,研究一些东西。我阅读了java虚拟机的参考实现代码与.NET sscli的代码。对虚拟机语言的机制有了更深刻的了解。Rotor是我在MS实习的时候就在研究的一个东西,据说与商业版的.net差不多。但是一直没有机会,也没有多少资料。脱同学的福,从US给我带回了那本经典的sscli名著。得以与sscli亲密接触� �对于GC,对于JIT,对于AppDomain,对于exception handling,对于il code,对于managed object model都有了深入的了解。(坦白的说现在似乎有些东西又忘了。)

4月份的时候,有感于国内Windows CE方面的资料非常少,自己在学习的时候很缺一本合适的书,因此萌生了写一本参考中文资料的想法。书从4月份就开始写了,但是始料不及的是后来发生了这么多事情。快一年了,进度过了一半多一点。寒假时抓紧的好时机。

7月就到了科泰世纪实习,一开始在图形组,他们的任务是把DirectFB移植到Elastos操作系统上,然后再在它上面搭建图形系统。我虽然不干活(主要是不想干,不是不能干,没有积极性。)但是也学习了一下DirectFB的体系结构,了解了一下图形系统。觉得DirectFB的体系结构与directX与gdi的驱动都很类似。对以前看的Windows CE的显卡驱动模型DDI也了解的更加深入了。

国庆过后,我在科泰参与了Windows CE二进制兼容项目。说是参与,其实开发人员只有我一个而已。这个东西的开发目标,就是可以在Elastos上运行Windows CE的二进制程序。有些像Linux上的Wine。可以把Windows上的很多程序拿到Linux上去运行。但是又不完全一样,Wine只需要兼顾x86平台,而二进制兼容项目则需要兼顾ARM,x86,MIPS等多款CPU。而Wine是着力模仿Win95。但是二进制兼容项目不但要模仿WinCE,还要模仿在它们之上的PPC,Smartphone等平台。把一个OS上的二进制可执行文件直接拿到另外一个OS上运行,而且要跨多个CPU。可以说这个东西非常有挑战性而且需要知道很多系统底层的东西。出于对OS的爱好和对CE的了解,我还是乐意的接受了这个挑战,虽然每月的报酬只有两百五十块人民币。

到现在为止,三个月做下来,现在在Elastos 2.0的模拟器上,已经可以正常的运行Windows CE上的扑克牌游戏了。期间克服了非常多的技术难题。包括exe的加载(PE loader),结构化异常处理(Elastos上是没有SEH的),Windows CE API转接(如何把系统调用转接到Elastos上),WinMain的四个参数(这个是很恶心的…),图形系统仿真。(消息,窗口,图形的实现)等等等等非常复杂的问题。涉及到系统底层的东西很多,反汇编,看机器码,甚至写机器码都是很普遍的工作。经常我会被某些问题折腾得睡不着觉。但是当一个个问题被解决之后。整个系统仿佛像婴儿一样,一点一点的长大成熟了:命令行的Hello World跑起来了;CRT程序可以运行了;可以创建线程了;可以进行同步了;可以操作虚拟内存/逻辑内存了;可以读写文件了;可以加载DLL模块了……当图形界面的Hello World跑起来的时候,项目可以说是取得了重大的突破。Windows的消息机制,窗口机制,图形设备上下文等等都完备了,虽然还有不少的问题。产品的雏形已经有了。后面的任务依然任重道远,要在ARM上运行程序,要模仿一套注册表机制,(为了运行COM程序,包括那些Pocket Word, Excel什么的),要对图形系统进行比较大的改动(Windows Mobile的自定义Shell)……

想到这里,有时候想想被老板活捉也不一定是坏事,至少说明我还能coding,还在第一线奋斗,而不是只会对着书本照本宣科的“老师”。

积累吧,让这些东西积累得越多,饭碗就会越牢固。2006年,对自己的目标,希望可以对一些硬件机制有了解。自己是软件学院出来的,工程中经常都是“欺软怕硬”。觉得只要是软件层面的东西,基本都可以找到问题或搞定。但是对于一些硬件知识,还有很多缺乏必要的了解。希望在2006年可以在这方面增强一些。否则,搞“嵌入式”会浮于表面,还不如去写java/.net连数据库……赚钱也挺多:-D

人生篇

2005年是我的本命年,不知不觉已经混了24个春秋。05年一年我过得非常动荡,搬家就搬了4次,在动荡中也悟到了不少道理。

母亲说我最大的缺点是没有经历过挫折,从成长到读书从来都是一帆风顺。小时候在班里一直当班长,考试从来都是第一名;转专业学计算机,一年就能混到No.1的Microsoft去实习;搞Windows CE,一年就能在国内小有名气……但是2005年却让我吃足了苦头。

6月开始,就以研究生不让毕业相逼,被迫到某个公司里面“实习”两年(05年4月–07年4月),早五晚九的上班,不用惊讶,我没有打错,相信我,睡在那种地方早上五点醒已经要谢天谢地了,整天要面对着市面上能买到的最便宜的显示器,看五分钟就会流眼泪,盯一天感觉自己的头要爆炸了,白天还不允许上网,晚上睡觉6个人挤在只能放下床的小房间里睡觉,还有一个人梦里经常唱歌,每天早晚步行一个小时上下班,买一个包子边走边吃就是早饭,每次发“工资”,就250块,都要受到发工资老太婆的鄙视……这些皮肉之苦咬咬牙都是可以忍受的,最大的负担是精神上的压力。没有人身自由,我精心规划的去微软研究院/工程院实习的美梦瓦解了,被关在“公司”里,就连有点事出门都要请假,还得从那250里面扣工资。研究生的生活变得暗无天日,与我当初想象的通往科学家的路完全不一样。当初读研的两个目标(一是增强一些理论功底,二是找一些科研的感觉)离我越来越远,英语得不到锻炼,还记得我发了一封英文邮件,结果招致他们副总裁的批评。最大的担心是觉得自己没有进步,研究生时候干的事情写的程序退回两年我本科的时候照样可以完成的很好。继续在这里呆下去,未来的我几乎会这样:技术越来越差(不进则退),钱包越来越憋(不指望250块钱的薪水能发财,我打赌地铁门口跪着的收入都比这个数多),性子越来越坏(不想跟剥削我的那帮人说话就,也不想让他们认识我),英语越来越忘(为了不再被副总批评,他们的程序里面“联系人”翻译成Linkman我也熟视无睹),岁数越来越老(23-26岁的黄金岁月啊,出来就奔三了)。

最初的几个月,我的心情非常沮丧,恰巧这个时候两条炒得非常热的新闻又加重了我的沮丧心理,一件是交大的博士生不堪忍受导师的剥削而跳楼,另外一件是清华的博士在毕业的最后一刻退学。他们与我肯定有一样的迷茫困惑与不安,我不止一次的想到了跟他们采用一样的方式来解脱来结束自己的痛苦。

同时,我拼命读历史,读哲学,与别人交谈,看一些反映生活的文学作品,希望能从这些东西中找到答案。渐渐的,我从李敖的演讲中知道了什么是消极的人生态度;我从《肖申克的救赎》中学到了要自己来拯救自己;我从《全球通史》中读到了一些伟人悲惨的前半生;从《经济学原理》中学到了机会成本与决策树;从《霍元甲》的预告片中知道了什么是正确的人生观价值观;从与别人的谈话中知道了我别无选择……渐渐的,我逐渐为自己的心找到了出口,知道了自己该如何积极地对待这一切。

不能练英语,我自己从地摊上买来英文的小说(盗版,原谅我),每天睡不着觉的时候躲在被窝里看(上初中高中的时候我却从来没干过这样的事)。下载英文的电影,听里面的台词,从网上下来新概念英语朗读,写程序的时候用来“磨耳朵”。

不能学习新东西,我自己从网上下载了大量的源代码,自己看,自己� ��结,还买了很多技术书籍。包括了Lua,MicroWindow,Wine等等。

挣钱入不敷出(已经3年没跟家里要一分钱了),我自己接外快,利用晚上跟周末写程序,虽然发不了财,但是也可以解决了温饱问题……

离毕业还有1年时间,当拿到那张硕士毕业证的时候,我一定会在毕业证的反面写一行字,来纪念我这段与环境、更多的是与自己的心理进行抗争的日子。

其它篇

2005年还是非常值得纪念的,对我而言,有了太多的人生中的第一次:

第一次有了自己的名片,而且还有了两种,虽然头衔都是虚的。

第一次出差,第一次坐飞机。

第一次接外快,从外面赚钱,经过别人介绍,做了一个通过蓝牙的烧写广告屏的软件,一共出了两个版本赚了15K的样子。当这个东西在广交会上创造了不少价值的时候,我知道自己的code的确可以转化为生产力了。

第一次写书,虽然还没有完成。

第一次……

2006年对自己有什么期望呢?希望那本书可以顺利的写完出版;希望06年可以获得自由身;希望自己可以在技术上积累更多,更成熟,最好能有质的飞跃;希望可以开心的度过这一年;希望身边的人一切都好……