回忆《秦颂》,一半

回忆《秦颂》,一半今天突然就想起《秦颂》里的那首歌了,不是后面始皇帝大典准备的那首雄壮的,而是开头赢政和高渐离一起吃奶时听的那首童谣。我特意找来原声听。前面是古意盎然的配乐,然后,一个女声低吟,"两只小狗,梦见骨头。汪汪汪汪,咬了一宿。咬了一宿,狗毛两口。汪汪汪汪,没有骨头。"然后……我倒是还记得所有情节,不过如果在回忆一番,就太剧透了。自己激情澎湃一顿,怕以后忘了,写两点感想吧。1. 多读大师作品。我怀疑,大师们可能是自娘胎里就是牛人。看姜文、葛优、周迅 (周迅没参演秦颂,顺便一提)
等牛人的早期作品,就已经霸气露得横流遍野了。想不明白为什么有人上手的时候就那么牛,不过似乎是个事实啊。据说《秦颂》的编剧也编了《活着》,并且说过:我以为我们终于开始了,没成想到那是结束。对于那些开始了就结束的牛篇章,更是值得好好品味学习。C语言等也是,光读教材是不行的,还得多读经典著作,及经典系统中的代码。有的同学刚开始会觉得那些代码有点怪。不过,音乐课老师说了,对美的欣赏在一定程度上是一个习得的过程,也就是说不是天生的,得不停地学习正确的东西才能培养出来。所以,那些代码不是怪的,而恰恰就是正常的。再顺便一提,《秦颂》后面大典那段的歌词,我说那么质朴雄浑哪,那就是琅邪台刻石,《史记·秦始皇纪》里记载了的。那些牛人的文学作品也是一样,应该读。优秀的网络小说,就让时间和其他读者替我们筛选吧。2. 勿忘那些本始的理想骨头之于两只小狗也罢,音乐或栎阳公主之于高渐离也罢,天下之于秦始皇也罢,都是一样的不懈追求的理想,或者强烈的欲望。我们喜欢代码喜欢文学,就应该努力持续地追求下去,不及他顾。如果有一天我们发现自己其实喜欢的是花花世界的喧嚣,那就不要有任何掩饰,去追求。所有努力的追求都有值得肯定的方面,无论追求的是什么,那些种种掩饰才是丑的。高渐离毫不掩饰地追求音乐和栎阳公主(仔细看台词,确实有追求的成分),始终如一。高渐离先生是燕人,就是北京地区的人。读到此处,可能你也发现燕和北京是多么不一样的两个地方。倾望楼盘及听着IT界这样的说法,实在想不到跟两只小狗这样单纯的热爱有什么共同点。繁华和各种修饰,把我们本初的理想淹没了。深入代码的本原,不为一城一池的得失所动,眼前的项目都是我们追求代码本原的过程,而不是动机。3. 影子《秦颂》的英文名是 帝王的影子。类似的,安德的游戏系列有霸主的影子,黑泽明电影有影子武士。影子,是个挺有意思的东西呢。--------------------博客会手工同步到以下地址:[http://giftdotyoung.blogspot.com][http://blog.csdn.net/younggift]

14条原则 (4) 把大问题划分成小问题

14条原则 (4) 把大问题划分成小问题这条原则的全文是,"把大问题划分成小问题,然后系统地检查每一个小问题,看是不是问题的起因。再大的问题都能按这种方法分成小问题加以解决。"把整体划分成若干局部,这正是两千多年来人类一直在执行的方针,亚里士多德就论述过了,此后也鲜有进步。看起来很简单,但是执行起来非常困难。比如,如何划分一个问题。这一条太难了,我也只能谈几个体会,求过路的牛人们不吝补充事例和给出自己的解释。1. 当前只有一个问题假设我们已经把大问题划分成了几个小问题,那么,重要的是假装当前只有一个问题。然后集中精力去解决这唯一的一个问题。当我做一百个俯卧撑的时候,60以后会变得非常困难,尤其是呼吸和心脏的压力,那个时候最想做的是放弃。我采取的最重要的措施就是关注当前的这一个,调整"它"的动作。下一个?下一个再关注当前的这一个,调整"它"的动作。这样,一个又一个就做完了。传说古代的男人是以打猎作为主要职业的,提供的蛋白质和脂肪(糖份是由女人采摘提供的)大大加速了人类的发展。而打猎中非常关键的一个因素就是:专注。所以,如果我们同时关注很多步骤,很多目标,很多集点的时候,我们就什么也看不清了。直到现在,我们似乎还保留着这种天性没进化完。所以,当我们把自己当成一台机器操作的时候,就应该按它的内在逻辑和性能指标去操作。如果它需要专注并善于专注,那么,我们就应该使用专注的方法。只关注当前的这个问题,假装它是唯一的问题。有的同学可能要问,那如果同时存在两个问题呢,这种事情难道不是真的存在么?答案是:当我们解决了这个唯一的问题的时候,接下来遇到的,是下一个唯一的问题。一个简单的例子,比如在编译的时候,经常有同学大叫,"哇靠,100多个错误啊!"改个地方再编译,"刚刚的错误消失了,但是……200多个错误啦!"如果我们坚信错误只有一个,唯一的一个,那么,所有那么多错误信息,就都是编译系统的愚蠢而已。而事实上,正是如此。绝大多数情况下,只有第一个编译译错误才是有意义的,后面的,可能都是编译器对这个错误所做的愚蠢猜测导致的。比如我们写main() { a = 3; printf ("%d", a); // 其他对a的使用}编译器先抱怨我们没有声明a就赋值了 (即a=3这行) ,然后抱怨了一大堆没赋值就引用。而只要 int a = 3,a就满足声明了,然后后面的所有错误就全消失了。也许我们应该这样规定编译器的行为更好一些:一旦发现错误,就停下来,因为只要有一个错误存在,整个程序就都不可能运行,下面的错误,是没有必要讨论的。就像 a && b && c && d ... 只要a是假的,后面的是没有必要求值的。所以写程序是个需要有洁癖和强迫症的事。只关注唯一的问题,这也大大减少了我们的心理负担。如果知道人生后面还有那么多苦难等着呢,可能要跳楼跳桥的人数会大大增加吧。那些苦难一望无际,但是一个个解决下来,我们也就成长了。所有的RPG游戏,WOW之类的,无不如此。人生也是一样,调程序也是的。2. 说起心理负担,说个题外话。不少人认为程序员都是有点强迫症的,或者更泛化一些,IT男大抵如此?IT女就惨了,有些认为自己有强迫症啊,这多么可怕。其实没啥,不损害国家和社会,对周围人也没有啥负面影响,就无所谓,不妨当成一种可爱的品质接受下来。比如我经常锁了门以后下楼,然后挠头"我锁了呢,还是没锁。"上去看一眼吧,恩,锁了。注意,此处有闹心,好像这么点小事都没处理明白似的。再下楼,再挠头,"我锁了呢,还是没锁。"如是者三,就真闹心了。其实没啥。我们有解决手段的。不然程序员这么精细的生物如何在这个粗糙的世界上生存啊。简单粗暴的手段是,在某次上重重把门关上,用手使劲拧钥匙,让手生疼。记住这个感觉。复杂点的手段是:随身携带相机,拍下来锁门了。照片上都有时间戳的,怀疑自己的时候就拿出来看一眼。综上所述,认真严谨带来的副作用不可怕,可以伴随终生。3. 当问题真的有两个同时有两个问题的情况,一个一个解决。这在前面说过了。要补充的是,在解决的过程中,观察故障现象的变化。经常有牛人修机器调程序的时候,旁边一群观摩的。观摩的人们就发现,牛人修了半天还没修好,但是却一点也没慌。一个可能的原因是:故障的现象一直在变化,牛人正试图找出规律。最可怕的不是故障,或是故障现象一直不稳定,而是没现象。或者你对故障的现象无从解释,即没有一条理论指出现象理应如此。人类倾向于追究问题的原因。古代天打雷了,下雨了,下多了,下少了,祖先都要找出个原因来。然后针对这个原因做点工作,再观察。比如不下雨了,就扔河里几个童男童女。这个时候如果还不下,大家就有点毛了。得给出新的解释或假说来。所以,在每一步里故障现象的变化对于诊断非常重要。琼瑶女士有部作品忘了是什么,还是你们还是小学生时候的。当然,跟现在的路数区别倒是不大。不过统而言之,从诗经到现在,琼瑶读者关注的内容似乎区别也不大。琼瑶剧里一个女的把男朋友惹翻了,很久以后
(我猜顶多几个月,不过片子里似乎是半辈子)又见面。见面以后似乎是吵了一顿。事后女的问她爸,他生气了吗。她爸说:孩子,我看你们算是完了,他气得不行了。女的说:太好啦,这说明他还爱我。这位女士具有成为程序员的潜力,她的依据就是故障现象的变化表明问题。最可怕的不是憎恨,而是冷漠。最可怕的不是天崩地裂,而是没现象。
3. 孤立的原则,分析没现象,就离没救不远了。这个时候,我们要做的就是整出现象来。如果现象不停地变,似乎没有规律,我们要做的就是确定设置与现象之前的关系。以上两种都要求,孤立。每次只检查一个坏部件. 假设其他的都是好的,直到遇到矛盾。这也正是后面的另一条原则。就像肌肉训练一样,孤立有很多好处。只有孤立才能不让有毛病的部分被好的部分掩盖起来。这时需要特意设置一些操作,以验证自己的假设。福尔摩斯,Spock,还有柯南都说:排除所有的不可能,剩下的就是唯一可能。排除所有不可能的第一步,是确定有哪些可能。第二步,是一个一个地单独排除。前者,就是问题的划分,后者,就是孤立的原则。或者说,分析
(相对于综合) 的方法。要确保每种可能
(或步骤)间的节奏,不要混在一起。在处理某种可能的时候,不要试图走捷径把别的可能一起测了。那样,你最终也搞不清楚到底哪个才是问题的原因。可类比的案例不少,比如集中优势兵力,各个击破敌人;比如,在实验室,人工限制约束条件,确定变量间的因果关系。4. 实验计划所以,在实验开始前,要先列出实验计划。你认为都有哪些可能,应该用哪些方法
(根据实验现象)判断这种可能是否就是问题的原因,需要哪些步骤,先什么后什么。这些都要在实验动手前写下来。然后一步步执行的时候标注结果。你猜对了么,为什么,这个猜测是错的么,是什么现象否定了你的猜测。先假设各种可能,然后再做实验。当所有的假设都验证了,没有新的假设,而现象还没有得到解释的时候,就是该停下来的时候。我们打猎的时候是假定那里有只兔子,然后才放箭的,而不是到处放箭,然后跑过去看那里有没有兔子。打哪指哪的效率太低,那么干的都得饿死。虽然你可能看到过那样的事:一抬头,啊呀,这不就是问题的原因么。灵感这种事,不是工程师应该依靠的。类似的,大的项目和大的学习计划也需要拆成小步,不然令人叹为观止的工作量会在我们开始之前把我们压垮。一般四五个小时的就可以称为令人叹为观止,更不用说需要一年半年才能读完的书,或者完成的东西。别以为我们这么大了控制能力就提高了,在这方面,我们仍然是希望在第一时间能检验自己成果的孩子,是希望快速判定这条路线能否成功的原始人。即使你意志坚定,或者说信仰坚定吧,你的老板也一样么?所以,工程师需要掌握的基本素养是:估算和度量。在最初的时候分解任务,估算时间和成本,在每一步骤结束后度量结果。有的同学可能会问,那初学的时候我还没有能力分解,没有能力估算怎么办?我一直面临这一困惑,时时为自己的计划没有顺利执行而痛苦。尤其是新知识结构的书,简直无法预测啥时候能完成。后来为了平复自己,我这么做:去读,去做,啥时候完成啥时候算。不去估算。因为没有能力估算。等到知识结构逐渐建立起来,这一领域的知识丰富一些了,估算的能力也就提高了--估算的能力,正是在一次次的度量之后与最初估算的结果对比后提高的。5. 如何划分问题如何划分问题,依据我们的学科中的那些理论依据。依据我们对世界的理解。这就不是我能讨论的了。
--------------------博客会手工同步到以下地址:[http://giftdotyoung.blogspot.com][http://blog.csdn.net/younggift]

在唐山,神奇城市

在唐山,神奇城市单位派我出去讲课。先是北京,阴霾的天空没有太阳,或者到处都是太阳,无论是楼群还是
行人,脚下都没有一点影子。湿热,大家把半袖挽成砍肩,但是汗水仍然一点也蒸发不出去,
因为空气里的水已经饱和了。下一站是唐山。随便找了一趟不知道终点是哪的车,反正,下一站是唐山。到的时候已经入
夜,只看到公路两侧的路灯昏暗,向远处无尽延伸,路灯下面满是耀眼的车灯扑面而来,忽
啸而去。偶尔,立交桥黑色的影子横过同样黑色的天空。坐下来吃了几口东西,抬头看正喝酒的各位,确认已经是唐山了。1. 时光隧道我们住在火炬路,高新区。街道不宽,不过似乎是市中心的主干道之一。站在楼下,看到街
两侧一片灯火通明,各种洗浴、饭店、宾馆。一个叫 "爱大兵馆" 的,我凑过去打算看看是不是军属什么的,原来是招牌上的霓虹灯有几
处故障,全文是"爱乐宾馆"。对面不知哪一家,大喇叭开足马力,放着"伤不起,真的伤不起",这边,放的是"我是一颗小
小的石头"。街上人来人往,说着我完全听不懂的方言,不仅拐弯诡异,而且字词发音都粘结在一起。我
一直以为我能听懂唐山话呢。赵丽蓉在小品里的对白,我都能听明白。想起来前两天跟南方
来看长白山的同学说,"估计长白山区的方言你们不一定能听懂",我说了几段正宗的东北方
言之后,几位得出结论,'原来赵本山他们在小品里还是很有所保留的啊。'看来,赵丽蓉也
很有保留。宾馆里的计算机显示器可以兼作电视用,同时还是音箱。不碰鼠标几秒钟,屏保就出来了,"
严厉打击一切涉毒违法犯罪活动",黑地白字不停从右向左滚动。对了,这段话后面还有个巨
大的叹号。计算机里装了不少音乐和游戏。音乐没有"伤不起",主要是"明天就像盒子里的巧克力糖"这
样的,走廊里别的屋也在放这一首,估计是标配,反映了老板或机器管理员的品味。游戏都是我非常熟悉和亲切的。极品飞车5,我又重温了一下里面暖色的夕阳,因为3D综合
症晕得我一头汗。还有暗黑破坏神II,还有一堆抢滩登陆站各种版本,帝国时代I,II。还
有罗马复兴。还有星际II。上网用的是IE6,访问很多站点都提醒我升下级。我升了,重开机又恢复回去。我突然醒悟
过来--时光隧道!也许从1976年开始,唐山的城市建设越来越快,越来越先进。以至于最后
超英赶美了。但是,咱们得tao光养晦,不能让阶级敌人和美帝苏修啥的了解咱们的实力。
所以,咱们又建设了一个专给外人看的,混杂了自80年代起各种风格的唐山。也许,本意是每个年代各有一个,只是相互之间略有侵扰?2. 腰间盘也许是我太急于向大家报告,而又被发现了,所以第二天一早麻烦就来了。一大早,小雨。我这个高兴啊,几天来的在北京的闷热可以一扫而光了。我没意识到悲剧正
从此开始。早饭,坐车1000米左右到了会场。小雨带来的不仅凉爽而已,我突然发现坐不住了。腰间盘
突出复发了。给不了解腰间盘突出的同学们补补课。这毛病终生携带,基本不能根治。不犯病的时候好人
一个,啥也看不出来。天一冷一阴啥的就犯病,主要症状是不能伸直腰,有时还向一边歪。
我当时的状态就有点类似《猫和老鼠》里那大狗,上半身前倾,两只手dala着,努力仰头,
正好看到前方。彭老师说,你快去买个热贴吧。我也感觉不好,所以毫不推辞,"好"。会议
刚开始,我跑了。打车1000米到了人民购物。买到热贴。当是时也,我已经只能用手撑在柜台上才能站住了。
贴上热贴,好,回去开会。开会结束,我发现快站不起来了。果断不吃午饭,回去躺着。下午,站立还是非常困难,去
买护腰。先查好地图,走了1000多米,药店。"啥?护腰,没有。"说是再走500米,医疗器
械有。我走了500米,看到建设路口。走不动了,打车。非常非常远。我想,应该是又回到当前的时间线了吧。终于,到了一个我也不知道什么地方
的地方,总之,有护腰。我长吁一口气,"得救了。"接下来讲课,我只能坐着。好在一直晴天,腰一点点好起来,现在,已经能直立着站立了。腰突非常疼的时候,我突然想到,这不就是软件工程里提到的健状性么。一个健状的系统,
能在诸多情况下应付自如,稳定输出。而我,对周围的环境依赖和要求越来越强。如同李记
者说的,老了,脆弱了啊。3. 羊羊汤馆这是第二天晚饭我去的地方,名字就叫做"羊羊汤馆",不是"羊汤馆"。我事先在地图上查好
位置,然后才去的,估计我这腰可以承受的距离。一看,是个小店,不知道卫生如何。我又转了半圈,估计自己没能力走更远了,又回去了,
就这吧。一进门,看到五六个汉子分坐在几个桌子边,脸朝着一个方向。都抬着头,眼神直勾勾的,
偶尔低头喝口汤。啥仪式?我又穿越了?顺着他们的眼光一看,那头一个电视高挂在墙上,
大家都看什么节目呢。顾客们的身后,胖老板在玻璃柜子里,黑乎乎模糊的影子,响亮地低吼了一声,"来碗儿羊汤
~~"这不是个问句,不是在征求我的意见,似乎是向同伴通报。我想,这应该是个仪式吧,点
点头,差点应一声,"好嘞~~"我走过去瞅两眼。其实我这眼神,只能看到里面站个人,下面一堆各种颜色的,应该是调料
或肉。走过去及"瞅"的这一组动作,纯粹也是个仪式,表明1.我看着呐啊,别蒙我;2.尊重
人家的劳动,表示一下兴趣。老板估计抬头看看我,"大碗儿小碗儿?""大碗多大,小碗多小?"这也纯是个仪式,我根本没想到跟KFC式的,还有选择的。"一样大。""啊?大腕和小碗一样大?"老板的这句回答让我完全丧失了仪式感,完全不知道该如何继续
对答了。"对。碗一样大,料不一样。"懂了。反正我也不知道料有多么不一样,"大碗的。"我也加入汉子们的行列,坐下来面对电视开始朝拜。整场晚饭,在我犹豫中度过,我一直在
想要不要来二两白酒暖暖腰,又想还是小心点别喝完不小心再伤更重了。最好,灌了半肚子羊汤和饼丝,回去看书,然后倒头就睡。4. 练功的半大老爷子今天下课,我去会展中心广场找单杠去。奇怪,学校里反倒没有。终于找到,原来网上很轰动的会展广场的"运动区"就跟现在的小区门口的运动区规模差不多,
怪不得这么难找。一组单杠,一高一低。还有一个双杠,一对父子正拿它当足球门,练起来
非常不方便,我一荡就容易踢着守门员。还有个把绳子拴腰上可以从地上弹起来那种架子,
坏了。以上,没了。向龙说的,单杠可以拉伸。我在单杠上抻了两下,腰没啥地,手先握不住了。正无聊,一抬
头看到一位半大老爷子,我立马决定不练了。这位老爷子大约五十岁,可能还不到,只能称半大老爷子。精瘦,精肉很多,也很瘦。他个
子不高,需要跳起来才能抓着器械,就是那种器械,顶上很多短的横棍,像卢定桥下面,可
以像猴子那样从这头一点点荡到那端。但是,他并不是正常那种荡法,而是从侧面抓住的。
侧面的横杠,跟我的小腿粗细差不多,手指拢不住,得纯靠指力扣住。半大老爷子不仅抓住
了,还来了个引体向上。不仅引体了,而且一下横杠直到胸口,快到肚子了。然后,又是一
下。我不练了,就站那傻看着,准备半大老爷练完了,给个拇指的手式。旁边一个半大小子,三
角肌还没开始发育呢,朝半空哈地踢了一脚,然后也定那了,跟我一起看半大老爷子引体向
上。小伙的舌头都伸出来了,一个颈舔嘴唇,恨不得把半大老爷子的肌肉扒下来吃了。不过,
看起来半大老爷子的肌肉真的不是很发达,即使用力的时候也看不出来多鼓。但是,他就这么一下一下一窜窜地引体到胸口,完全没有停下来的意思。最后,我实在没意
思,跑一边去继续拉伸去了。也不知道他什么时候停下来的。只知道后来又来了位老爷子,
略微粗壮一点。两人寒喧了两句,似乎粗壮的有点啥问题,半大老爷子似乎说,"就这样",
然后啪一个左右劈叉,大腿简直是砸在地面上,接着站起一半截,啪又一个前后劈叉。站起
来拍拍土,骑上自行车,走了。我看着半大老爷子的背影,拍着自己的腰,想挑大拇指,没敢。5. 羊汤馆今天晚饭,这个店就叫"羊汤馆",不是"羊羊汤馆"。除了羊汤,我还点了个茄子,只有能力吃掉一半。然后坐那发傻。因为我在看面前一个黑小
伙,犹豫着要不要把茄子分给他。这兄弟点了一碗汤,和一大堆面丝面饼,还有一小瓶酒。
汤被他三下五除二就杀剩个底,然后就着面丝喝酒。我想起本科的时候跟师兄于寅虎在泽记吃饭,似乎没有扣肘子,只有似乎一个菜,和酒。一
位不知道哪来的大姐邀请我们和她一起吃,说她的菜反正也吃不完了。她说,她是做美容还
是美发的,说这行有个要求,就是你本人得漂亮。记得师兄说,对啊对啊。我从菜和酒里抬
头看了一眼,心想,恩,记住了。但是,她的脸我一点印象也没有,就像所有的脸都那么相
信。当是时也,包括此刻,对于啥是美啥是丑,我一直有自己独特的见解,并且一直在学习其他
人的观点,虽然他们的观点很难找到什么规律,但是我一般也不深问。当然,这也是个仪式,
假装我也了解。就像在唐山,我假装没有发现这个城市其实在时光隧道的另一端。不然,怎
么某位学员会对我说,'你一看就是外地人,小心别被偷了。'我怎么一看就是外地人了呢。难道,我表演得不够遵循仪式?--------------------博客会手工同步到以下地址:[http://giftdotyoung.blogspot.com][http://blog.csdn.net/younggift]