学习编程热背后的冷思考
近年来,“编程”成了一个热门词语。大学生在学编程,中小学生在学编程,甚至连幼儿园的小朋友也加入了学编程的队伍。编程到底该不该学?用什么样的心态来学?该学哪些东西?我们要静下心来认真地思考一下这些问题,不能一味地盲从。
应当说,编程技术是时代发展的产物,是提升学生核心素养的新载体。尤其是在信息技术高度发达的时代,每个人都应具备一定的包括编程在内的信息素养。编程应该学,是毫无疑问的。但是,盲目地崇拜它就有一点过分了。
首先,编程并不神秘,只不过是一种操作程序而已。编程就是让计算机代为解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。为使计算机能够理解人的意图,人类就必须将解决问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这个过程能培养学生的动手动脑能力,激活他们的思维,激发他们的想象力。因此,从一定意义上来说,编程又是一门实践类课程,是对其他课程的有益补充。
其次,学习编程不能勉强。编程要求学习者有一些入门知识和技巧。因此,“赶鸭子上架”是不行的,只会摧毁学生的探究兴趣,扼杀他们的学习热情,抑制他们的思维发展。也许他们在教师的指导下能获得一定的操作知识,但这种知识只是一种“假知”,并不是在掌握理论知识后的熟练运用,与提高能力、提升素养关联度不大。
再次,学习编程不能操之过急。对于低龄的学生,教师要培养他们的学习兴趣,激发他们对科学探究的热情。然后,随着年龄的增长、学段的增加,逐渐提高学习的难度。在学习过程中,要善于培养学生的耐力、毅力。有时,即使是卓有成就的程序员也会被简单的小问题难住。所以,在遇到问题时,要让学生学会放松。在成为熟练的程序员以前,一个人往往需要花费大量的时间来构思用于解决特定问题的程序。
学习编程要和其他课程有机结合起来。例如,和编程结合最紧密的就是数学了。编程中的大多数问题都能在数学模型(如斐波那契数列、弗洛伊德算法、傅立叶级数等)中找到端倪,更不用说数学公式在解决编程问题中的广泛应用了。所以,要想学好编程,必须引导学生善于学习各种公式及其特性,钻研算术及微积分。这是因为,如果学生不懂数学,就是“巧妇难为无米之炊”。
另外,学习编程不能“为编程而编程”,应有一定的目的,制定一个明确的目标,然后一往无前,奋勇前进。当然,如果学生不愿学、不想学,教师也不要勉强。提高能力的渠道毕竟很多,教师不要人为地增加他们的负担。否则,就会得不偿失。