`
wodamazi
  • 浏览: 1419603 次
文章分类
社区版块
存档分类
最新评论

《.NET软件技术学习与实践》后记

 
阅读更多

本书从200411月开始写作,一直到20057月定稿,整整写了9个月的时间。而这本书的成型,却至少经历了10年的酝酿、两年的技术准备。回想起那埋头写作的日日夜夜,回想起三年来我在大学教书的所见所闻,回想起那远去的令人激动的持续了10年的学习计算机技术的日子,真是百感交集……

这本书很独特,在中国你找不到另一个作者以这种方式来写一本编程技术书。我不想把这本书变成编程技巧的大汇编,虽然其中的确介绍了许多的编程技巧,但这种编程技巧在因特网上太多了,有关这方面的技术书籍也是汗牛充栋,多我一本不多,少我一本不少,我何必重复这些别人已做得很好的工作?

决定写这本书时感觉很惶恐,我常想,自己不过是一个普普通通的热爱软件技术的人,有什么资格去谈论编程?应该由真正的技术专家和高手来谈才有说服力。然而,这些人往往没有时间来写书,或者虽然写了,但写得太专业,绝大多数人都看不懂。

我是一名教师,教师的基本职责就是“传道、授业、解惑”,教师在整个人类社会中起的作用,不就是将已经过实践证明了的知识消化整理,然后把它们用通俗易懂的方式尽可能高效率地传播出去,培养出更多的人才吗?而且,把自己走过的路告诉后来者,让后来者至少不重复我走过的弯路,不也是一件有意义的事?

于是读者最终见到了这本书。

我写这本书很认真。在两年的学习.NET技术生涯中,我看了上百本国内出版的.NET技术书籍。很悲哀的是,我认为称得上精品的书籍却找不出几本,触目皆是粗制滥造的质量低劣之作。我常想,现在国家制定了各种法律和法规去制裁假冒伪劣商品,那么,粗制滥造的技术书籍造成的危害也不少,为什么就没有人去打击呢?我对于这些垃圾书是无能为力的,留下几句苍白无力的呐喊也没有任何作用。我惟一能够做到的是不让我的书成为被读者视为“垃圾”的这些书中的一员,为此,只能尽心尽力地把书写好。在写作过程中,一些章节甚至是三易其稿。然而,虽然我很认真地写书,但受个人能力与技术水平的限制,书中存在的疏漏在所难免,还请读者海涵。

这本书虽然主要介绍的是.NET软件技术,然而,.NET技术仅仅是个载体罢了,真正想表达的是我个人对软件开发与计算机教育一直在思索的一些东西,散见于全书的各个章节之中,有心的读者自会发现这些思想与观点。

与美国等发达国家相比,软件产业在我们中国很落后,需要大批优秀的软件人才去为之努力。然而,最可怕也最悲哀的地方也在这里。这么多年了,我们的教育体制出了问题,每年全国大学毕业生有数百万人,其中至少有数十万人是计算机及相关专业的,其绝对数目相信不会比任何一个国家低。然而,这一大批毕业生中,真正达到合格的软件工程师水平的又有多少?教育出了问题,其后果是极其严重的,它会毁掉整整一代甚至是几代人,葬送掉整个中华民族的未来。

编程是一种技能,是一种完全可以培养的技能,而我们的高校计算机教育培养出来的学生,真正具有这种技能,可以胜任工作要求的太少。许多教师很努力地教,许多学生很努力地学,然而效果却不好。我可以很肯定地说,在目前的教育体制之下,如果一个学生只满足于把学校里教的每一门计算机课都考上八九十分,而不去主动地学习一些“鲜活”的东西,那么,即使到了毕业,这名“好学生”也成为不了一名“合格的”软件工程师。他一定会在毕业后经历一个把过去的一切打碎,然后按照实际工作的要求重新学习的过程。此过程短则半年一年,长则三年五年。不经历此过程,他就无法真正胜任实际的软件开发工作。这是多长的弯路,多么大的资源浪费!

为什么会是这样?

因为目前高校计算机教育中普遍重理论轻实践、重知识轻能力的现实!

我是从自学之路走过来的,我的编程能力主要是自己培养出来的。怎么培养?很简单,这么多年来我编写过近百万行代码,古人云:书读百遍,其义自见。我认为,读书与编程是相通的,蕴含着同样的道理。我也接触过一些开发能力很强的人,他们也几乎都是“自学成才”!

但只靠自己摸索,走弯路是不可避免的。我想,像我这样热爱软件技术而又乏人指导的人一定在中国有许多,也许是占大部分。10年编程,略有所得,我觉得有责任将自己在实践中悟到的一些东西与大家分享,我只想表达出自己对于编程的看法,回答出“怎样编程”这个既简单又复杂的问题,努力勾勒出一棵软件技术的大树,为许许多多的学生和软件开发爱好者提供一个学习软件技术、培养编程技能的路线图。

虽然在书中所提到的许多观点与技术都经过了我个人的实践检验,然而在此我想对读者说的一句话就是:请怀疑一切。一个理论,一种方法,不管它是由什么人说出的,只能由实践去证明它的正确性。要有追求真理的勇气,要敢于独树一帜!其实,中国最缺的不是掌握特定技能的技术人才,而是具备创新精神的开拓型人才。创新请从怀疑开始。

我自认为本人的技术水平在整个中国软件开发从业者中仅处于中等水平,但看到过、听说过也接触过一些优秀的软件人才,我常常思索这样一个问题:是什么使他们如此出色与优秀?我阅读过古今中外一些著名的成功学著作,发现这些人之所以成功与出色,其道理早就被哲学家、思想家和智者谈到过无数次了—他们首先是一个品格高尚的好人,然后才能成为某个行业出类拔萃的人才。还是那句老话:欲学做事,先学做人。

对于许多还在求学的年轻人来说,必须高度重视诸如与人为善、毅力、乐观、勤奋等思想素质的培养,必须在计算机技术之外,广泛地学习社会、历史和经济等人文社会科学的知识,以开拓自己的视野。具备了这种“软素质”,掌握像编程技术这样的“硬技能”也就不在话下了。只要肯努力,有学不到手的技术吗?请把学习编程与提高自身素质结合起来!从整个人生的角度上看,“软素质”比“硬技能”更重要,一个能“软硬兼施”的人,必然是一个优秀的人才。

征得著名计算机科学家、原微软全球副总裁李开复博士的同意,我把他写给中国学生的四封信收入了本书的配套光盘。希望读者在学习本书所介绍的编程技术的同时,好好地读读这四封信,努力将其中的原则应用于实践,定能获益良多。我2003年暑期写的一篇自传—《一个普通IT人的十年回顾》,也一并收入光盘,这篇文章真实地记录了我从1993年到2003年的人生经历与自学过程,期望读者能从我身上汲取教训,不再走我曾走过的弯路。如果读者能不仅达到而且最终远远地超过我的技术水平,那就是我作为一名教师和热爱软件技术的开发者所乐于看到的。

本书的最终面市,离不开许许多多朋友的鼎力相助,离不开出版社编辑和美工等相关人员的辛勤劳动,在此深深地感谢他们!

最后,表达一句我们心中的美好愿望:

大家一起努力,中国软件一定能铸造辉煌的明天!

金旭亮

20057月稿于北京紫竹院

分享到:
评论

相关推荐

    软件需求全过程实践pdf

    第5章 软件需求与风险管理 37 5.1 软件风险管理基础 38 5.1.1 风险管理的要素 38 5.1.2 编写项目风险文档 39 5.1.3 制定风险管理计划 40 5.2 与需求有关的风险 41 5.2.1 需求获取 41 5.2.2 需求分析 42 ...

    数据结构学习(C++)——后记.docx

    数据结构学习(C++)——后记

    软件工程-程序设计实践

    目 录 译者序 前言 第1章 风格 1 1.1 名字 2 1.2 表达式和语句 4 1.3 一致性和习惯用法 8 1.4 函数宏 14 1.5 神秘的数 15 1.6 注释 18 1.7 为何对此费心 22 ...后记 195 附录:规则汇编 197 索引 200

    软件工程思想-讲述软件开发和做程序员的道理

    软件工程主要讲述软件开发的道理,基本上是软件实践者的成功经验和失败教训的总结。 第一章 软件工程基本观念 1.1 软件工程的目标与常用模型 1.2 软件开发的基本策略 1.2.1 复用 1.2.2 分而治之 1.2.3 优化——折衷...

    软件工程专业-大学生职业生涯发展与规划结课作业.doc

    软件工程专业的大学生职业生涯发展与规划结课作业: 内容包括: 一、学涯宣言 二、自我认知 (1)基于软件测评法的自我认知 (2)基于360度分析法的自我认知 (3)基于橱窗分析法的自我认知 (4)基于实践经历的自我...

    软件工程思想

    <br/>简言之,林锐对软件工程实践的积极思考、轻快而不失深邃的文笔及其言行,都是出色之处。 <br/>正由于此,而不仅因为是同行,我才不惭浅陋,接受他的要求,荣幸地成为本书的第一位读者,并在本来应是...

    网络扫描技术揭秘 原理、实践与扫描器的实现.(机械工业.李瑞民)(扫描版).part1(下载注意,有2部分)

    本书系统地介绍网络扫描器的概念、原理与设计方法,包含作者十几年来在网络技术应用实践中不断总结的经验与技巧。通过大量代码揭示了网络扫描器的实现方法。书中代码均以Windows XP3和Visual C++6.0为默认工作环境。...

    软件加密技术内幕

    第5章 软件加密技术 5.1 反调试技术(Anti-Debug) 5.1.1 句柄检测 5.1.2 SoftICE后门指令 5.1.3 int68子类型 5.1.4 ICECream子类型 5.1.5 判断NTICE服务是否运行 5.1.6 INT 1 检测 5.1.7 利用...

    五年级数学:《小数乘法》单元教学后记.pdf

    五年级数学:《小数乘法》单元教学后记.pdf

    SOA实践指南-分布式系统设计的艺术.pdf

     2.7 对比soa与分布式对象  2.8 soa术语  2.9 总结 第3章:服务  3.1 服务  3.2 接口和契约 . 3.3 额外的服务特性  3.4 总结 第4章:松耦合  4.1 对容错的需求  4.2 松耦合的形式  4.3 处理松...

    软件加密技术内幕 软件加密技术内幕

    第5章 软件加密技术 5.1 反调试技术(Anti-Debug) 5.2 反跟踪技术(Anti-Trace) 5.3 反加载技术(Anti-Loader) 5.4 反DUMP技术(Anti-Dump) 5.5 文件完整性检验 5.6 反监视技术(Anti-Monitor) 5.7 反静态分析技术 ...

    软件需求(用于了解软件需求的过程)

    005 第05章 软件需求与风险管理 第二部分 软件需求工程 006 第06章 建立项目视图与范围 007 第07章 寻找客户需求 008 第08章 聆听客户需求 009 第09章 编写需求文档 010 第10章 需求的图形化分析 011 第11章 软件的...

    北师大版二年级数学(下册)教学后记.docx

    北师大版二年级数学(下册)教学后记.docx

    后记范文.doc

    后记范文.doc

    【后记】win7下安装php+mysql+apache+phpMyadmin+wp+wiki.docx

    【后记】win7下安装php+mysql+apache+phpMyadmin+wp+wiki.docx win7下安装php+mysql+apache+phpMyadmin+wp+wiki 第一部分 安装说明 第二部分 apache 第三部分 php 第四部分 mysql 第五部分 phpmyadmin 第六部分 ...

    软件工程(英文版 第8版) part1(共两部分)

    中文目录如下 前言 第1篇 概览 第1章 概述 第2章 社会-技术系统 第3章 要求极高的系统 第4章 软件过程 第5章 项目管理 第2篇 需求 第6章 软件需求 第7章 需求工程过程 ...第15章 实时软件的设计 ...译后记

    浙江大学--软件工程.rar

    2.5 向错误与失败学习 2.6 提高综合素责 2.7 小结 第三章 项目计划与质量管理 3.1 项目计划 3.1.1 知己知彼 3.1.2 进度安排 3.2 零缺陷质量管理的观念 3.2.1 高目标 3.2.2 可执行的规范 3.3 软件的质量因素 3.3.1 ...

    程序设计实践 (pdf)

    目 录 译者序 前言 第1章 风格 1 1.1 名字 2 1.2 表达式和语句 4 1.3 一致性和习惯用法 8 1.4 函数宏 14 1.5 神秘的数 15 1.6 注释 18 1.7 为何对此费心 22 ...后记 195 附录:规则汇编 197 索引 200

    TRACE32软件的Practice脚本 cmm脚本.zip

    Practice脚本是Lauterbach公司提供的一种脚本语言,运用于其TRACE32软件当中,非常容易上手、并且功能强大。 我在文章https://thanklife.blog.csdn.net/article/details/119608383做了简单说明 先加后记:在搜TARACE...

Global site tag (gtag.js) - Google Analytics