甲骨文都裁员了,你还会让你的孩子学编程吗?

如何用编程去解决问题、如何将现实的问题抽象成计算机可以处理的数字逻辑,这才是学习编程的关键所在。

图、文 | Lilian


市场上制造儿童编程产品的公司已经开始进入乱花渐欲迷人眼的地步,你是否也在思考如何追随?泼盆冷水,降降心头之火——甲骨文中国研发中心刚刚宣布即将裁员千余名研发工程师。

我在本科学的就是软件专业,也在软件公司待了多年,但之后选择离开,现在又因为人工智能的旺盛需求而重新坐回电脑前自己写代码。曾经只需要用Excel处理的几万条数据,变成了几千万条。Excel无法胜任,只能换Tableau,然后又发现对几百G的数据再进行深度挖掘,除了写代码编程,已无计可施。这些经历让我有了更多视角去思考并审视编程,更产生了用以终为始去聊聊儿童编程这个热门话题的念头。

BAT的软件工程师工资有多高?Facebook的软件工程师年薪中位数都到了15万美元,人工智能专业的博士毕业年薪就能达到200万……好吧,看着这些不断刷新认知的数字,内心的澎湃可想而知,似乎不让自己的孩子去学编程简直是枉为父母了。可是,也有中兴工程师因为公司裁员而选择跳楼,甲骨文工程师因为公司裁员而举旗示威,一想到这些是不是又觉得一切没那么美好?

理性分析,高薪意味着软件编程的需求已经蔓延到社会的每一个角落,高需求自然会带来高回报。但裁员也意味着这个行业的发展速度非常迅猛,一旦你跟不上大势,便只能惨遭出局,而跟上大势的秘诀就是思考能力和学习能力。

我能想象到的一个场景就是,未来不会有大面积的码农社区存在,而是遍布着无数个擅用编程解决自己领域各种问题的专家。所以,如何用编程去解决问题、如何将现实的问题抽象成计算机可以处理的数字逻辑,这才是学习编程的关键所在。

会不会有人要问,什么叫抽象?举个非常简单却跟人工智能相关的案例:

怎么让计算机识别水果、蔬菜和肉类?

人类要做的就是抽象出这三种物品的关键属性,用甜度、脆度来进行分类判别。

我家孩子因为受我们的影响,很小就对电脑和编程产生了兴趣,于是我给她找了一个免费的网站(大名鼎鼎的code.org)来接触编程。这上面就是用Scratch让孩子体验编程中的逻辑思维带来的奇妙之处。为什么用Scratch进行编程启蒙,各种介绍其实已经层出不穷。从我观察孩子的实际体验来看,就是方便地让她可以把头脑中思考的逻辑过程快速表达出来。

从最初的愤怒小鸟吃东西的游戏场景,她感受到了简单的逻辑过程,前进、后退、高效地执行重复这些。然后她选择了非常喜欢的冰雪奇缘的故事场景,学习了怎么让屏幕上的艾莎听从她的编程指令来翩翩起舞,其中涉及的简单的数字计算和几何图形让她大开眼界。

在这样的兴趣推动之下,她拿到了人生中的第一张编程证书ONE HOUR OF CODE。我想说,兴趣与好奇心才是最终推动人往下走的强大动力。

嗯,我还想说,这里有很多免费的资源让孩子不断地去探索,有扎克伯格、比尔·盖茨这样的大咖向您的孩子循循善诱,为啥还要花钱去买那些浮于表面的编程课呢?

为什么说有些课程是浮于表面的呢?

用儿童画来举例,有多少父母把孩子送往机构去画画,只是因为从机构回来可以看到孩子的画作?又有多少父母去了解过这些画作的创作过程?你可以看到同一个班里出来的儿童画都是一个创作模式,因为那是让孩子复制老师的指令,而不是让孩子在好奇心驱动之下的自我探索。

我看过一个儿童编程课,孩子就是跟着视频的教学指令一步步去执行,然后做出来一个很动人的简单游戏,这里面有多少是孩子自己主动思考并设计产生的呢?用Scratch的好处就是免去孩子记忆的负担,让孩子能完全沉浸在解决问题的逻辑过程设计中。如果这个逻辑过程被省略了,孩子只需要跟着指令复制,就无法在这个过程中学到并训练到最底层的思维——逻辑思维。

我家孩子从6岁开始接触编程,感受到了Scratch的魅力,我一直坚定地认为,在她10岁之前都无需去学习编程代码。直到8岁时一次偶然的机会,我带她参加了一场软件工程师的活动,她在那里跟着一群工程师学到了如何用Python生成微信可扫的二维码。这下又给她打开了一扇新的窗户,她兴奋得做了好多二维码发给各种朋友,甚至说要做生成二维码的生意,每次收费30元。我重重地鼓励了她的想法,因为发现这个30元其实还挺好赚的。

这是她做过的一个电影推荐二维码,可以扫扫看。

这次的经历让我重新思考,学习软件代码、学习Python对于儿童的意义和路径。原先我是认为,让孩子去记忆代码命令、理解语法结构是非常困难的事情。但在实际场景中才真正感受到Python的强大。也就是说,孩子完全可以像使用Scratch那样去使用Python,其飞速发展正是源自于开源社区内丰富的Python库。

于是我们再次从绘图起步,导入了Python的绘图库开始进行实践。这一次孩子又是不知疲倦地自我探索,在电脑前一坐几个小时不带喝水吵闹的。作为父母在旁边都不得不感慨,哪有什么注意力问题,但凡是孩子的兴趣所在,他们都能向你展示什么叫专注。

有了Python绘图的成功体验,孩子主动提出要深入学习。于是我给她找来一本非常浅显的Python入门书,让她自己跟着书去琢磨。这下她更全面地体会到了做编程并不仅仅是写代码,还包括了无数个解决问题的过程。

她知道了怎么安装Python环境,怎么使用代码编写笔记本,怎么下载安装各种应用库。当中有一个包在安装时反复出错,我们就一起来学习阅读出错信息,然后去用排除法确认问题出在哪里。经过两天的不断尝试,当她终于把软件包安装成功时,那种成就感带来的快乐,我相信于她而言,一定是刻骨铭心的。

后面她又学着用Python的包做了一个微信聊天机器人,并不亦乐乎地找各种微信好友用这个机器人代她聊天,小机器人就像Siri一样自如地跟朋友一句一句地对话,让她真实地感受到了人工智能的魅力所在。

可以发现,这个学习过程的起始阶段基本上回避了记忆编程语言的代码和语法,更多地就像使用Scratch编程一样,去把指令积木进行组合。或者你可以想象,一个一个的Python包就像是乐高的一块一块积木。拿到积木的人首先考虑的一定是怎么搭建而不是积木的材质和原理,而我们今后在各自专业领域的编程基本上也属于软件包的逻辑搭建,而非全部从零开始写。

这就是Python给软件编程带来的革新,这就是Python在短短几年里就能位居第一的原因,这就是开源文化带来的深刻变化。这些话并非是为Python写的广告软文,而是让我们去思考为什么儿童需要、可以并且能够去学习编程、接触Python这样的语言。

Python爬升得如此之快,但并非所有的老资格码农都有热情去重新学习这门编程语言,从而切换到新的研究领域。况且,Python最擅长的大数据、人工智能领域,对码农的抽象思维能力和数学建模能力要求极高,很多码农是无法胜任的。这才是很多不具备强大的逻辑思维能力、不及时进行知识更新的软件工程师遭受职业危机的根本原因。

眼看着Google研发出了比医生更能准确检测肺癌征兆的机器人,眼看着昔日的巨人IBM深陷泥潭股价腰斩……这些发生在我们身边的抑或是发生在太平洋彼岸的故事无不都是在启示我们:

任何一个希望进入未来前沿领域的人都不能忽视编程,但编程真的不是写两行代码。

儿童学习编程的重点在于培养编程思维、学会分解问题、学会将现实世界的问题抽象成数学模型;儿童编程的重点不在记忆那些抽象的概念上,比如变量,比如字符串和字典。

儿童学习编程就好像学习音乐,在音乐中锻炼了乐感,在编程中锻炼了逻辑。Hello World,Hello Kids!祝我们都爱上编程。

 

Lilian

精益六西格玛黑带大师,家有上三年级的女儿。身处用数理思维看世界的管理咨询界,发现K12数学教育中充斥着急功近利的套路教学模式,不甘心孩子被拖入黑洞,便决定自己学习研究。学习美国数学爱好者的集结模式,组建有一个基于微信群的强关联的Math Circle。

-End-

Be the first to comment

Leave a Reply

Your email address will not be published.


*