最近在社交媒体上看到很火热的讨论,少儿编程学了到底有没有用?花了这么多钱学编程,是不是在交智商税? 很多家长自己也是程序员,说少儿编程教完,孩子连“数据结构(Data Structure)”都不知道,那到底在学什么呢?这是个挺有意思的话题,我们来探讨一下。
太长不看版:看学习目的。当程序员培养,绝对是智商税;当兴趣爱好培养,非少儿编程不可。
少儿编程中的“编程”,和程序员眼中的“编程”,是不同的概念。“学编程”不只存在于少儿阶段,在成人阶段也十分火热。社会对程序员的需求量与日俱增,2021年,互联网大厂们开出的应届生程序员offer已经在年薪30万到70万不等。高薪一定也是由供需决定的,大量的岗位缺口没有合适的高技能人才填补,自然就抬高了程序员的身价,也吸引了社会的目光。 “学数学转码”,“学会计转码”等现象屡见不鲜,就算是普通职员,也被铺天盖地的“用Python做表”广告席卷。对于编程学习来说,上有职业培训,中有大学专业课,下有少儿编程,如果没有明确这三者的目的,混为一谈,那这个讨论是没有意义的。
我们先看职业培训和大学计算机专业中的编程学习。在成人阶段,编程是一项技能,与职业清晰挂钩。科班出身的计算机学生学习编程,职业路径大多数是程序员,通常从事硬核的前后端开发工作,拿我们常用的App举例,前端界面由专门工程师负责交互功能的实现,后端有专门工程师负责算法开发和数据库维护。
非科班出身的人员想要通过学习编程加持本职工作,提升现有工作效率,这是职业培训的目的。在这个场景中学员并不需要掌握系统的程序开发知识,化工具”来运用。
比如在财务领域,可以通过编程将月末对账、编制年度预算等重复性强、附加价值低的劳动给自动化,解放双手,投身于附加值更高的决策型任务。
如果用成人编程学习的逻辑来看少儿编程,那一定是智商税无疑:以Scratch为首的一系列模块式编程语言,在成人世界中会遭受绝对的“降维打击”。一个7岁孩子需要花费一两个学期才能掌握Scratch这门入门编程语言,一个大学生可能花10天就可以了。学生的年龄和数理知识到一定境界,完全可以直接学习Python或Java作为入门编程语言。在少儿阶段也是,10岁以上的零基础的孩子直接学Python问题也不大。
如果立志当程序员,那么最省钱的培养方法则是:上大学之前完全不需要接触编程,大学直接选计算机专业,或选修计算机课,学了Python,Java(或C,C++),数据结构和算法等核心专业课后,发挥强大的主观能动性自学刷题进大厂。
那么少儿编程存在的意义是什么呢?
首先强调“素质性”。在少儿阶段,编程的“技能性”是被弱化的,很少有孩子学编程是作为将来就业的生存技能。所以,编程作为和跳舞、画画一样的兴趣爱好出现,成为了素质教育的重要一环。
tickle模块式编程
其次强调“消除恐惧”。之前文章里我们讲过,“少儿编程”这个概念是在2015年左右火起来的,这意味着它很新,在当下K-12群体中才得以普及。也就是说,绝大多数80后、90后在上大学前,都没有接触过编程!或者说,即使在信息课上接触过VB, Pascal等硬核语言,学了完全无感,甚至让人惧怕编程。这个情况国际通用,在美国大学计算机课上碰到的美国同学,也有一脸“天呐我怎么能写代码”的表情。正因为缺乏了解,国内学生在填志愿的时候,很少有人会去填计算机,即使逐渐意识到编程的重要性,也无法转专业了。
少儿编程最大的意义,倒不是锻炼思维逻辑这类玄乎的东西,而是让编程变成简单有趣的东西,让孩子从小有兴趣去接触,对编程不再害怕。这是非常难得的事情!恐惧来源于未知,我们对代码的惧怕也正来源于没有合适的接触机会。现在,得益于模块式编程平台,原本枯燥的编程语句以卡通形象和拼图呈现出来,孩子们听到编程,第一想到的是有趣好玩,一点也不害怕,而不是像上一代人那样,“写代码是什么?真可怕,我肯定不会”。如果因为惧怕就失去深入了解一个领域的动力,那是非常可惜的事情。
minecraft模块编程
综上,只有在K-12阶段(即大学前),编程的“技能性”才会被弱化,其“素质性”从而得以体现。把编程作为职业技能学,大可不必从小开始,但如果当成兴趣培养,除了游戏编程还真没有更优解。消除恐惧,从友好接触代码、正确认知编程开始!