为什么很多大学生觉得学编程很难?

摘要

很多进入计算机专业就读的学生,最初至少有一大半对真实的软件开发完全不了解,是“一张白纸”。不幸的是,学了四年之后,许多张“白纸”又变成了许多罐“浆糊”,带着对软件开发可能是畏惧,也可能是无所谓,但绝对不是喜欢的感触离开校园。编程真的那么没劲?那么难和枯燥?今天达妹想和大家好好聊聊“编程究竟难在哪?”这件事。1难在没有建立学习过程中的“正向”兴趣循环台湾知名技术专家蔡学镛先生写了一本《编程ING》,

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

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

  编程真的那么没劲?那么难和枯燥?

  今天达妹想和大家好好聊聊“编程究竟难在哪?”这件事。

  1

  难在没有建立学习过程中的“正向”兴趣循环

  台湾知名技术专家蔡学镛先生写了一本《编程ING》,给出了一张图:

  

  我认为这张图道出了问题的关键——学习过程中的“正向”兴趣循环是否成功地建立。

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

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

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

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

  2

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

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

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

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

  

  (图片来源于网络)

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

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

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

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

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

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

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

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

  3

  难在我们从未学过创造

  

  (图片来源于网络)

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

  整个世界的运转,都是靠你的大脑想象出来的。这是编程的难。

  但是,只要你明知其中不易,仍有一腔骁勇,你可以尝试在编程的世界中,保持“实验者心态”,不断探索自己的想法,质疑自己的假设,从所犯错误中学习宝贵的经验,就一定能在编程的魔法世界中得到更多宝藏。

  

  (图片源自网络)

  如果你看过近期大火的《乐队的夏天》,那么在参赛的三十一支乐队中,你一定会被其中一支叫做“刺猬”的乐队所打动。

  刺猬乐队的子健,他是台上的狂躁主唱,台下的学霸码农。

  即使每天都在和冰冷的数字打交道,但作为程序员的他,体内有被保护得非常好的创造力,使得他拥有满腔的诗意与细腻的内心,更可以谱写出令人折服,引人共鸣,充满无限色彩的音乐作品。

  4

  他们没有觉得编程很难

  

匿名

发表评论

匿名网友