本文共 1183 字,大约阅读时间需要 3 分钟。
中国不乏优秀的程序员,也不乏学习能力很强的学生,但是由于接受传统教育思维模式根深蒂固的影响,学生在学习一门编程技术时,仍然停留在注重研究基本原理,注重算法实现的阶段,结果学习这种技术很长时间以后,还是不知道这项技术有什么具体的应用,这种技术到底能够完成什么样的项目。久而久之,学生就会对一项技术的应用产生迷茫的思想,很难适应日益发展的新技术的需要。
我要表达的意思并不是让学生不重视对基本原理的学习和研究,对算法设计的实现学习,而是强调这样一个学习过程:先快速入门——掌握技术应用——根据实际需要研究原理和基础算法——进行算法设计的优化分析。。
在作为一名软件职业培训中心的教师,在授课实践中,我发想只要对学生进行一些正确的引导,加强学生动手实践能力的培养,学生其实很容易就快速掌握入门技术的。先讲一个故事。例如在介绍JAVA中的数组时,一个很基础的问题就是实现数组元素的排序问题。学过C语言的学生都知道冒泡排序算法,但是又有多少学生能够在5——10分种之内写出冒泡排序算法呢?我做过一项测试,在一次讲座中,到场的大约200名大学计算机专业二年级以上的本科学生中,谁能在10分钟之内正确的设计一种冒泡排序算法,当场奖励金士顿1G优盘一个。结果我在现场准备的50个优盘一个也没能够送出去。在JAVA语言的教学中,学生同样会考虑过去C语言是怎样写冒泡算法的,现在使用JAVA语言应该如何设计冒泡算法去实现数组元素的排序问题。其实这个问题已开始学生就陷入了一种误区,就是面向过程的程序设计思维。JAVA中实现数组元素的排序,可以使用java.util.*包中的Arrays类的静态方法sort方法实现。一行代码就可以完成对数组元素的排序(升序排列)。这就需要从面向过程的程序设计思维转换到面向对象的设计思维。我们讨论的问题实质是数组元素的排序问题,需要的结果是实现元素的有序排列,只要能够解决掉这个问题,就是好的;第一步其实并不关心你是使用了冒泡排序算法还是快速排序、插入排序等等。如果我们第一步就陷入对算法和数据结构的讨论中,不但不能快速实现结果,而且很多学生立刻就会感觉程序设计的复杂而放弃学习。第一步重要的是实现结果;第二步才是要实现数据算法的设计。
其实这样的案例比比皆是。在进行JDBC技术学习时,重要的是先通过一些简单的案例让学生能够理解MVC的实现过程,然后再深入到DAO模式的设计。其实只要引导学生理解MVC的实现过程,快速实现一个案例,接下来具体是通过GUI方式实现还是通过Struts技术实现,或者通过Servlet技术实现只是一个简单的问题了。
所以我们强调快速实现和思路引导,强调掌握正确的学习方法。好的学习方法可以让你事半功倍,不仅仅可以快速掌握一门技术应用,而且可以快速上手参与项目开发。中国有多少JAVA程序员都是经历了这样一条路走出来的啊!
转载地址:http://sovdi.baihongyu.com/