《代码之美》这本书已经成为经典。关于它本身的赞美之辞已经不少了,不过到底从这本书里该读些什么东西,我倒是有些思考。
上世纪九十年代初期,当时正在加州大学埃尔文分校攻读博士学位的Douglas Schmidt在观察了他所参与的软件项目开发实践之后,得出一个结论,即未来的软件开发将越来越多地体现为整合(integration),而不是传统意义上的编程(programming)。换言之,被称为 “软件开发者” 的这个人群,将越来越明显地分化:一部分人开发核心构件和基础平台,而更多地人将主要是配置和整合现有构件以满足客户的需求,类似现代汽车、机床和家用电器制造业的产业格局即将到来。面对这一前景,博士生Schmidt一方面写文章对于其进步意义大加赞扬,另一方面毫不犹豫地投入到核心构件及平台的开发阵营中去。他很清楚,在这样一种分工体系中,由于软件整合产业很难出现垄断局面,因此大多数利润总是被截留在上游,人当然要往高处走,整合是好事,但他老兄宁可让别人来做这个好事。
事实上,软件产业中大多数看上去挺靠谱的预测都被历史的发展无情地抛到垃圾堆里了,然而Schmidt博士生的这个预测却惊人的准确,其后十几年软件工业的发展完美地印证了他当年的判断。因此,他本人基于这一预测所选择的人生道路也一帆风顺。如今已经是教授的Douglas Schmidt先后创造了ACE、TAO、CIAO等一系列分布式计算基础件,先后主导了美国学界和国防领域内若干重大科研与实际开发项目,称为世人公认的分布式计算架构领导者。
抛开他个人的辉煌不说,“整合化”趋势实际上已经深刻地改变了世界软件工业的面貌,从而也影响了身为晚进者的我们的命运。如今大部分的程序员实际上是在整合与配置现有资源以满足需求,而不是真正意义上的“编程”。这当然是一件好事,整合同样需要深刻的洞察力和创新精神,优秀的整合者与天才的程序员一样不可多得,甚至更加罕见。然而我们也不能不承认,大多数整合性的工作是机械的,简单的,重复的,欠缺创意的,深入的思考往往不必要。因此,在这个整合为王的时代里,思考的精神在钝化。更有甚者,互联网和搜索引擎的出现大大加速了这种钝化,几乎所有的问题都有人解决并且张贴在互联网上了,因此独自思考和解决问题已经成了不必要的、降低效率的行为,不但不时髦,而且不经济。软件开发迅速成为一个强调搜索和短期记忆力的技能,我想这是50年前第一代程序员们做梦也没有想到的。
老实讲,就整体而言,我仍然认为这是一种进步。任何一个产业的成熟,无不伴随着分工的明晰、技能的简化和从业门槛的降低。与少数人享受思考乐趣的需求相比,大多数人享受便宜而无处不在的软件服务的需求显然远为重要。但是,对于身处软件行业中的个体来说,思考力的削弱和丧失却是不折不扣的悲剧。这一点不必过多解释,正在苦苦寻找自己核心竞争力的开发者们都知道我说的是什么意思。几年来对中国开发者社群的近距离观察使我确信,尽管作为一个产业,中国软件一直享受着比较快的成长,但是总体而言,中国的软件开发者越来越迷惘、焦躁和不自信。这一情况当然是由多种原因导致的,但开发者们每念及此,多抱怨体制、产业、市场等身外之物,实在也有失偏颇。评心而论,这几年中国软件技术界的生存环境还是有了很大改善,对于那些真正出类拔萃的程序员来说,过上一种充实自信的生活并不困难。摆在每一个个体面前的主要问题还是在于能否出类拔萃,而这就需要我们重新找回思考的能力。具备强悍思考能力的人,也就具备强悍的解决问题的能力,而这样的开发者永远都是产业中的稀缺资源。
我认为这正是《代码之美》这本书的一个重要价值。合作的诸位大师级作者,给我们一个很好的机会,让我们能够一边阅读,一边思考,找回深思熟虑的智慧火花。这本书里所讲的每一个问题,可以说都是程序员在工作中会遇到或者至少会擦边的问题,既没有故弄玄虚的文字游戏,也没有携带了领域知识的私货,只有朴实而实际的一个个问题。虽然不是以提问的方式给出,但在整个阅读的过程中,我们还是能够找到很多机会与大师互动,不断地发现问题和解决问题。我在阅读中经常感到,看上去一个很简单的问题,却被这些大师们一层一层挖掘的如此深入,到最后阶段不由得令人感到战栗和震撼。看着这些智慧的光芒,我们不但可以领略大师之所谓称为大师的秘密,而且也认识到思考的真谛。因此,千万不要想看小说一样一带而过,那样会错过本书95%的价值!我们不是要阅读这些文字,而是要与文字背后的作者交流学习,一点一点把自己的心得记下来,对于作者提出的新问题,先自己思考,直接写程序尝试,争取跟上大师的思路,甚至可能需要反复几遍,才能真正读通这本书。这样的精力不会是白费的,读者应当认识到,当我们拥有这本书的时候,我们获得了怎样宝贵的机会,可以在相对比较短的时间里有效地提升自己的思考能力。这是一个机会,也是一次考验,我绝对相信,通过了这次考验的读者,会在思考和解决问题的能力上有一个大的进步。
我希望自己能够以这样的态度读这本了不起的书,以此文与其他读者朋友共勉之。
代码之美官方网站:http://www.china-pub.com/code
分享到:
相关推荐
对矩阵乃至线性代数的一次直观理解! 来源:http://blog.csdn.net/myan/article/details/647511
C++标准程序库(德)Nicolai M. Josuttis著; 侯捷/孟岩译 华中科技大学出版社2002.9
上海英雄会--05孟岩-以指数方法分析技术发展趋势
理解矩阵,很好的一篇博文整理,有助于了解矩阵内在的含义。有助于工程应用
c++标准程序库 侯杰 孟岩 学习stl的经典作品……
侯捷/孟岩译的C++标准程序库(C++ standard library).简体中文的pdf扫描版,内容完整。
原方案效果图设计师孟岩访谈PPT课件.pptx
开发建设项目水土保持工程概(估)算编制规定(孟岩).pptx
C++ 問世後不久,就成為物件導向程式設計領域的實質標準(de facto standard), 因此正式標準化的呼聲也就浮㆖了檯面。㆒旦我們有了㆒個可以依循的標準規格, 我們才可能寫出跨越PC 乃至大型主機之間各種不同平台的...
这是程序员杂志200801中的一篇,读了以后感觉很有收获,作者站在组件的角度来理解android。文笔犀利专业 洞察android的本质
C++标准程序库/the c++ standard library(简体中文完整版共829页),侯捷/ 孟岩译,由于csdn限制只能传15M以下文件,故分为两部分上传,此部分为part2,请查找part1一并解压。
对绝大多数理工科学生来讲,矩阵课程是最无聊的;但到了研究生阶段却发现哪哪都需要矩阵。。。。 本文从另一个视角教你看矩阵,用浅显的语言帮你理解矩阵底层的原理; 如果这么通俗易懂的描述你还是看不懂,建议您...
《并行多核体系结构基础》课后习题
侯捷/孟岩 翻译的超好的STL 容器 和 算法的书籍, 内容非常全面
c 标准程序库-自修教本与参考工具 侯捷 孟岩 译 巨细靡遗·井然有序(侯捷译序) 孟岩译序 目录 前言 致谢 1.关于本书 2.C 及其标准程序库简介 3.一般概念 4.通用工具 5....
我们需要一本全面而详尽的教本,带领我们认识数十个STL容器、数十个STL演算法,许许多多的迭代器、配接器、方程式 。。。的各种特性和用途。-- 本书 侯捷 、孟岩 翻译
SOA要做的第一件事情不是整合,第一件事情,当然还是重新梳理你的业务流程,把它SOA把它Service化,但是呢,在着手进行改造,第一件事情,打散你的业务,先破再立,不是简单的把过去的业务进行整合。记者:请问你是...
C++标准程式库, 侯捷/孟岩翻译, The C++ Standard Library
C++标准程序库(中文),自修教材,侯捷、孟岩翻译