将少儿编程纳入中小学课程的必要性是什么?
去年年初,IEEE Spectrum( IEEE)的一篇论文比较了中国、印度、俄罗斯和美国计算机科学(CS)专业学生的水平。结果显示,美国处于领先地位。现实是一样的。国内大型IT公司长期面临国内高层次人才供给不足的问题,不得不将目光投向硅谷,通过高薪引进领军人物。
一个高水平的程序员必须积累足够的编程经验,尤其是在计算思维和架构设计方面,从小养成良好的习惯。从“HelloWorld”这个简单的程序到操作系统和编译器的杰作,需要无数程序员的努力。参与其中也获得了丰厚的市场回报。例如,比尔·盖茨、乔布斯和扎克伯格都热衷于编程。
2.编程能力的培养不会使人的思维僵化,而是培养人自觉实现与机器的僵化重复工作。
我们惊叹于太空探索技术公司猎鹰火箭的自动返回和太空舱的自动对接,大狗机器人的灵活性和伐木除草农业机械的效率。这些背后都是程序化思维练习的结果。
分解一个复杂的任务,合并一些重复的模块,把所有可以自动化的过程抽象成程序,把所有可以工具化的功能沉淀成工具。这就是编程能带给我们的思维习惯。
同样的目标,同样的努力,为什么人与人之间的成就差异很大?很大程度上取决于一部分人能否把重复性、非创造性的事情交给机器去完成,把更多的时间花在需要创造性突破的关键事情上。
编程能力不仅体现了计算机的专业能力,也体现了复杂运筹学的实践能力。如何安排时间,如何调度资源,如何并行任务,如何防范风险。
3.编程能力越早培养越好,因为这关系到一个人未来对机器和AI的控制能力。
孩子很小的时候,经常喜欢做重复性的事情。但是,作为教育工作者,我们不应该让孩子在简单的事情上追求满足,长期重复。而是要在某项技能巩固后,逐步增加难度,引导孩子认识到简单重复的事情可以交给机器,然后站在机器的肩膀上冲刺下一个挑战。AI正在为我们的生活提供越来越多的便利,但人类应该是AI的主人,而不是相反。
4.编程对掌握其他学科有重要的辅助作用。
目前任何行业都离不开软件。正是长期以来软件与工业割裂的思维惯性,导致我国在工业软件领域(如EDA、CAD、CAE等软件)基础薄弱,受制于人。工业软件对于工业行业的意义在于将专业知识(Know How)沉淀成一行行代码,使这些知识更加准确,更容易自动化,最终形成一个巨大的软件工具,提高行业的生产力。
精通编程给任何行业的人带来独特的优势。一些行业复杂繁琐的事情,可能几行代码就解决了。这种解决问题的能力对任何人的职业发展都是加分的。