新闻动态 > 校区新闻
编程真的很难学吗?

发布:校区新闻来源:新闻动态 时间:2020-08-26

很多进入计算机专业就读的学生,最初至少有一大半对真实的软件开发完全不了解,是“一张白纸”。

 

不幸的是,学了四年之后,许多张“白纸”又变成了许多罐“浆糊”,带着对软件开发可能是畏惧,也可能是无所谓,但绝对不是喜欢的感触离开校园。

 

可是,编程真的那么没劲?那么难和枯燥?今天小编想和大家好好聊聊“编程究竟难在哪?”这件事。

 

如何建立学习过程中的“正向”兴趣循环

 

兴趣是最好的老师,学习过程中的“正向”兴趣循环是否成功地建立对于能否坚持学习至关重要!

 

强烈的兴趣与不断获得的成就感是整个学习过程的“引擎”,它为学生完成整个学习任务提供源源不断的强大动力,有无数的事实支持这个观点。

 

而传统的教学观点认为,本科的主要教育目标之一是为学生在本专业领域未来的发展“打下扎实的理论与实践基础”,所以从一开始就要“严格要求”、“科学训练”。

 

这个观点不能说错,但我认为,我们的计算机教育,尤其是针对初学者的教育,首要的任务是引发兴趣。没有兴趣,一切免谈。

 

之所以很多大学生觉得编程难,其原因就是现有的计算机教学方式从一开始就给了这些学生“痛苦”的编程体验,并且在后期枯燥的专业课程学习中不断得到强化,最终使很多大学生对编程敬而远之或畏之如虎。

 

我们从未接受过解决问题的训练

 

从小到大,我们受到的教育终极目的只有一个:考取理想的学校。每一张张考卷都是一个个堆砌起来的知识点:三角函数,解析几何,数列,函数…...

这么多知识点,你需要做的是背下它们,或者说的更高级一点,理解它们。

 

即便是强调思辨和分析的“文科类”,也可以靠死记硬背答题模板拿分,就连作文都要有统一的标准。

 

我们非常擅长理解和记忆,并井井有条地套公式。

 

这一切,到了学编程这里,统统不奏效。

 

有的学生大一的时候刚开始接触C语言,非常痛苦。那会儿,没有任何计算机基础,编程语法大多靠背——C  语法、操作系统各项定义、计算机网络各种协议、常量、作用域、多态...........

 

身边不少同学也这样,“高考精神”还深深印烙在骨子里,我们都认为学习一门编程语言最重要的就是掌握其语法,所以为了将语法烂熟于心,最直接的方法就是记忆。

 

结果可想而知,即便拿了相应的学分,没有人敢说自己会编程。

 

我们接受了十几年的应试教育,为了最大化公平,考试必须有一套清晰的标准。正是如此,我们更看重应试技巧而非知识本身,学习变成了追求标准答案,求知变成了死记硬背。

 

绝大部分人,难以形成系统的学习方法论的意识,以至于很多人一旦脱离试卷,在社会中面对实际问题的时候,完全没有一套行之有效的方法论支撑其解决问题。 

 

而编程的核心,不是编程,不是语法,甚至不是算法或数据结构本身,恰恰是如何分解问题——发现规律建立解决问题模型,映射到合适的数据结构和算法上,最后才根据算法写程序实现。

 

我们从未学过创造

 

清华大学前校长陈吉宁曾提过一个观点:

 

清华大学里有很多“A型学生”,但未来社会最需要的是“X型学生”。

 

“A型学生”,指的是传统观念里的“好学生”,他们的成绩总是能得“A”。

 

“X型学生”与之不同,他们的成绩并不一定拔尖,但愿意承担创新风险,勇于尝试新鲜事物。

 

两者最重要的差别,在于创造力。

 

可是我们连作文还不敢写得太跳,生怕阅卷的是个老古董,大笔一挥,让你再考一年。创造力,更是我们在学校想都不敢想的事。

 

绝大部分学生的思维,早已在填鸭式的教学中,变成了一个只会收纳外部知识的容器,根本无法用所学的东西创造出任何东西来。

 

所以,当我们开始学编程,面对“Hello world.”这个等着我们创造的世界,其实是非常茫然的。

 

因为编程没有“题型”和“公式”能把你解决问题的过程简化成填空,编程提出的问题基本都是空而泛,需要你根据脑子里的逻辑推断,利用所学编程语言的各项功能组织成代码,来解决问题。