我也来喷少儿编程

“编程猫”温暖送课进山区,“沙雕”spinach无情发文怒喷.也许是最后一次修改(2020.5.10)之后除非遇到有价值的评论,否则我不会回复,删除,置顶任何评论.

我的语言表达能力确实很差,这篇文章也是漏洞百出,甚至你可以说not even wrong.至于为啥懒得回复懒得修改呢,并不是因为我写得有问题,不想看黑历史.而是我不认为这文章的内容有什么进一步讨论的必要.
怎么说呢,有些事情不是要讨论出来对或错,优或劣只要站在自己的立场上维护自己的利益就行了.
评论区的各位都挺友好的(除了一位直接嘴臭被我直接删掉评论的),感谢各位花时间进行友好的讨论.


upd1 修了几个typo

upd2 (2019.10.14)

首先抱歉我的言辞有些过激,

然后就是我这个文主要说的事情是,某些机构吹得离谱,宣传方式太恶心人.我抓着宣传喷了一顿...全文都在喷这个点.

1 我对于这东西的态度文章也许没写清楚.

我认为这东西没必要那么早接触,就像开车/做饭是非常重要的基本技能,但是没必要大规模少儿驾驶少儿烹饪.不论是作为打mo/oi的基础,还是入坑cs的启蒙都没必要那么早,我感觉毕竟合适的时间是初二初三的时候.

2 要深入玩这些东西,肯定不是跟随少儿编程机构的那套体系,而是那些只有会英语,会中文,能上网就能获得的资源.这会是个要求高度自主的长期过程,机构帮助非常小.

3 入门时的有趣形式,快速成就感并非一无是处,但是它绝不必要并且应该尽快脱离它们.

0.声明

本文作者是hehelego/spinach,一个(af)oier,目前正在学文化课备战高考.您可以随便转载本文,但是请一定转载全文并附上原发表处的链接,本文最初仅由本人发表于知乎和luogu blog与github上.

本文只是一篇乱写的吐槽文,写得并不认真,抱歉.所以呢,如果有什么事实错误,请务必联系我(知乎私信)进行修正. 本文面向的读者是混乱的…正如上面所说,是乱写的,可能既不是给想入坑的家长看的,也不是给喷机构的人看的,也不是给学生看的.

我自己是个辣鸡,我的思想也辣鸡,写出的文也辣鸡,请随意喷.

我是从接触LEGO mindstorm起开始的学习历程,长时间地学习过MOOC,非常认真的做过OI.所以我对此是有一定发言权的.

,
1.引言

近来,知乎上有个问题.如何评价“编程猫”送少儿编程课程进山区,正好一直对于“儿童编程”,“少儿编程”,“STEM教育”等噱头非常反感,并且受到某些机构的辣鸡广告轰炸,再加上国庆假期作业有一项时事述评,我决定写一篇文,好好吐槽一下这些炒作与这些机构,也吐槽一下那些受了忽悠成为机构收割的韭菜的家长朋友们,并聊一聊你们想要的东西应该去哪里找.
2.我有很多句(友善度降低可能)就是要说
1. “少儿编程”培训机构不懂CS学科的体系.

编程技术真的只是CS学科的冰山一角,只是一个引入性质的东西.我们不说那么大的东西,就只说写代码这件事情,你以为的体系是培训机构那套“X_0岁-X_1岁 学习scratch入门,Y_0到Y_1年级;学习lego mindstorm和arduino;最后转入科创比赛或程序设计竞赛”吗?错!真正的学习体系应该是这样的:“C语言起步,借此了解电子计算机和操作系统的基础常识,初体会程序设计中的控制流的结构化和有序性;向下了解OS,直至计算机组成原理和硬件相关的知识,打通向下的路径,对你的程序是怎么跑起来的,什么东西在跟着它运作有个深入了解,向上学习多种范式的程序设计语言,明白不是只有一种方式表达你的想法,了解数据结构和算法的基础知识;最后学习arduino/raspberrypi的开发或者加上足够的数学基础知识转入OI大坑”.这是学习培训的体系,再说说一个应用的架构体系呢?一个跑在chorme/firefox里面的webapp是怎么和你交互的?要写这样一个完整的应用,你需要那些知识做那些工作?这些少儿编程怎么可能学得到,这些体系不清楚,学到的技术就只是玩具,对孩子没多大影响.

计算机科学是有大量分支并且每个分支都有极大纵深的,只是学写个程序,学控制个GPIO,真的没多大意思.

现在搞这些的机构,其从业人员确实有些大神,但是不少是不懂学科体系,讲不出学科的框架的,跟他们真的能学到所谓的“编程思维”吗(这个一会再来喷)?

再来说说scratch这个有MIT金子招牌的东西,我不是说它就不好它就辣鸡,而是它和中国的教育体系不match啊,你学了这东西,后面做什么?入那些机构的机器人杯赛还是它们的应用开发比赛?还是能脱离它们自己去做科技创新大赛的项目?

诶这也没啥错的呀?并不!!!美国的学生玩了这一套,后面等着的是first系列竞赛(非常烧钱也是大坑不推荐入,虽然是挺有趣且有意义的)和大学/中学提供的中学生科研的机会啊.中国相关的东西是什么呢?是面向高中生的英才计划和翱翔计划这些…显然不是培训机构吹的那些东西啊.
2.不分理论和技术,胡扯编造“编程思维”,把规则和约束当成思想.

根着各种培训机构(不论面向什么年龄的),学的更多是技术,不懂技术是哪里来的,不懂背后的理论体系,沦为搬砖掉包的熟练工.少儿编程也是这样的,以编程为始,以编程为终,编程这个技能本来是能帮助人联系下到硬件上到应用的,但是因为各种限制就只学了怎么写个基础的程序,那是本末倒置了啊.

然后来喷“编程思维”,事实上,根本没有“编程思维”这种思维,只有程序设计的范式.

比如说写C,很快就发现数据是结构化的,控制流是有序的,命令式的,然而这是编程的思维吗?不是,是因为C更贴近底层,要考虑更多底层的细节,控制流的有序性,数据的结构化,其实是来源于计算模型(比如turing machine/lambda calculus)的,并由计算机的体系结构决定的,最后落实到了真实的计算机,在它上面写程序,当然会受到这些东西的影响了.

那编程中用到的思维在哪里啊?在数据结构和算法以及程序设计的范式里面.前者讲如何设计解决抽象问题的算法,如何高效操作数据,并分析其复杂性与可行性,后者讲的是构建程序的方式,让人知道除了像C那样描述控制流,还可以有其他的方式编织程序,表达你的思想.并且啊,computer science讲的更多的不是computer而是computing,是个迫真数学分支,少儿编程缺少必要的数学知识,没法深入到那些有趣的地方.
3.“送课进山”恐为炒作手段,其心可诛!

你看看现在少儿编程的买点:“名校引入,名校使用,名校合作”,再加上送课进山?

这套路是不是似曾相识?先推进所谓名校,再推进欠发达地区,营造出全民都在参与少儿编程的氛围,创造孩子不学就“输在起跑线上”了的交路,反向回来倒逼主要客户——城市中的家长入坑.

真正要干大事的,必然是先有小规模尝试,有了一定的成果再拉出来宣扬拉资金进来推动发展,而不是卷入韭菜进行收割.
3.所以这些东西应该去哪里学啊qwq?

不过我是个学生,也不搞培训,也没有广告…也不能乱搞,也怕被拉起来批判一番,所以就扯淡好了.

我自己是在学校里面了解到了lego mindstorm,后来听说了arduino,于是开始学C.到这里还是少儿编程的路子,不过之后可就是完全不一样了.后来我为了学C,偶然了解了MOOC,同期了解了知乎.然后发现编程技术原来是CS的冰山一角,这里面还有很多好玩的有趣的东西…于是花了两年左右时间放学+周末听课,并且听了两门英语讲授的课程,都是coursera上的,一个是algorithm(就是讲那个叫algorithm的红色的书),另一个是programming languages(讲了SML,racket为代表的FP,ruby为代表的OO).后来入坑OI打铁退役学文化课.

anyway,我想说“儿童编程”,“少儿编程”并不坏,是不错的东西不过它们是引入,是药引子,仅此而已了.如果你说编程是21世纪所有人需要的技能,那也完全用不着这么小就接触,去学数学和英文吧,这比早接触一门程序设计语言重要得多.  已经有了正经的,和本科生学的内容一样的大学公开课才是该去学习的地方,科技创新大赛和OI才是有趣值得打的比赛,如果还没能力接受这些东西,就去补数学和英语的基础,而不是入坑成为机构收割的韭菜.
留言与评论(共有 0 条评论)
   
验证码: