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