`

关于《编程的奥秘》一书未说完的话

 
阅读更多
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>

关于《编程的奥秘》一书未说完的话

第一部分 写作缘由

20061月,在春节前的一星期,我从出版社终于拿到了样书,不久,在海淀图书城的科技书店中也看到了这本书,只不过被摆在一个很不显眼的角落,不知道有没有读者会注意到我这本“拙著”?

写作此书时,我正在北京理工大学同步讲授本科通识选修课《.NET软件开发技术基础》,期间陆陆续续地将本书各章节打印出来供学生阅读与参考,一年下来,用完了两箱打印纸与两个硒鼓!此书从200411月开始写,2005年春节也没有休息,一直到7月份才正式完成。当时,完整的打印完本书,需要A4纸近900页。书稿送到电子社博文视点公司,在他们的建议下,对内容进行了压缩与调整,部分内容被删除,部分内容移入光盘,即使这样,全书仍达到了近600页的容量,仍是一本“很厚”的书。作为作者,我希望书价不要过高,但出版社要考虑到多方面的商业运营成本,所以书的定价低不下来,65元,相信对于不少读者而言,这是一个相对高的书价,我只希望买了这本书的读者看了之后觉得还是买得值的。

这本书的写作我花费了巨大的时间与精力,书与读者见面之后,我原先盼望书早些面市的心情转成了有点忐忑不安的状态,不知读者对我这本书的评价如何——鼓励支持还是扔我一脸的臭鸡蛋?最怕的就是泥牛入海,无声无息。

为什么写这本书?有很多的原因。

1)一种责任感:我接触到了很多计算机专业的学生,他们在学习与生活的过程中有着许多的困惑,却很少有人能给予他们一些建议。中国的大学已变成了一个以盈利为目的的商业机构,从教师的角度而言,整个教育体制对教师的要求是科研为大,教学则为鸡肋。这种体制下,高校教师的大部分精力被科研占据,围绕着课题、论文和项目在打转。最大的损失则由学生承担,学生付出了高额的学费,买到的是低质的教育产品,毕业之后却要面对激烈的就业竞争,面临着“毕业即失业”的困境,实在是很惨的“冤大头”。

作为一名小人物,我个人对这种现状是无能为力的,只能从良心出发,从责任感出发,尽一名教师的职责,希望能给学生一些切实的帮助与忠告,让他们少走弯路。

2)当前中国浮燥的现实。我承认,我在目前的这个社会现实中静不下来,无法做到“板凳甘坐十年冷,文章不写一句空”这种境界,但我看到的浮燥也太不象话了,别的不说,就拿写编程技术的书籍而言,国内的作者没几个能静下心来专心写作的,许多书抄来抄去,千篇一律,有的书我猜测作者的工作就是COPY PASTE,这样他一年就可以出好几本书(奇怪的是,再烂的书好象也都有市场,真搞不懂)。于是我想,我至少可以做到认真地集中精力地去写一本书,我还真不相信我就比不过这些所谓“高产”的专以生产“假冒伪劣”赚钱的人?我想试一试,“真实”是否能打败“虚假”?

3)我想创新。我是个书呆子,不通人情世故,在现实生活中比较吃亏,为什么会这样?仔细想起来这应该与我从小受到的教育有关,从小我就只有一个念头——当一个父母与教师眼中的好学生,读了这么多年的书,得到的却是一个僵化的头脑,被无数的各种各样的条条框框限制死了的头脑。越来越感到:一个创意勃勃的大脑,一个客观而灵活的思维方式,远远比一大堆知识的堆积要重要得多。人最需要获取的是智慧,而不是知识。本来这种能力许多人在很小的时候是有的,但后来都被多年的教育给摧残得差不多了。

我已30多岁了,思维方式已基本定形,难于改变。但既然认识到这点,就要努力去尝试改变,失败了也总比不试好。

所以,我在构思这本书的时候,想得最多的就是如何能写出自己的特色,书中原创的内容高达90%以上,书中所有重要的大实例都是我自己开发的。多多少少也编了不少程序,写本书还要去大抄别人,有这个必要吗?

书出版了,就象丑媳妇迟早要见公婆,我把我的作品奉献给大家,骂也好,赞也罢,置之不理也行,重要的是我已尽力,就目前我的水平,书也只能是写到这样子了,问心无愧。我想,就算是书写得不好,至少拿来垫枕头还是蛮合适的,其厚度刚好!

第二部分 学习建议

这本书是依据自学者的要求而编写的,对于有志于走上软件开发之路的软件开发爱好者而言,掌握科学的自学方法非常重要,只有这样,才可以少走弯路,在付出同样的时间与精力的前提下,学得更快,从而可以走得更远,达到更高的高度。虽说“失败是成功之母”,但如果能争取“一次成功”,又何必歌颂“失败后的成功”?

《编程的奥秘》一书分为四篇,13章,光从目录上看好象内容很杂,但实际上这些章节都是有着内在的联系的,我是采用这样的方法:先整体给读者一个对技术的总体印象,然后再针对某个技术领域细化分析,最后再采用一个真实的达到一定规模的例子来将零散的技术组合在一体,成为一个实用的程序。

这本书我建议读者能按顺序阅读,不要跳着读。如果您缺乏开发经验,更是如此。当然,在具体读某章时,部分小节可以略过一些具体的细节。但在阅读下一章的内容之前,前面章节所介绍的技术应有一个总体的印象。

学习本书我最强烈要求读者的就是动手!第一篇和第二篇中的许多小例子,请基础不好的读者一定要手动地敲入代码,并思索为什么程序运行结果是这样的,然后,试着改改程序代码,看看修改的结果是否符合您原先的设想,如果不一样,为什么?请注意,程序运行出了意料之外的结果,然后经过思索明白了其中的道理,正是在这一过程中您对技术理解深入了一步。至于后面的大的实例,最好的方法是先运行书中的程序,弄清程序功能,然后,不看代码,您自己先试着编一个(因为大的实例往往都放在每部分的最后,其中涉及到的技术点都在前面的小节中介绍过了),完成后,才看作者的代码(同时参照阅读书中对实例进行介绍的部分),对比一下,哪部分您写得好,哪部分您不如作者写得好,这样虽然书看得很慢,收效却是最大的。

另外,每章其实还有一个“实践与探索”,为了节省篇幅,放在了光盘中,其中的内容也是很重要的,请读者注意在学完每章后看看。

下面介绍一下具体章节的学习建议:

1.自序:我给出版社编辑看这部分时,他们都很惊讶,很少见到一本书有长达十多页的“自序”,但这是全书的总纲,非常重要,其中的思想贯穿于全书,您可以不同意我的部分观点,但请务必认真阅读,有不同看法我们可以在网上互相交流。

2.第一篇“初识”。这部分的两章都非常基础,看得相信一定很快。但读者遇到的第一个难关可能就是安装VS.NET 2003失败。其主要原因就是Windows组件的更新问题,建议Windows XP下安装,并且,在安装选项中只选“Visual Basic”语言,学习本书除了“混合语言开发”部分之外的所有技术就没问题了。大多数读者在安装时,都贪多,选择安装VS.NET的全部功能,但这需要在安装IIS并设置FrontPage服务器扩展,实无必要,另外,如果安装了瑞星之类的防毒软件,安装前请先关闭卸载它们。

2章的MyEditor仅是初级版,在第13章下还有一个“专业版”,学到时再看。

3.3章介绍VB.NET的面向对象特性,非常重要,其中的小实例一定要手动敲入并尝试修改。3.4节开发一个应用向导框架是一个重点章节,请读者先自己编一个,再看我的设计方案,从中可以体会到结构化编程与面向对象编程的不同特点。

4.8章的8.2节是重点章节——开发一个“迷你型”的客户信息管理系统,请读者同样先自己写一个,再看8.2.2节,重点理解迭代的软件开发过程,并与您自己在开发这个软件的具体开发顺序相对照,想想:为什么要使用迭代开发这种方法?这样做是不是太慢了?

8.2.3节(《养成良好编程习惯》)看似无关紧要,但其重要性却必须强调。细节决定成败,程序代码写得是否规范体现了一个职业程序员与一个业余软件开发爱好者的在代码质量上的差别。

5.10.2节的重要性在于向读者展示如何阅读一个有一定代码量的面向对象程序,这种分析代码的方法是很有用的,想想目前在互联网上有多少可供学习与借鉴的开源代码!大量的开源项目规模不小,许多是用面向对象思想开发设计的,其中可能没有main函数,那从何入手?

6.11章以理论为主,可以当成科普文章看,但请仔细体会第11.2.3节中介绍的那个“简单得不能再简单”的小例子。这个例子其实是对现实软件中常见的“外观与功能都还行”,但内部的代码“看了让人吐血”这种现实的模拟,这也是许多中国软件的毛病所在。

7.这是全书的聚焦点。如果说前面的12章比较散的话,第13章将所有内容集聚在一起,介绍开发出一个接近万行的工具软件开发过程,已非常接近真实的软件项目开发实践。怎样知道您已把握了这个软件?看两点:

1)如果要扩充PersonalInfo的功能,您知道如何下手。

2)如果发现了PersonalInfoBUG,您知道如何更正它。

我希望读者能对我这个小软件不断地完善,并将自己的工作与其他的读者共享。

希望我这篇小文能给购买了本书的读者一点帮助,也请相关的技术高手们不要光顾着自己的项目与技术探索,抽些时间给许许多多的初学者一些建议,帮助他们迅速提高技术水平,不也是一件有意义的事?须知“一花独放未为好”,“万紫千红才是春”



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=588535


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics