点击蓝字
关注我们
相信大家一定还记得,去年12月初,《关于政协十三届全国委员会第三次会议第3172号(教育类297号)提案答复的函》公布,并对提案中建议的“推动编程教育纳入我国基础教学体系”进行答复,称将把包括编程教育在内的信息技术内容纳入中小学相关课程。从而帮助学生掌握信息技术基础知识与技能、增强信息意识、发展计算思维、提高数字化学习与创新能力、树立正确的信息社会价值观和责任感。
对少儿编程被纳入中小学课程的必要性,中科院软件所武延军在当时也给出了答案。
一、 目前高水平软件人才极其短缺,在中国也是如此。虽然软件从业人员基数较大,但是真正的高水平程序员一才难求。
去年年初,IEEE Spectrum上的一篇论文对中国、印度、俄罗斯和美国四个国家的计算机科学(CS)专业的学生水平进行了比较。结果显示,美国处于领先地位。国内大型IT公司长期面临着高水平人才不足的问题。
一个高水平的程序员必须积累足够长时间的编程经验,特别是在计算思维和架构设计上,要从小就养成良好的习惯。从“HelloWorld”的简单程序,到操作系统、编译器这样的鸿篇巨著,需要无数程序员的努力。例如比尔盖茨、乔布斯、扎克伯格都曾经热衷于编程。
二、 编程能力培养不会让人的思维僵化,反而会培养人有意识地把僵化、重复性工作用机器去实现。
SpaceX猎鹰火箭自动返回和太空舱自动对接,大狗机器人的灵活,伐木锄草农机的高效。这背后,都是程序化思维的实践结果。
把一件复杂的任务分解再分解,把一些重复的模块合并再合并,把所有能够自动化的流程抽象成程序,把所有能够工具化的功能沉淀成工具。这就是编程带给我们的思维习惯。
为了同样的目标,花费同样的努力,人和人在成就上为什么会有巨大区别?很大程度上在于有些人能否把重复的、不需要创造力的事情交给机器去完成,而把更多时间投入到关键的、需要创造性突破的事情上。
编程能力不仅仅反映计算机专业能力,也反映了对复杂运筹学的实践能力。如何安排时间,如何调度资源,如何并行任务,如何防范风险。
三、编程能力的培养越早越好,因为这关系到一个人将来对机器和AI的掌控能力。
小孩子在很小的时候,往往喜欢做一些重复的事情。当孩子在某个技能得到巩固之后,可以逐渐提升难度,引导孩子认识到简单重复的事情可以交给机器,然后站在机器的肩膀上冲刺下一个挑战。AI正在为我们的生活提供越来越多的便利,人类要做AI的主人。
四、 编程对掌握其他学科具有重要的辅助作用。
当前任何一个行业都离不开软件。正是长期把软件与行业割裂的思维惯性,导致我们国家当前在工业软件(例如EDA、CAD、CAE等软件)领域基础薄弱,受制于人。工业软件对于工业行业的意义在于把专业知识(Know How)沉淀为一行行的代码,使得这些知识更加精确,也更加容易自动化,最终形成庞大的软件工具,提升行业的生产率。
熟练掌握编程能力,不论身处何种行业,都能带来独特的优势。一些行业中复杂繁琐的事情,也许通过几行代码就能搞定。这种解决问题的能力,对于任何人的职业发展都是加分项。

