风雨十年:一个老程序员的心里话(下)

来源:百度文库 编辑:神马文学网 时间:2024/04/30 08:48:57
风雨十年:一个老程序员的心里话(下)http://tech.163.com/school · 2005-03-18 22:15:57 · 来源: CSDN 第1页:风雨十年:一个老程序员的心里话(下) 第2页:风雨十年:一个老程序员的心里话(下) 第3页:风雨十年:一个老程序员的心里话(下) 第4页:风雨十年:一个老程序员的心里话(下) 第5页:风雨十年:一个老程序员的心里话(下) 第6页:风雨十年:一个老程序员的心里话(下) 风雨十年:一个老程序员的心里话(上)4.对教育的反思与教书生涯2002年下半年,我参加了北京高校青年教师岗前培训。一位杜教授的两堂课让我印象深刻,其中两句话让我深深震动:第一句话:我是一个教书匠,教书匠好啊,好就好在“匠心独运”!第二句话:做什么工作都要达到变魔术的境界!是的,作为一名教师,就必须起到一个传声筒与放大器的作用,将人类最聪明的人探索世界所得到的知识予以拓宽发展,以便让更多的人能够掌握这些知识并进而应用于实践,从而推动人类的不断进步。作为一名计算机专业的教师,就要努力把先进的计算机技术以尽可能高的效率传授给广大的学生,引导他们直接面对真实的软件世界,而不是向他们硬灌各种各样的理论知识,强迫他们去死记硬背以应付考试。我是一个小人物,才低学浅,但我真的认为高校计算机教育存在严重的问题。我在打工期间的开发经历,以及阅读国外相关资料的时候,发现学校中教的和社会上用的差得太远!都已经是什么时代了,许多大学还设立foxpro课程,难道就不能直接用现代主流的数据库如oracle,sql server,哪怕是access也好,来讲授数据库知识?还有所谓的计算机等级考试,呵呵,过了三级学生的我见过不少,但他们真正对软件,对计算机又理解多少?在中国甚至于升职称也要考计算机,我看了一本职称计算机考试教材,里面几乎原样照搬计算机原理课程中的相关章节,弄得我给搞艺术的大嫂讲了一个小时的二进制与八进制、十六进制的转换方法,她还是弄不太清。我都泄气了,对啊,他们搞艺术的,有必要去分清二进制的10与十进制的2有何分别吗?他们八辈子也用不上。但是考试用得上,呵呵,又是中国特色。拿c++来说,我讲过c++课,许多的国内教材对c++语法下了大功夫,却对体现了c++精华的stl只字不提,对代码背后所体现的软件开发思想与方法更是视而不见,我用c++也编过不少程序了,说句实话,我用到的特性不到c++的三分之一!于是就出现了这种怪现象,许多学生考试可以拿八九十分,给他一个简单的实际问题他却不知如何下手!还有uml,现在好象很火的样子,我们读研时就开了这门课,讲句实话,当时这门课我就没听懂,可后来我尝试着用c++用面向对象的方法来编程序,然后,由代码倒推回uml类图,一下子就明白了,原来uml只不过是一种描述面向对象系统的符号罢了,如果学生没进行过真正的oop,那就是为了学uml而学uml,根本就本末倒置。还有软件工程,我的感觉,一个人如果没写过一万行以上的程序,他看软件工程书就同看政治书差不多,每句都对,呵呵,就不知道为什么对。我完成了那个几万行的vb程序之后,再回过头看看理论,真是句句是真理!每个理论背后都是大量实践经验的总结。回想我做软件的体会,我发现所有的知识都是一个完整的体系,根本就无法区分哪些知识是本科的,哪些知识是研究生课程。于是,一种想法产生了,我主讲程序语言类的课程,那我就直接以真实的软件开发过程为主线,实践中需要什么我就讲什么。讲c++/,我就抛开了指定的教材,c++我讲了stl,我讲了ooad,两者我都讲了用rose进行双向工程,引导学生去学uml,一开始就用uml去描述自己开发的程序,何必浪费大量的时间去学结构化的编程方法?我现在简直成了面向对象技术的布道者,我下学期即将开设ooad基础选修课,从实际项目中抽取典型的案例,讲uml,讲rose,讲设计模式,讲软件体系结构,例子代码横跨c++/和.net下的开发语言(c#和vb.net),这对于我一个技术水平有限公司的董事长而言,实在有点不自量力,我鼻子上才插上几根葱,就想装大象?但我想,如果我能成功地激发出哪怕1%的学生的兴趣,能引导他们走向我认为是正确的方向,能启发他们思考,能直接面向真实的软件开发活动而不是学校的考试,就是我的成绩。我现在正在看引进的原版书籍---《设计模式解析》,时时击节赞叹!《设计模式》经典但难懂难用,而《解析》一书的两位作者既有丰富的从业经验,又对ooad进行了深入的思索,真知灼见时时展露于书中,我现在刚看了这本书的80%,基本上可以用一个成语来描述这部书:深入浅出!要做到深入浅出谈何容易!只有同时具备技术专家与文学作家素质的人才能做到!反观我们国内的大量教材,还有大量的垃圾论文(包括硕士,博士的,本科的就算了,我看绝大部分根本不能称之为论文),全都是“浅入深出”,作者自己都未必明白,就东拼西凑,摆出个样子吓人。本来完全可以用大白话三言两语讲清楚让人明白的道理,有人专门要绕一大圈,专挑用高深的数学公式来表达,唯恐别人容易理解,显得他水平不高!呵呵,什么东西一沾上“数学”,立马身价百倍。我就听过一个北师大的一个在读博士说过:如果一篇博士论文中没有一个数学公式,根本就不算是博士论文。这句话对不对,大家可以多思索。我数学不好,没资格讨论数学,我的直觉:数学是工具,但如果为了发表论文等目的而故弄玄虚,为数学而数学,是不合道理的。中国的学术水平与现状,大家都心知肚明,不用我废话了。现在每年都毕业大批的计算机专业学生,可其中真正具备扎实根基的可以很快胜任工作的我看只有5%(95%的学生不要扁我,不同意就当我在说胡话,我很瘦的,一扁就没了)。多年以来,我国高校计算机教育是按照计算机科学研究者来培养的,可事实上,有多少学生能从事计算机方面研究的能力?我看应分流,80%的学生按工程师方向来培养,20%的学生按研究者方向来培养,而且应大幅减少必修课的数量,计算机领域太深太广,样样都想教给学生,反而成了夹生饭,一个想从事硬件设计的学生和一个想从事软件开发的学生,能给他们一样的饭吃吗?学校应提供各种条件和资源去引导学生,激发学生的创造性与主动探索性,让他们去尝试,去发现自己的长处,最终找到最适合自己的发展方向。不这样做,中国软件后继乏人,没希望。