月度归档:2006年11月

又见11.11

今早上网,发现一群同学都在自己的blog上写下了纪念昨天11.11光棍节的日志,本来昨天自己也想写一篇的,结果一大早就胃痛,之后又有些发烧,于是就这样浑浑噩噩地睡过了自己的这第22个节日~~反正写不写都一样,想要改变生活远不如写一篇东西来得容易。

一周杂记

第9周就这样过去了,以18周的教学周来看,学期已经过了一半了。考试已经考了两门试,11周周一还有一门——编译原理。非常有难度的课,据说是原先计算机系的霸王课,虽然现在考试难度有所减小,但仍然足够使人提心吊胆。关于词法分析、语法分析还了解得可以,但是语义分析、中间代码生成则不甚熟悉,Intel工程师们讲授的各种优化技术则更是云里雾里。好在还有一周的时间复习,但是也只有这么一周了。大学里最多的也许是时间,但是最缺的,也是时间~~

从下周开始,又会多出来两门课,一门体育,一门电工,真正的考验就要来了。发现大学里的课程真是奇妙,从21世纪的一大热点信息技术,到20世纪改变世界的基础学科,就连像金工电工这种绝对的“技术”活也要学习,不禁让人莞尔。将要拿起熟悉的电烙铁焊接电路元件,还要抽个时间去补修搓打敲击的金工,真是和工人没什么两样。交大的“交通”二字,解释为各学科的交错相通,似乎更为确切。

本周学校还有一个热点,自然是台球世界冠军丁俊晖的入学。从水源上热烈的讨论看来,大多数对此还是不太赞同的。发现一个有趣的地方,人们对于一件事的看法往往会极大地受到对事件本身参与人看法的影响。当年姚明、刘国梁进交大的时候不见得有什么争议,而同样性质的事件发生在曾经号称“读书无用”的丁身上,则引来非议连连。也许丁的文化水平还比不上要姚、刘等其他体育特长生,但是姚、刘等人进大学前是否就已经达到了我们进大学的标准呢?我看也不见得。这也就是为什么会有体育特招这种政策。交大不缺明星,不会因为丁的到来而改变,同样的,丁俊晖也不会因为交大的一纸录取书而“飞黄腾达”,他获得的只是一次用读书充实自己的机会而已,是否把握的住还是在于他自己。

宏观地思考问题

转载自:http://home.wangjianshuo.com/cn/20061105_eceee.htm

在从上海到杭州的火车上,小杰提出了一个问题,就是在12个小时里面,分针多少次超过时针。

这个问题跟我在1998年底加入微软前的一道面试是一个风格的.这道题出现在我第4轮面试的时候:

1998位乒乓球运动员打比淘汰赛,问组织者需要组织多少场比赛。

当时刚准备用1+2+4+8…这个思路做下去,忽然觉得不对,后来半蒙半算得说了个"我觉得像是1997场"。虽然当时还不是很肯定,但就这样碰到了正确答案,过关了。

其实答案很简单,就是1998个人决出冠军,需要淘汰1997个选手,而一场淘汰赛淘汰一个选手,就需要1997场比赛。

这个问题的玄妙之处就在于,问题不是“如何安排这些场比赛”而是问需要“多少场比赛”,所有安排上的细节,都可以不考虑。

大象放进冰箱的问题

我个人最喜欢的一个笑话就是关于把大象放进冰箱的问题:

问:如何分三步把大象放进冰箱

这是个几乎无解的题,答案也非常无离头:

答:三步。第一步:打开冰箱;第二步:放进大象;第三步,关上冰箱

关键就在第二步:“放进大象”。这说得到简单,但怎么可以放进大象?回答没有给出,所以这道题一直就是当作一个笑话讲的。

不过,如果不把它当作笑话讲,而作为一种解决问题的方法,倒也是值得研究一下的。这个方法,就是宏观的思考问题的方法。

思考大的图景而忽略细节

有人说,“世界上很多人把自己的视野的边界,当作世界的边界;而又很少的人,能够看到其他人看不到的。” 描述这样的人,有一个我非常喜欢的词:“Visionary” – 高瞻远瞩。

阿波罗计划就是一个典型的这样的项目。当时肯尼迪同志对于人类登上月球这道题的解,就是一个类似于把大象放进冰箱的解法。他说:“在下个世纪里面,把一个人送上月球,并且安全的返回”(讲解远景的课程中的经典语录。)

这倒简单,比把大象放进冰箱还省了一步。但问题就在于,具体怎么做呢?当时咨询委员会里面有很多人表示反对,比如化学家们就说,这怎么可能?我们连推动这么强大的火箭的燃料都没有!肯尼迪说:“那么你是不是说,只要有了合适的燃料,我们就可以做到?那么去找燃料吧。”之后的几年里,化学形成了一个新的分支,这个分支就是为了研究合适的火箭的燃料,并且在四年以后找到了这样的燃料。就像燃料一样,一个又一个技术问题被克服,最终完成了一个不可能完成的任务(这个故事来源于:《Seven Secrets of Inspired Leaders: How to achieve the extraordinary…by the leaders who have been there and done it》这本书)

我们的思考方式

我们在思考的时候,尤其在思考复杂的事物,或者涉及众多的人的协调的时候,非常容易掉到细节的泥潭里面,找不到出路。有些时候,看的大一点,先假设一些很难的问题总会解决,还容易得到结果一些。

我个人的心得是,在杠杆开始工作的前5年里面,更多的需要解决细节问题,自己的角色就是在解决实际的问题,比如说在做一个产品,负责一个项目,至于这个产品项目本身为什么要做,尤其是现在的做法之外还有没有其他替代的方案,都不作考虑。慢慢的当很多的细节问题都有非常好的团队成员来解决的时候,如果自己还在解决细节问题,就失去了大的方向,变成“把事作对”,而不是“做正确的事”。

所以最近经常提醒自己,适当的多做些“大象放进冰箱”的决定。

后注:计算机里的函数就是这种思维的产物

学过编程的,就不断地用这种方式解决问题。我记得在火车上,晓娣提到,创新必须有一个限制条件。说到这个话题,我就随口问了个问题:如何用7行代码写一个BBS出来(当时正值客齐集社区上线之前)。这个限制够死的,我出题的时候自己都没有想好答案。

后来,想到了大象的故事,答案就有了,其实不用7行代码,两行就够了。

BBS kijiji = new BBS();
kijiji.Run();

至于BBS这个类怎么写?那是以后的事情,而且肯定写得出来,Ruby on Rails有很多时候就是这种想法,OO也是这种想法,而递归算法不就是这种想法的终极体现吗?

基于VB多智能车辆合流分流仿真平台

辛苦了一个下午,把“基于VB多智能车辆合流分流仿真平台”基本功能完成了,不过程序还比较粗糙,架构也有待于进一步优化,而道路的文件载入功能由于我们小组还未进行最后的整合因此也没有考虑。还是原来的观点,用Basic简单是简单,但无论是架构还是扩展性,仍然有一定的不足。