分类: IT业界
2012-09-14 19:32:09
《编程ING:人人都能学会程序设计》是最近炒得比较热的一本书,作者蔡学镛,任职于李开复的创新工场,是里面的首席架构师。以往读了很多大学教授写的编程书籍,这次试读了一下一位真正意义上的长年处于软件研发第一线的技术专家的力作,感觉还是有很大不同的。具体的阅读感受将在后文提及,先来说说这本书的适合人群。
正像作者在序言中提到的那样,这本书的目标人群是程序设计初学者。换句话说,从没接触过编程的、对编程很感兴趣但又不得其法的、稍微接触过一点编程但知识体系较为零乱的朋友们是本书的最佳受众。这本书从零开始讲解了程序设计所必须掌握的各方面要素,是一本入门级的值得一读的好书。
下面说说我对这本书的感受。第一点就是图文并茂的排版方式使人阅读起来很舒服。常言道:“一图胜千言”,枯燥的文字看多了总会让人厌倦,因而我们看到的很多书籍在适当的时候会用一些图片、图形或者表格加以形象化的解释;不过像本书这种几乎每页一图的方式我还真是头一次见过,毫不夸张地说,书中图片所占的篇幅不亚于文字了,而且每幅图片的信息量都很大,包含了很多有趣的经验和细节在里面,如果读者错过了对图片的欣赏,将是很大的损失。这显然对初学者是有利的,因为可以在很轻松的环境下像小孩子一样享受学习的过程,不至于丧失兴趣。
再一点是,本书对于编程语言的选择十分有特点。一提起程序设计,有经验的人容易想到的编程语言不外乎C、C++、Java,稍微冷门一点的可能还有PHP、Perl、Python等,但作者这六种语言一种都没选,而是使用了一种比较另类的脚本语言——REBOL。相信作者的这一选择是经过深思熟虑的,因为他在书中也做过解释,REBOL语法简单、功能强大,很适合初学者学习。这里选择用脚本语言(即书中所说的解释型语言),而不是编译型语言,乍一看有点违背常规,实际上仔细想来也是为了照顾初学者。编译型语言在生成可执行文件之前要经过预处理、汇编、编译、链接几个步骤,光是这些如果作者想要解释清楚恐怕就得再多写100页文字配图片了,更何况这些并不是程序设计的核心内容,采用这种方式最终恐怕要陷入喧宾夺主的境地。因此作者采用了一种脚本语言巧妙地避免了这种不利,因为脚本语言只需要特定平台的解释器就能在源代码基础上运行起来,而且还有跨平台的好处,读者并不需要特别注意自己所用的PC机的硬件平台,只是在下载解释器的时候选择对应操作系统的解释器就行了。应该说选择这样一种脚本语言介绍编程的思路是很别致的,对脚本语言感兴趣的有经验人士也可以借鉴本书的一些内容。
最后一点是,作者的确是用心在写这本书。之前说过,我们以前看到的技术书籍大多是由名校教授执笔写成了,其中当然不乏经典之作,但很多给人的感觉依然是教材类书籍,缺乏作者自身对编程的感受;而本书的作者作为软件架构师,对程序设计的理解的确和学院派的教授不一样。举一个例子,试读章节的第5章作者在解释代码如何被放置在内存中的时候以纸带比喻代码,并以剪刀剪断纸带比喻不同的代码段被连续放置在内存中,如下图所示:
而之后在介绍内存的堆栈模型时,更是以插图形式真的把堆叠的符号展示在读者面前,如下图所示:
我想如此生动形象的介绍是很有利于读者尤其是初学者领会的。
说了这么多,总结起来一句话,那些希望开始学习编程的人们不妨从《编程ING:人人都能学会程序设计》开始。