这是一本让人着迷的书!
从我得到样书的那一刻起,在每天的闲暇时间阅读和思索这本书中的题目就成了我的一个新习惯。虽然网络上早就流传着不少微软面试题,坊间也不乏一些程序员面试类的图书,但是像这样集中展示高水平编程面试题目,并且以启发性方式对这些题目予以权威解答的图书,这还是第一本。对于那些正在准备面试的同学来说,这本书毫无疑问是宝贵的学习资料。而在我看来,即使是对于已经工作的程序员来说,这本书也是非常值得用心阅读的。
实话实说,对于算法和数学类谜题的意义和价值,在程序员社群里长期以来就存在很大的争议。CSDN上每隔一段时间就会有人讨论“算法真的重要吗”或者“数学真的重要吗”这样的问题。很多人对此都持质疑甚至是否定态度,他们认为,对于企业来说,是软件产品而不是具体的程序创造了价值,而创造成功的软件产品是一个庞大而复杂的系统工程,优质的算法和程序在其中的作用是有限的,相反,对平台和系统的理解、对领域知识和规则的掌握、软件质量的控制、产品设计、架构的选择和设计、平台和工具选型,以至于团队管理和有效沟通,对于软件工程师来说是更为重要的技能和素质。相比之下,算法和数学只要基础扎实就可以了,在实践当中反而不如上面那些要素显得重要,更没有必要在类似智力测试般的面试谜题和奇技淫巧上花费太多心思了。
这样的看法,当然有很有价值的方面。当代的软件工程师,确实需要建立更全面的知识技能体系和系统思维,但是以此来否定和贬低算法和数学基本功的重要性,否定面试谜题的意义和价值,则又属于只见树木不见森林。事实上,这些谜题考察和锻炼的,并不是算法和数学的“奇技淫巧”,而是扎实、严密和具有创造性的思考能力,面对问题有条不紊的分析能力,和不断深入、刨根问底的精神。毫无疑问,这些素质,都是软件工程师身上最宝贵的东西。
本书就是对这一问题的有力证明。请翻开这本书,随便挑选几个问题,认真思考,尝试解答,再看看作者的思路,在其启发下更进一步思考,尝试给出更多更好的解决方案,甚至更进一步,提出书中都没有提出的问题,把问题想透,把程序实现出来,验证自己的想法。毫无疑问这样的阅读方法是相当吃功夫的,但通过这样的方式,不但能够最大程度地获得本书的价值,也能够实实在在提高读者的基本功、思考力和创造力。毫无疑问,这些能力的意义要远比任何具体知识和技能的获得都更重要。对系统与平台的理解也好,对领域知识的掌握也好,产品的设计、架构的选择也好,所有这些算法之外的技能,不都需要强悍的思考能力的支撑才能获得吗?事实上,在这个知识开放共享的时代,头脑和思维才是唯一核心的竞争力,从这个意义上讲,这本书是直接面向核心竞争力发展的,其意义何其大也!
这本书另一个必须要提的意义,就是它的“美”。真正的程序员都领略过程序之美,那些简洁有力的代码,精巧严密的构思,高效直接的解决方案,美得令人窒息。可惜,在日益工业化和利益驱动的IT中,这种美已经是越来越少见的东西。但我想每一个真正热爱编程的人,都渴望欣赏这种美,渴望在思考过程中一次次“Aha!”式的愉悦。这本书就能够最有效地满足我们欣赏编程之美的渴望,题目的美,思考过程的美??解答的美,延伸思考的美,这种美的感觉,对于真正的程序员来说,本身就是一种精神享受。
虽然这本书表面上是指导面试的,但是依我来看,已经工作的职业程序员更有必要好好读读这本书。毕竟世界很大,不是每个人都要去微软或者谷歌,而这本书的意义绝不仅仅在面试,更重要的是在编程之美,思考之美。
posted on 2008-10-05 11:53
仑波比 阅读(125)
评论(0) 编辑 收藏