—— 我读《编程之美》
作者:周爱民
题记:
=========
为拟这篇读后的标题,我花费了不少的功夫,最终我想起邹欣先生在他的博客上的一段文字,说的是上次博客堂年会上的预测之TOP。其中就有这样的一个关于书名的观点,正好引来作本文的开题。再加之本就是邹先生所述或所认可的观点,固而必当切合其书的本旨。 (http://blog.joycode.com/xinz/archive/2007/12/31/113262.aspx)
0、引子
=========
有一天,我问了方志远兄一个问题:有没有一本书,是有一个主标题,而有两个副标题的。志远兄答我说,明清或民国时期的书里可能会极偶然地...
A今天去面试,一路过关斩将,到了一个gg面前,他也问了今年的流行语 – 看了编程之美?答: 是。问:从头到尾都看了?答:是的,我还发现了几个小错误。问:那我问你一个书上的问题,一模一样,你应该有信心作出来吧?答:当然。 问:书带来了,好,请放在桌上。A只好把书摆在桌面上,不知道他葫芦里卖的什么药。。。这位gg弯腰在抽屉里摸索了一会儿,拿出一个丁零当啷响的东西,仔细地摆在桌面上。摆得和书的封面一模一样。gg 面带微笑地说: 那就把这个九连环解出来吧。
当然,如果只是照本宣科,从书中摘选一些题目用于面试,这肯定不是本书作者的原意。
性能调校的工作千头万绪,最怕的就是像无头苍蝇般盲目地错误尝试(trial and error),不但旷日费时,还累积不到经验,团队与个人都难以成长,也就是说下次再碰到性能议题时,还是乱试一通。
我们需要拟定计划、有步骤分阶段地执行,如此才能循序渐进,一步步朝目标前进。据微软的研究显示,过程应该分为6个阶段,分别是发现、探究、提案、执行、复查、收尾。这不一定适用于任何调校的情境,笔者从来也没有完全这么做,但却是个可供参考的方法论,能据以修正成自己的方法。有固定的准则后,才可以累积经验并加以分门别类。
讲到Workflow,很可能有人会立刻想到比尔•盖茨常常向人推荐的一本书——《世界是平的》。作者托马斯•佛里德曼在他的著作中提到的抹平世界的十辆推土机,其中第三辆就是工作流软件。
今天我去面试,前面答得还不错,最后面试官问:看了《编程之美》了么?我回答:看了。问:怪不得,书带来了么?我从书包里拿出皱巴巴的书。问:为什么书这么皱?你在上面乱画了什么?好像还被水泡过。。。我想起来面试的时候要诚实,就鼓起勇气说:我有一次做题的时候趴在上面睡着了,然后流了很多口水。。。面试官想了想,说:比尔开始写程序的时候,也是趴在电脑上睡着了。。。 你明天就来上班吧。
每次看完《编程之美》中的问题,想要亲自演算一下或深入思考的时候,都觉得时间过得很快,动辄一两个小时,如果再把代码敲一遍的话,需要的时间可能更长,真是搞不懂通过微软面试的那些家伙的脑袋到底什么构造,书的序言中提到他们每次面试45分钟,还要写出程序?!在我看来,如果是控制CPU曲线或是中国象棋问题或许还有可能,如果是买书折扣问题,我觉得真的是不太容易,尤其是如果当面试者钻进本题的贪心解法而不是动态规划算法的思路之后,因为我写这篇文章前前后后大概用了5个小时 :-( 。
博文视点提供《编程之美——微软技术面试心得》第1章第1.3节“一摞烙饼的排序”电子书,其中包括题目、分析与解法,供大家下载阅读。
下载地址:http://files.cnblogs.com/bvbook/laobing.pdf
谢谢大家。
看过《编程之美》,想起在西安读大学的时候,见到微软、贝尔这些牛企的面试题总是顶礼膜拜,更有些题目被一届届的传为佳话,比如"井盖为什么是圆的?"。不过自己当时更多的把编程看作是工程,而不是艺术,也坚信成功的软件是工程之美、管理之美、设计之美,自己的精力也更多的关注在开发方法、过程和系统设计上。
大学毕业,在工作的这段时间里越来越感觉到代码本身的美感,就像 wordpress 网站上的一句话 "code is poetry"。
现在读到《编程之美》,让我觉得作者们都是不折不扣的艺术家,他们的创作工具是 IDE,是键盘,他们的作品是代码。原来望而...
前面已经写了一些关于烙饼问题的简单分析,但因为那天太累有些意犹未尽,今天再充实一些内容那这个问题研究透。我想,通过这篇文章,我们就可以把这一类问题搞懂。再遇到优化问题,如果我们想不到别的办法,就可以采用搜索树算法来解决,至少我们不至于拿不出解决方案。
微软中国研究院潘爱民老师(《深入解析Windows操作系统——Microsoft Windows Server 2003/Windows XP/Windows 2000技术内幕》译者)推荐《编程之美》。
《编程之美》2.1节“求二进制数中1的个数”中扩展问题答案
《编程之美——微软技术面试心得》3月28上市,上市1月销售10000册,即再刷。现公布第2刷勘误,供大家参考。
我应该算是最早知道将要编写《编程之美-微软面试指南》这本书的少数几个人之一,那时邹欣老师正在对《移山之道》进行最后的润色,而我还在学校里上研究生课程,生平第一次接受正统的计算机专业教育。当邹老师问我要不要参与编写时,做为一名自诩的“文学青年”而不是“计算机高手”,我毫不犹豫地答应了。
早在一年前,当时我的一个很牛的胖师兄受邀参加Google中国的面试,一开始问他考什么问题他就用签了保密协议打发我们。但当最后他得知无缘 Google的时候,终于打开话匣子,跟我们这些小字辈滔滔不绝地传授了一些“面经”。我记得其中就有一道题就是这个一摞烙饼问题,还有一道概率题在我面试MSRA的时候也被问到,可恨我当时没在意,后来面试吃了亏。