芥末堆注:本文系芥末堆与WISE合作的中西辩论专题【人人都该学编程?】的第二篇,邀请国内外在信息技术和教育领域均有思考的学者来参与这次探讨,本篇作者大熊。
在当下这个时代,“人人是否都该学编程”是一个值得深思的话题。因此在开始讨论之前,我非常荣幸能够较早地参与到这个话题。但仅在此浅谈一二以做抛砖之用,想必此后定会有越来越多的国内外编程牛人和教育专家,来对这个问题提出更具深度的思考。
当计算机从构想世界走进现实,软件开发所能衍生出的无限创意,深深吸引着全世界的有志青年。特别是近二十多年来,在互联网的快速发展历程中,程序员们充分发挥自己的热情和想象力,在二进制的世界里,创造了一个又一个的奇迹。从美国的Microsoft、Google、Facebook,到中国的Baidu、Alibaba、Tencent,从互联网,到移动互联网,再到物联网,这些奇迹构建的虚拟世界正在深刻地改变我们的生活。
除了计算机专业和软件学院毕业的学生们,越来越多的年轻人,或自学、或通过IT职业教育平台的再培训,也投入到程序员的职业队伍之中,大有一股“人人都在学编程”之风。
然而,“人人是否都该学编程”吗?我也曾将这个问题转给过我的同学们,很快,这些以计算机专业为主的同学就展开了积极的讨论,并且自然地分成了两派:支持和反对。很明显,这是一个值得深入思考和讨论的议题。
但是要回答好这个问题,我觉得需要先弄明白如下几个问题:
(1)“人人”指的是哪个群体?
(2)“都该”指的是“学编程”的必要性吗?
(3)“学编程”又指的是学到什么程度?
首先,“人人”是指像我们这些已经进入职场的成年人,还是我们下一代尚且年幼的孩子,亦或是我们的长辈?要弄清楚这个问题,就像我们在做产品时候要确定的用户画像,不同的用户群体有不同的需求。对于成年人来说,学习编程的目的性是很强的,或许是本职工作的需要,但更多的是想变更职业,从而满足社会对IT工作者的需求缺口,同时也一定程度提高薪酬待遇。而对于未成年人来说,学习编程的源动力更多的来源于兴趣爱好。在和我的同学们讨论的时候,大家都自然的将讨论的目标指向了我们的下一代。一方面是因为我们都陆续有了子女,另一方面这或许是因为我们大多是计算机专业毕业的有关,所以问题没有指向我们自身。
去年的夏天,我升级成为了一名父亲,自身也开始面临了教育子女的问题。即使不涉及到学编程的问题,自然也会碰到要不要让小孩学钢琴、学下棋、学绘画等等的问题。这些可以培养孩子的兴趣、陶冶情操,也为他们以后的发展打开了一扇门。在涉及到学编程的问题时,可以将它和其它的兴趣爱好一同对待,但是否一定“人人都要学”?我觉得过于极端了。因为,这些都还需要看孩子的兴趣和天赋。
就像此前几年北京等城市的“奥数”热,这本是为了选拔有数学天赋的孩子而进行的,可一旦和升学挂了钩,就几乎变成了“人人都要学”,使“学奥数”变了性质。在我看来,“学编程”也是这样。如果将其和升学绑定,自然会让很多的家长和学生投入到畸形的“编程热”之中,这当然不是我们所期望看到的。
对于广大的中小学生群体,“编程”倒确实可以尝试接触一下。一方面可以理解计算机的工作方式,另一方面它也可以锻炼将自然语言表达为格式化语言的能力。正如今天我们在很多学校所见到的那样,“学编程”可以成为基础教育的一个选修学科,也可以成为数学教育的一个补充,这些都为兴趣“学编程”打开了一扇窗。当然,“浅显接触的编程”和“以编程为专业或职业”是不同的,这就涉及到了学到什么程度的问题。
学到什么程度主要是根据学习者的年龄段、认知水平、和学习目标而选择合适的学习内容、并规划好学习路径:
(1)如语言的选择:C/C++,JAVA,C#,Python,PHP,JavaScript,Html5等;
(2)如计算机基础课程的学习:操作系统、数据结构、算法和算法分析等;
(3)如专业知识的学习:TCP/IP网络协议、视频编码、人工智能、数据挖掘等。
当然,对于当今的IT教育从业者需要做的事情,是让“学编程”成为一件容易的事情,并为广大初学者提供具有良好用户体验的交互的可视化编程实践环境。
最后,这些天刚好又翻看了《编程之美》,以其中的一段话作为结尾:发现问题、分析问题、解决问题,寻找更优的解法,总结规律,抽象出算法的过程以及由此产生的成就感——这就是编程的乐趣所在,也是为什么有更多人在尝试接触编程甚至将其转为自己的职业。
作者简介|大熊
原名刘雪宁,现任芥末堆CTO,连续创业者。在线教育行业从业四年,曾任职于清华大学内容分发网络研究所。
2、芥末堆不接受通过公关费、车马费等任何形式发布失实文章,只呈现有价值的内容给读者;
3、如果你也从事教育,并希望被芥末堆报道,请您 填写信息告诉我们。