今天我们怎样学软件技术,怎样教软件课程 ================== 注: 本文是我这几年以来针对软件技术学习与教学方式所思索问题的一个阶段性总结,写出来与 朋友们交流。 金旭亮 2008-5-9 =============================== 自从人类社会进入信息时代,知识总量急剧膨胀,软件技术更是进入了一个快速增长的新阶段,新的理论不断提出,新的技术不断出现,让软件从业者无不感到巨大的竞争压力。就拿微软技术而言,老的Win 32还没弄明白,2002年就蹦出了个.NET,桌面开发刚熟悉了Windows Form,2007年又变成了WPF,Web开发更是变化巨大,先是老的ASP退出江湖,ASP.NET取而代之,没多久又加上了AJAX,晃一晃眼Silverlight又在那儿向你招手……,从2002年发布.NET 1.0开始,5年左右的时间,.NET版本就从1.0一路蹦到3.5,原有的许多技术或被淘汰或被更新,短短几年时间,微软技术的各个领域几乎全都洗了一轮牌。许多人都感叹,老的东西还未掌握,新的东西又出来了!然而,“人在江湖,身不由已”,既要在IT业里混,就得认命。面对着这一切的挑战,该怎么办 也许经验丰富的你会坚持“以不变应万变”的原则,结果却可能发现自己成了一只迟钝的鸵鸟,知识老化,面临着后辈强劲的冲击。 也许你不断地追踪最新技术的进展,但却疲于奔命,最终发现自己不过是一株“技术风暴”中的墙头草,永远跟在别人屁股后头跑,根本就看不到超越的希望。 我是一名IT教育工作者,有过十多年的软件技术自学经历,也有五年多的从教生涯,承担着向青年学生讲授现代软件开发技术的职责,这么些年来,我在高校中先后讲授过“Java/C++程序设计”、“面向对象分析与设计”、“.NET技术基础”几门与软件开发技术密切相关的课程,接触到了许多学生。由于工作的缘故,我一直在琢磨着这样两个问题:软件技术应该怎样学,又应该怎样教 学习是我的骨头! 著名作家王蒙 [1]在其自述——《我的人生哲学》一书中说:“我是学生,学习是我的骨头,是人生的‘第一智慧’与‘第一本源’,思想美丽,学习着也是美丽的”。在王蒙先生看来,人生就是一个不断学习与成长的过程,在这个漫长的过程中,人应该通过不断的学习而完善自身,获得智慧。这应该是学习的本来面目与最终目的。 如果能从这个角度来看待学习,学习就不是一个负担了。然而,现实中我们大都是为了“谋生”而学习,说穿了,软件技术不过是实现个人攫取“名”和“利”的一种手段罢了,我怀疑,有多少人真能达到王蒙先生的那种境界 当前浮燥之风弥漫社会,诺大的中国,很难有人能静下心来钻研技术和做点研究。我漫步于大学校园,曾见过“XXXXX让你10天成为.NET 程序员!”的大横幅在风中飘扬,我不禁苦笑,如果10天就能培养出一名.NET程序员,那象我这样愚笨之人,居然学了那么多年还无所成,岂不应该赶快找块豆腐一头撞死 因急功近利而想速成,是软件技术学习的大敌。 务于精熟与观其大略 南宋人郑樵所著之《诸葛亮传》说:“初,亮在荆州,与元直及汝南孟公威、颖川石广元游学,三人务于精熟,而亮独观其大略。” 请注意诸葛亮与元直等三人的学习方法的重大差别。元直等“务于精熟”的学习方法,其实正是当前我国高校中所占据绝对主导地位的思想,在这种主导思想下,许多课程的教学安排是讲授得细之又细,比如计算机系所学之高等数学一般要讲两个学期,而象北大所编之本科生教材《离散数学教程》,更是按照3个学期共220学时设计的。我怀疑这种门门课都深挖细掘的教学方式,在现在这个知识爆炸的时代,是不是也应该有所调整知道,一个学生在学校里使用的学习方法,将会不自觉地跟随着他很多年,而这种学习习惯,恐怕难以应对软件技术的现实,问一下:你现在有多少的时间和精力对各种技术(哪怕是很重要的主流技术)进行“深挖细掘” 是否在软件技术的学习上和教学上都有所调整,走一走“观其大略”的路子 IT作者,请把厚书写薄! 既要学习,就要选择好书。请到书店看看,有关软件开发的书往往占据科技书店的半壁江山。国内计算机图书市场前几年是泥沙俱下,读者在网上怨声载道。这几年好些了,各大出版社或影印或翻译或原创,都出版了许多有一定质量的书籍,但我感觉好书仍然不多。 现在不少的技术书籍,一本比一本厚,装帧越来越精美,相应地价格也涨船高,但其中的“干货”却很少。如果给书籍减减肥,不仅节约读者金钱,更节约了读者宝贵的时间和精力。 我看过不少的书籍,其实要讲的东西就那么多,浓缩一下,许多篇幅可以压缩三分之二还多。不要将书籍变成满是图片的“操作手册”,或整页都是代码的程序清单。 我个人感觉,一本真正有价值的技术书籍,要不能引发读者深入的思索,要不就能帮助读者形成对某个软件技术领域的全局观,在此全局观下去学习具体的编程技术,就能事半而功倍。 著名数学家华罗庚先生曾有言: 学习数学要先把书读厚,再把书读薄。移到软件技术书籍这一领域,我觉得把书写厚很容易,而要把厚书写薄很难。 期望能看到有质量的“薄书”来帮助我们高效地学习软件技术! 互联网带来的“见木不见林”学习困境 软件技术是个庞大的体系,任何一个软件学习者都很容易陷入“见木不见林”的困境,而互联网如果应用不当,会加剧陷入这种困境的可能性。