编程本来是离我们非常遥远的一个概念。但是随着人工智能时代的到来;越来越多的图形化编程机构的出现( Scratch、编程猫);机器人编程(乐高、其它);以及以竞赛为目的编程Logo、C++的普及。让少儿编程、机器人编程几个字眼变得异常熟悉。编程这个概念也越来越被更多的人认知到。(不清楚这几个区别的可以看下科普文章:少儿编程?机器人编程?人工智能编程你想知道的答案都在这!)也因此,越来越多的家长也开始在关注自己的孩子应该学什么?应该报什么班?为什么要学这些?学了有什么用?且听我慢慢道来,为了你的孩子少走弯路请认真看完。
人工智能时代必备技能
一个时代需要一个时代的必备技能,在古代交通工具以马为主,因此学会骑马就是一项生存的技能(你可以不会、但是会的人更有机会)。后来进入工业社会,我们有了汽车。所以很多人会去考驾照。开车会成为一项基本技能(一开始很多人会觉得这是专业的人做的事情,或者有的人会觉得我就天天打车、坐公交即可。我们不排除这样的人。但是诚然开车已经成为了我们现代人的基本技能)。再后来就是互联网的普及,所有人开始学电脑因为电脑无处不在。不学会电脑就找不到好的工作,所有生产环节都用电脑取代了。不会用电脑也可以工作但是选择的空间非常少。也因此催生了一门新的职业-软件工程师,也就是专门从事编程的人。一开始只在专业的科研机构。后来出现在在大学和科技类公司。再后来成为一种普遍的职业而存在。甚至成为高科技、高薪的代言词。随着科技的不断进步,人工智能各项领域的应用和研究取得突破性的进展使我们越来越多的人相信人工智能时代即将到来,而人工智能需要我们用新的思维模式思考问题、解决问题而这恰是编程所能带给我们的(编程思维)。也正因为这样各国现在从学前、小学开始就普及少儿编程教育、开源创客也就是时下流行的STEAM教育,编程只是其中一个分支。
那些比编程本身更重要的东西
其实不只小孩子就是大人在学习编程的时候也会有各种各样的疑惑(这个时候可以看另外一篇科普文章:你肯定学了假的编程)。编程是计算机科学的一个分支。很容易想到编程也是科学的一个分支。既然作为科学,那自然带有科学的一般属性(客观真理性、可检验性等)。所以学编程更重要的不是编程本身而是编程给你带来的编程思维上的转变。至于能用编程解决实际中的问题这只是附带的效果而已。
编程说:只要你的代码还是错的,结果就永远不会对
我们不得不承认,现在的孩子都是家长手里面的宝。因此孩子多多少少身上会有一些不痛不痒的毛病。这些毛病无可否非,很多随着他年龄的增长会自己修正,但是有些毛病却会跟着他一辈子。比如最简单的一个例子:比如很多家长包办了孩子上学的所有事物,打扫卫生、准备课本、准备教具等。经常听到一个有趣的现象,小孩子上课没有带书本,怪罪父母长辈没有帮她把东西收拾好。其实只要换成别人家的孩子我们家长一想就很明白的道理,小孩子读书不是给家长读书,这是他自己的事情,他不当一回事没准备好,怎么可以怪别人。这样长此以往,考试不好他也会认为是试卷的问题,老师的问题。等他长大出社会了,工作不顺心,他也会自然而然的以为是公司环境的问题。这就是你的思维模式要是错的,那结果就永远不会对。这样无数次犯错你还是找不着重点,没办法发现真正的问题。而学过编程的孩子都知道,在编程的世界里面,只要你的代码是错误的,结果一定和你预期的是不一样的。这是编程所要教会孩子的道理。除非你找到了错误的所在否则你是无法真正解决问题的。但是经常看到很多家长虽然给孩子报了编程课,但是还是用旧的模式,编程课要带什么,要准备什么也包办。连代码要怎么学都要指挥一下。这样学的编程是没有灵魂的。也失去了学编程最重要的作用。编程所要教会孩子的道理:越早纠正错误,代价越低,错误永远不会自动消失,请不要带着侥幸的心态。
编程说:我不容许你有半点失误,因为我的世界只有0和1
在编程的世界里面有一个神奇的规则那就是来自数学的布尔代数(真和假)。也就是无论你是什么在编程的世界里面最终都是0和1。以至于你的错误根本无法逃过计算机的法眼。在编程的世界里是不容许有半点错误的,因为哪怕是一丁点的问题都会导致结果不符合预期。其实我们生活中有非常多这样的差不多先生。做什么事情都来一句,这样就好了这么认真做什么。但是仔细想一想每次都差一点点长此以往,量的积累引起质的飞跃,到最后差的就不是一点点了。其实现在人和人之间的智商都差不多(那种世界公认的天才除外,真的是那种天才的话肯定会具备自学能力拥有这样孩子的家长也不会看这篇文章了)决定人和人之间差距的往往是细节。其实非常多的父母都觉得自己的娃很聪明啊,差一点点不要紧。其实这就打错特错了,只要稍微注意观察就可以发现,读书时候那些非常聪明的人进入社会之后并不一定取得好的成绩,当然这有一部分客观因素,其实聪明的孩子往往有很强的优越感他们会觉得自己什么都会但是其实并不是,因此他们在对待说处理的事情上就比较容许自己犯一些小的错误。所以经常会看到班级里面最聪明的孩子往往不是最先做出准确答案的。而我们在学编程的时候其中一条最重要的就是你不能差一点点,因为你的结果一定和你预期的不一样。因此经过长期的编程训练,孩子们会懂得一个道理,在科学的领域,要么是对的要么是错的。没有一半对的一半错的。你的世界不能有半点的马虎。代码要么是对的要么是错的,永远不会半对半错。差不多这一套,永远行不通!
编程说:你能坚持调试代码,你一个会成为一个有毅力的人
在编程的过程中有一个很重要的步骤调试(Debug)。很多家长一看到自己的孩子写代码,结果出不来就在那开始着急,你怎么这么笨啊,你到底有没有听啊,你怎么回事啊。然后就打算开始上手指挥了。其实在编程的世界里面很少有一次能出准确结果的,都是在不断的调试中也就是一步步修改最终实现自己想要的效果的过程,这个过程能培养孩子发现问题、解决问题的能力。编程最重要的不是让你做出准确结果,而是让你明白你是如何一步步靠近准确结果,最终得出准确答案的。这个过程对于培养一个人的耐心而言是非常有意义的。一个人能在一次又一次的失败面前,不断的坚持最终获得成功的心里历程并不是简单的一两句能形容的。也是没有经历过这个过程的人无法体会的。这种特质会伴随他的一生,在他以后的生命力,无论遇到的是顺境还是逆境他都会不断的调整自己的状态,最终取得自己想要的成功。而且再一次又一次的调试过程中,会不断的发现有更好的解决方案。慢慢的孩子就会形成这样的一种意识:完成一件任务有很多种方式,但是总有一种方式是最高效的。如果跳过了调试这个步骤,直接给他们答案,那是没有任何意义的。那样的目标导向并不是编程所要带给我们的。
学编程的心态决定了编程的价值
编程作为计算机科学的分支,因此也导致了和其它不同学科的本质区别。举一个很简单的例子:如果你去学画画,那评判你画得好不好的因素的相对来说比较主观。而且画得好画得不好都叫画画。区别只是价值不一样而已。但是编程是一个完全不同的概念,在编程的学习过程中,要么做出来,要么做不出来。没有做出来好还是不好。也就是编程的结果要么是对的要么是错的,而且这个对还是错是完全客观的有一整套科学严谨的规则。不存在有好一点的对或者坏一点的错。如果是一开始的兴趣引导,那适当的忽略编程的本质属性是可以理解的,毕竟没有兴趣一切都无从谈起。但是随着学习的深入,并不能再用类似的心态去学习。很多人在学编程的时候同时还学各种兴趣班,这个时候就会出现各种取舍,总觉得每一个都要兼顾,但是我想说的是差一点点的编程比不学编程更糟糕,因为差一点的编程会把你的所有毛病全部训练出来。当然很多机构抱着赚完就好,不管你学完之后要干什么,对你长大只有有什么影响的话。那他们要做的唯一一件事情就是找一堆“专业”的人代言,拼命的吸引你的眼球孩子的兴趣,至于效果嘛,反正有人代言。而且看到效果也要等到孩子长大之后了,不影响赚钱的。其实编程就如一开始讲的,是人工智能时代的一种新的技能,会伴随孩子的成长。因为编程的过程应该是一个系统性的过程,而不是一个学一下因为别人都在学、炫耀一下因为可以告诉别人自己的孩子多了一项本事。那样的编程只会害了孩子!
真正决定编程价值的是你学编程的心态和你学编程的过程中的态度!
网友评论