2019-09-13 ↔ 2829阅读

孩子应不应该学编程

我本人从98年开始接触编程,2003开始程序员职业生涯,曾在中科院、微软亚洲研究院等机构担任软件工程师,熟练C++、php、java、python、js等多种编程语言,在大规模网络通讯、大数据处理、算法性能优化等方面有一定的工作经验,自认为是一名合格的程序员。
我也承认,近些年来IT产业如火如荼,已成为全球大势所趋,在未来很长一段时间里,以信息技术为基础的AI、大数据、个性化制造等产业必将得到进一步发展,程序员这个职业必将越来越流行。
但我认为,对于孩子要不要学编程这件事,我们应该从理性的角度去看待,不应过于盲目、舍本求末。

少儿编程教程

百年树人,以根为本

必须要承认,编程只是一门工程学科,编程技术只是一种职业技能,与语文、数学、英语、物理等基础学科有本质区别。如果基础学科搞不好,包括编程在内的工程学科可能会过早地遭遇到天花板。
编程这件事其实没有想象中那样高大上。在编程工作中,很大一部分其实是枯燥的“体力活”(码农一词正是因此而来),然后会有一部分类似于生产流程设计的技巧性的、统筹性的工作,再往上一层才是最有含金量的算法工程师。前两类工作的门槛并不高,在程序员行列中,80%以上干的都是体力活,还有一小部分干的是设计工作,只有5%左右的拥有扎实数学基础和专业知识的程序员才能够迈入到算法工程师的行列。
换句话说,对于孩子而言,更重要的是为未来不间断的学习历程打好基础,而不是整日坐在电脑前学习编程技术、完成编程题目。即便真的学会了,也可能会因为其他短板而成为只会干“体力活”的码农。

学习编程是一件耗时耗力的事

很多家长会说,我们只是让孩子将编程作为一个兴趣来尝试,怎么会像楼主说得那样可怕?我想说的是,如果孩子对编程没有兴趣,学习编程只是在浪费时间;如果孩子对编程充满兴趣,那么也必然要花费很多时间。
据我了解,编程不是一件简单的事,学习编程比较烧脑,也比较花时间;在解决编程问题的过程中,需要孩子不断尝试各种方法,要花费更多的时间。如果孩子真的感兴趣,还可能会把所有空闲时间都花在设计某个小程序上,对其他学科失去兴趣,也不去参加体育活动,后果难免让人担忧。

任何语言都只是一种工具

以核桃编程为例,根据所学编程语言以及编程任务的不同,设计者将课程由易到难分为图形化编程、python编程和c++编程三个阶段。这样的划分方式看似由易到难、由浅入深,但却与以往学习编程的课程安排相悖。
在我的印象中,学校里最开始学习的其实是c和c++,然后是面向对象的java等,再然后是更加直观的php和python,最后才会在工作中接触各种花哨的图形化甚至3D化的工作。我只是万千程序员中的一员,并不敢武断地认为核桃编程这样的课程安排肯定就不好,但我认为,这样的安排肯定会存在一些问题。
抛开儿童编程的课程顺序不提,仅就编程语言本身而言,任何编程语言都是会过时的。以java为例,如果没有安卓系统,现在的java将非常尴尬;以object-c为例,如果苹果手机不再流行或苹果公司另有计划,object-c可能不会有人再用;再比如说比尔盖茨起家之初的basic语言,如今还有谁在用?
有人可能会说,我们让孩子学的不仅仅是语言本身,而是编程思维模式。很好。但请不要忘记,编程学科只是工程学科,与根基稳固的自然科学以及基础学科有本质区别。编程语言的思维模式基于开发平台及运行环境,并不是100%可以延续和继承的。再退一步讲,孩子在学习编程过程中能否培养良好的编程思维也非定论,据我所知,实战过程中所形成的编程思想更多、更好、更宏大。

少儿编程

综上所述,个人认为少儿编程是一种抢跑行为,甚至是一种拔苗助长的行为,虽然会有一定成效,但却会付出高昂的机会成本,最终可能得不偿失。
微信扫码关注
(也可用微信搜索公众号“劲来吧”)

公众号二维码

2 个回应

匿名回复
2019-09-15 18:38:12
在有时间的情况下多学一些东西还是没有坏处的,而且现在信息技术方面又这么热门。
匿名回复
2019-09-15 14:40:15
编程、围棋和奥数等都可以拓展孩子的思维,只要孩子喜欢,并且愿意在编程上花时间,那么学学那无妨。学啥都是学,让孩子自己决定就可以。

留言