走进图书大厦,纵观软件开发类的书籍,简单的可以概括为以下几类。

第一类是工具说明书性质的。这类主要是教导一个开发工具如何使用,或一个比较主流的框架的使用配置说明。(其实,从广义、或从本质的角度来看,框架也是个工具。一个不能完全独立工作的工具,组件性质的工具。)这种书类似于我们买手机时的使用说明书。与之不同的是,其一,手机说明书内容少些、纸张小些,其二,只是没有书号,没有摆上图书大厦的书架。倘若一款手机足够普及,功能也比较复杂,说明书定然也会足够厚,纸张足够大。如果市场需要的话,挂上一个书号,这种说明书走上图书架也不是不可能。对于这类书,个人一般只是书到用时才特意买来查阅,否则只是当作开拓眼界和思维、丰富专业学识大体翻翻了解即可。必要的话,取其精华、去其糟粕,再从里面汲取一些建设性的思想。第二类是开发语言说明书。主要是介绍这门开发语言的发展史、开发环境、语法结构等。对于这类书可以当作入门学习用,也可以当作桌前字典待到用时来查。第三类是实践类的。这类说得夸张些的话,做完一个中大型的系统之后,把系统操作手册、系统设计说明书适当的组织起来,并贴上足够的关键代码,然后结合一定文字说明,就可以整理成书出版了。

主要是这三类,其他的或许还有些偏重设计、注重思想类的,诸如专讲设计模式、或编程思想等,但这些较之前三种,微乎其微,少之又少,几乎可以归为特类。这些特类的书,看其作者,一般是行业里的精英,甚至大师级别的人物。或许行业精英很多,但行业大师不多,能行文著书、又有空闲时间的大师恐怕更少了。所以,不难理解为什么市场上的软件行业书籍会是这么一种现状。

当然,在此也定然不是排斥、或贬低这些“主流”类的书。作为一般的软件开发从业者的角度去看,从现实的角度考虑,可能这些“主流” 类的书对我们更为实用。因为毕竟我们有职责本分,要编写代码,要熟悉一门开发语言的语法,要知道一个工具如何使用、或一个框架如何配置。相反,那些“大师级”的特类书籍只是待到我们能够闲下来时,细吞慢嚼的经典,乃至珍藏品。

偶尔,不禁思考,软件行业作为当今的一个热门行业,从业人员这么多, 而且每年仍会不断的从大学里,甚至每月会不断的从培训机构里“批量生产”出成千上万的程序员,为什么就没有一些专门描述程序员生活、阐述软件开发本质的书。旁观其他行业,诸如警察、军人、老师、民工等,小说家把他们的职业写进了故事,导演把他们的生活搬上了屏幕。相反,程序员们的生活现状,所思所想,只是杂乱无章的散布在网上各个论坛、博客里,并且完全被那些软件开发问题、和交流的贴子所覆盖、淹没,难以形成像模像样的书籍,并且印成铅字,走上书架,走进纸质读者的眼前。此外,对于软件开发行业本质的思考,不管是网上的交流贴子,还是变成铅字的书籍,更是微乎其微,甚至可以说没有。

不是自谦,虽然从事软件开发也有数年,但自认为还算不上一位优秀的程序员,离大师就更远了。然而,尽管如此,这几年来,对软件开发几乎一直有些思考。对编程语言的思考,对编程本质的思考,对软件开发行业的思考,对软件开发和现实生活的思考。虽是不多,也可能不完全准确,但想必仍是有一些可取、或值得参考、借鉴的地方,因此,就有了这么一些文字。衷心的希望这些文字,能给你带来帮助。