程序员老爹:对比几种编程语言后,我感悟出少年编程的真谛

曾经有朋友对我说,自己一直觉得未来人工智能是大趋势,所以正在让孩子学编程。可是,他看孩子学的编程都只是用一款叫Scratch的软件拖来拖去,做做简单的动画和游戏,和他想象的“高大上”编程实在大相径庭!

其实,我遇到的很多家长都这么想:报了编程课,学了Scratch,但实在觉得这玩意儿也太“不高级”了吧。这样的“编程”,真的有用吗?

Scratch真的“不高级”吗?大错特错!

看真正的程序员们经常用到的编程语言,都是一行行“不明觉厉”的代码:

程序员老爸:比较了几种编程语言后,我终于get到少儿编程的真谛

 

而目前大部分小朋友们在学的编程界面都是这样的——花花绿绿色彩斑斓,一个个图标看着还有点萌萌的:

程序员老爸:比较了几种编程语言后,我终于get到少儿编程的真谛

 

再看程序员们可以用C、python、Java实现谷歌人工智能展上各种酷炫的功能,而用Scratch通常也就是做点简简单单的小游戏、小动画……这会给很多不了解编程的人一种错觉:写代码的才是正经的“编程”,Scratch这种编程语言,不过是给小孩子玩玩的玩具罢了。

孩子学的编程,真的“不高级”吗?

这个问题对于不了解计算机程序的人来说可能有点难,没关系,我们来看一个大家都懂的例子:

你1岁半的娃看到对面有辆小车子,会跟你说“车车”,你能懂他的意思吗?显然是可以的。当然,我们大人说话,用“车”就行了。

“车车”和“车”之间,有“高级”和“不高级”之分吗?

单从语言的功能来讲,两者是没有区别的。

因为我们使用语言是为了互相传递信息,让对方了解自己的想法。因此,只要能让对方听“懂”,所有的语言是一样的。如果硬要说“车”比“车车”更高级,是因为“车”相对来说表达效率比较高,更好用。

程序员老爸:比较了几种编程语言后,我终于get到少儿编程的真谛

加Ja va 君羊 8819-82657  获取最新Ja va基础资料工具教程

回到刚才计算机语言的问题上,大家都知道,计算机比较蠢,人类直接跟它讲话是听不懂的,所以才发明了编程语言来跟它“沟通”。只要能听得懂,使用哪种编程语言,都是一样的。

最初的编程语言,由于技术所限,比较难懂难学。但随着科技发展,编程语言也变得更接近人的思考和表达方式了——也就是说,那些越来越“说人话”,因此看上去显得“不高级”的编程语言,其实是真正的“高级语言”,因为它们更简便、有效率。

甚至可以说,没有太多语法限制,易于编写的Scratch,相当于简便有效的“车”,而看上去高深莫测的C语言才是那个“车车”。

所以,Scratch绝对不是孩子玩过家家的工具,它是一门“高级”的编程语言

到目前,这款由麻省理工学院(MIT)设计开发的少儿编程工具已经拥有40多种语言的操作界面,在超过150个国家里被使用。在它的官方网站上,你可以看到将近上千万的粉丝们正在上传作品。

程序员老爸:比较了几种编程语言后,我终于get到少儿编程的真谛

 

学到了计算机语言中的“道”,将来流行什么都轻松上手

明确了Scratch不是玩具之后,可能有人会说,好吧,既然Scratch是一门“高级语言”,那为什么专业程序员不用呢?或者换一种说法,学编程还不是最终要学C、python、java这些语言吗?

这个问题可以用一句话来回答:“假如孩子现在脚是36码,长大了总归要到40码的,那么你会直接让他穿40码的鞋吗?”

具体解释,可以分三点:

1、哪种语言流行也是要看潮流的

语言的更新换代是很快的。互联网刚刚兴起的时候,做网站最赚钱,为了编网站大家都在学Java、C#;现在大数据和人工智能成了主流,大家又开始学python……这就好比前两年大家都在看甄嬛传,最近又都在刷如懿传和延禧攻略一样。明年又会流行什么新剧?20年以后又会用什么编程语言?谁也不知道。

 

程序员老爸:比较了几种编程语言后,我终于get到少儿编程的真谛

 

2、学到编程语言的“道”,将来流行什么都不在话下!

虽说编程语言的未来无法预测,但你可能会发现,真正的编程达人,都能同时掌握好几门语言。他们是怎么做到的呢?

首先,他们确实愿意花时间,其次,各种语言中,必然存在着“共通性”

比如,我家娃妈在尝试了很久、糟蹋了N多面粉、终于学会做最基本的蛋糕后,很快就学会了做海绵蛋糕、戚风蛋糕、巧克力蛋糕……“术”虽不同,但“道”却始终没变。

学编程语言,最重要的其实也是其中的“道”——语言本身的元素和逻辑结构。

比如,我们平时会说“下雨的话带把伞”。这话其实是“如果天下雨,那就带把伞”的省略版本,它本身带有一个逻辑判断:天下雨→带伞。

在不同的编程语言里,只要表达清楚这个逻辑判断,那么结果都一样。

下图的4种语言虽然不同,但都表达清楚了这个逻辑判断,掌握了“道”,剩下的就都是细节了。

程序员老爸:比较了几种编程语言后,我终于get到少儿编程的真谛

 

所以说,语言语法是“术”,用哪种都无所谓,但能不能把编程玩好,关键还是能不能把你的意思结构化、逻辑化。把这个“道”学会了,换哪种语言学习,都是换汤不换药的。

3、孩子用scratch入门,更能掌握编程的“道”

对于小年龄的孩子来说,要想让他们对一件事产生兴趣,最好的方法是不要把事情弄得太复杂。

比如说,我想让女儿通过下棋来锻炼思维,于是教她国际象棋,可我家娃资质平平,国际象棋对她来说规则比较复杂,于是很快就不耐烦了。但有一天她却说要跟我下围棋,我很纳闷,没人教过她,她怎么会?原来是幼儿园里有小朋友学过,教了她。围棋的规则简单易上手,只要学会一两条规则就能开始下了。但就是这简单的规则,在棋盘上也可以演变出很多门道,小家伙觉得好玩就在这里。

学编程,也是同一个道理。

直接让孩子学程序员用的那些程序,因为其中涉及大量的语法,英文符号。万一错了还要花很大的精力删除重新输入,对于孩子来说就三个字——太麻烦!!如果编程=麻烦,那又谈何培养兴趣呢?

从刚才的图中大家也可以看到,4种表达方式中,估计只有最右边的Scratch才是你愿意去看的吧。这种形象生动的方法,让孩子可以抛开琐碎的“术”的成分,用更方便的方式践行自己的“道”。

程序员老爸:比较了几种编程语言后,我终于get到少儿编程的真谛

 

3、小孩子学编程,一定要“玩”出来!

现在随便看一篇关于编程的文章,都会看到下面这些词句:

“人工智能时代,再不学编程,就要跟计算机抢饭碗了”

“未来智能时代,学会编程意味着拿到了高薪职位”

其实对这些话,我是非常反感的。

学编程就为了混口饭吃?未免太小看编程了吧!

编程能用来干什么?我不知道,我也不想知道,这样才给了编程以无限可能。

换句话说,世界上能用编程做的事儿,实在太多了,多到很多事儿我们大人都还没想明白。

而小学阶段的孩子,思维还没有形成那么多定势,想象力天马行空,他们的世界有太多的未知,为什么要把他们框在我们的已知之中呢?

学编程,还是让孩子像学习那些最重要的能力——走路、语言、探究能力、创造力……一样,在“玩”当中学习吧。

下面,我要向大家介绍一个从小就很会“玩”的人:

4岁:学爱迪生孵鸡蛋

6岁:因为听了爸爸说吃饭是为了补充能量,又在另外一个场合里听爸爸说电里面就带有能量,于是大脑里“天才地”将两个不想干的信息联系起来,拿着铜导线去捅插座给自己“充能”

8岁:总觉得自己是外星人,正好又自学了一点RC振荡器之类的无线电知识,于是开始自制天线联系外星人

真不是一般的会玩啊!而他最终“玩”出了这样的成果——

大学:参加远在上海的 Intel 杯全国嵌入式设计大赛,每天和队友一起睡在实验室,连过年也没回家,付出了超乎常人的努力之后,整个团队一举夺得大赛亚太区第一名。

留学:去德国留学后,开始了自己人生中的第一次创业:创建 EUMLab,并开发出一款享誉全球的节拍器软件 Pro Metronome,App 连续五年获得苹果推荐,上过三星电视广告,帮助了全球3000万用户学习音乐,并籍此实现了个人的财务自由。


 

 

 

       

没有更多推荐了,返回首页