028-86261949

当前位置:首页 > 学科资讯 > 编程真的那么没意思,那么难,那么枯燥吗?

编程真的那么没意思,那么难,那么枯燥吗?

2019/10/10 15:38 分类: 学科资讯 浏览:0

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

 

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

 

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

 

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

 

 

Part 1 没有建立“正向”兴趣循环

 

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

 

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

 

强烈的兴趣与不断获得的成就感是整个学习过程的“引擎”,它为学生完成整个学习任务提供源源不断的强大动力,有无数的事实支持这个观点。
而传统的教学观点认为,本科的主要教育目标之一是为学生在本专业领域未来的发展“打下扎实的理论与实践基础”,所以从一开始就要“严格要求”、“科学训练”。

 

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

 

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

 

 

Part 2 从未接受过解决问题的训练

 

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

 

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

 

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

 

我们非常擅长理解和记忆,并井井有条地套公式。这一切,到了学编程这里,统统不奏效。

 

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

 

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

 

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

 

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

 

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

 

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

 

 

Part 3 从未学过创造

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

(图片源自网络)

 

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

 

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

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

 

Part 4 他们没有觉得编程很难

 

为什么很多不是计算机专业的人能够通过IT培训机构学会编程技术?没有觉得编程很难。

 

培训机构里学习的课程内容是根据市场上企业需求开发的,学习就是工作,通过工作实现学习。

 

比如达内的教学大纲都是循序渐进,由浅入深,首先做的就是培养学生对于编程的兴趣,从中获取成就感,以兴趣为导向,步步为营,在每个阶段课程穿插实战项目。

 

教师会去引发学生的兴趣,鼓励他们去探索未知的领域,主动地学习和吸收知识,培养技能,积累经验。

 

解决他们在学习过程中遇到的困难,及时指点,帮助学生建立学习的“正向”兴趣循环。

 

所以,很多人即使不是计算机专业的,也能够在很短的时间内学会编程。

 

编程一点都不难,用电脑听得懂的语言,告诉它帮你做你想要做的事情,只要认真学,谁都可以。

 

难就难在,"学以致考"和"学以致用"是不一样的;记忆和创造是不一样的;学好学科和理解世界是不一样的。

 

当然,并非要彻底否定应试教育。在中国教育资源极其不平均、经济文化撕裂的大生态下,以考试为目的的教育,提供了一套非常清晰的评判标准,通过分数这个显性的指标来筛选和划分学生群体,选拔出社会精英,可能是当下最公平的取舍了。

 

只是时代在不断的发展,无论是学校,家长还是孩子,都应该反思一下现在的所接受的教育形式,如何发挥出每一个自己的个性,让他们成长为更好的人——学编程的过程会给你提供答案。

#标签:编程技巧,代码的趣味