没有人天生喜欢编程,兴趣也需要培养!

 

兴趣在人的生活实践中,具有重大的意义。兴趣可以使人集中注意力,产生愉快的紧张感,它对人的认识和活动会产生很积极的影响。

这是真的,python之父吉多·范罗苏姆对编程浓厚的兴趣,让他在无聊的圣诞节期间,选择开发新语言,而不是选择在床上躺尸。畅销书作家约翰 Z. 森梅兹,可以每天花上十几小时的时间,制作编程教程,动力来源便是兴趣。

无数的事实在告诉我们,兴趣真的可以左右一个人的方向和发展瓶颈。然而,绝大部分人对于“兴趣”二字,存在着很大的误区,认为兴趣是天生了,而不是被开发出来的。

没有人天生喜欢编程,兴趣也需要培养!

他们的理由是,你看哪一个大佬不是从小就对编程感兴趣?从小就开始学编程的?乔布斯11岁、扎克伯格10岁、特斯拉创始人马斯克10岁就对编程产生了浓厚的兴趣。

他们隐藏了很多事实,让你对兴趣产生了偏差,认为兴趣是天生的。乔布斯从小就生活在硅谷附近,邻居都是惠普公司的职员,扎克伯格的父亲从小就开始教扎克伯格编程,并为他聘请名师,马斯克爱上编程,也都得益于父亲的启发。

兴趣是成功的基础,而兴趣,并不是天生就有的,而是靠后天开发的。

那么,我们该如何对编程产生兴趣,从而服务于学习编程呢?

没有人天生喜欢编程,兴趣也需要培养!

 

如何培养孩子的编程兴趣

 

 

学习驱动力

1

举一个简单的例子:

小时候写寒暑假作业,我们知道早写早轻松,也知道只要作业完成了,基本上是想干什么干什么,大人不会太多的干涉。然而知易行难,大部分人还是选择先玩后写,寒暑假时间很长,写作业并不是一件很紧急的事。

等到快开学的时候,才意识到,如果作业不做,就会得到老师的批评,甚至还有请家长的风险,写作业已经成为了一件不得不做的紧急事,我们才开始行动了。紧急or不紧急,在我们的心里是有排期的。我们要做的,只是将学习编程这件事的紧急程度提高。

怎么让自己认为学编程,真的很紧急?

学习的驱动力,由两方面组成:动力和压力。给自己绘制一张图,列出自己不得不学习编程的动力和压力因素。

没有人天生喜欢编程,兴趣也需要培养!

让自己明白了学编程是必须马上做,现在做的事情后,就容易产生一个良性的结果。有了学习的驱动力,是远远不够的,如果落实不到执行,这一种图表就没有意义。

 

 

分解目标

2

 

如何让自己能够持续不断的学习,并且达到自己想要的效果?那么就给自己制定一个目标,比如我要今年学会做一个游戏,明年学会做一个app。

目标不能实现,很大程度归咎于没有对目标进行分解,长期的目标显得那么望尘莫及,而如果我们将长期的目标,分解成多个短期目标,实现的难度就会大大的降低。

管理学之父德鲁克曾提出一种分解目标的方法-逐级承接分解法,这一方法可以将目标进行分解,从而提高实现目标的成功率。

没有人天生喜欢编程,兴趣也需要培养!

作为编程初学者,我们并不知道要学那些知识,更不知道学习这些知识需要多长的时间。

首先,我们需要查看对应课程的学习路径,了解所有需要学习的内容(查看相关教程目录)。

其次,试学几个小节,方便我们根据自己的学习能力,确定学习目标(比如scratch的相关视频、图文教程)。

需要注意的是,制定学习目标时,一定要低估自己。很多同学喜欢制定一些看似很宏伟的目标,每天能学两个小时,这两个小时的学习极限是十个知识点,于是就给自己制定每天10个知识点的学习目标。

没有人天生喜欢编程,兴趣也需要培养!

高估自己的后果是,天天目标达不到,或者无比艰难,进而心生放弃的想法。所以,我们一定要低估自己,制定的学习计划,是每天最低的学习量。如果达到了目标,可以继续学习明天的课程,这样一来,原本计划10天要学习完成的课程,可能5天就全部学完了,成就感满满。

有了学习的驱动力,也有了一个可被分解的目标,还远远不足以建立“兴趣”,也许你还处于“被迫式”的学习窘境之中,没有关系,接下来的两个步骤,将会让自己爱上学习编程。

 

 

即时反馈系统

3

 

每按下一个按键,系统就会立即给予回应,每放出一个技能,都可以看到一个敌人倒下,还能听到独特的技能音效等等。反观现实生活中,几乎不存在这样的反馈系统。

在生物学中,生态系统有一个天然的、稳定的反馈机制,值得我们研究和学习。

要维持整个生态系统的平衡,大自然采取了两种不同的方式,第一种是让生物的种群数量增加,并具有多样性,保证不会因为物种太过单一而失衡,这属于正反馈。

第二种是通过各种方式制约生物种群的发展,减缓系统内部的压力,这属于负反馈。

正反馈和负反馈,让整个生态系统维持数千万年的平衡,并且处于不断的进化中。

没有人天生喜欢编程,兴趣也需要培养!

学习编程也是如此,我们需要建立这两种反馈方式,让自己在不断学习新知识的同时,不至于失去兴趣。

 

 

习惯成自然

4

 

古语云,万事开头难,说得刚开始做某件事的时候,总会觉得特别难,后来就简单了。有人认为,万事开头难的原因,是源于我们对想做的这件事的不了解。

其实并不是这样的,之所以刚开始就觉得难,是因为我们还没有养成做这件事的习惯。

刚开始减肥,你觉得难,是因为你还没有养成天天跑步的习惯,还没有戒掉吃零食的习惯;
没有人天生喜欢编程,兴趣也需要培养!
刚开始学编程,你觉得难,是因为你还没有习惯编程的思维方式,还没有戒掉玩游戏、看电影这些习惯。

假如我们能养成学习编程的习惯,这件事就变得没那么难了。

在行为心理学中,人们把一个人的新习惯的形成,并得以巩固至少需要21天的现象,称为21天效应。

 

明白了这一规律,你会发现,其实学编程真的没那么难,贵在坚持罢了。

 

学习编程的理由

 

 

编程提高学术表现

1

 

1、数学:编程有助于孩子们将抽象概念形象化,让他们将数学运用到现实世界中,让数学变得有趣和有创意!

2、写作:会编程的孩子能够理解简洁和规划的价值,提高写作技巧。许多孩子甚至使用游戏化编程工具作为讲故事的媒介

3、创造力:孩子们通过实验学习,并在编程时加强他们的大脑,发挥他们的创造力。

4、自信:来自很多家长的反馈,他们已经注意到孩子们正在通过编程解决问题,从而建立起自信心
没有人天生喜欢编程,兴趣也需要培养!

 

编程构建软技能

2

 

5、关注和组织:当他们写更复杂的代码时,孩子们自然会更好地关注和组织。

6、耐心:通过编程进行调试 – 并没有比通过挑战来构建毅力和耐心更好的方法!

7、沟通:编程教授逻辑沟通,增强口头和书面技能。想一想:学习代码意味着学习一门新的语言!
没有人天生喜欢编程,兴趣也需要培养!

 

编码为未来铺平道路

3

 

8、分享:孩子们自由创作自己所思所想,用游戏或者动画方式展现出来,并且分享给其他小朋友!

9、生活技能:编程是数字时代的基本素养,对于孩子来说,了解并且能够创新技术是很重要的。

10、职业准备:对科技行业的员工有很高的需求; 在幼儿时期掌握编程技术,可以让孩子们在任何他们选择的领域中脱颖而出!

转自:https://mp.weixin.qq.com/s/GkpXp7Nd3anFCctNMt9p-Q

少儿编程究竟要不要学?有多大用?一文帮你理清楚!

少儿编程究竟要不要学?有多大用?一文帮你理清楚!

逃妈

坐标美国达拉斯

分享原汁原味的美式教育理念和实践资源,著有育儿畅销书《聪明的妈妈教方法》,《孩子受益一生的思维力》

 

 

最近我们所在的美国北达拉斯地区来了一大群“不速之客”,我家附近就有一个聚集地:

 

少儿编程究竟要不要学?有多大用?一文帮你理清楚!

 

时不时能看到它们穿街过巷、在小区里奔跑:

 

少儿编程究竟要不要学?有多大用?一文帮你理清楚!

 

猜出来是什么了吗?对!就是负责送快餐送外卖,避免人们面对面直接接触的机器人:

少儿编程究竟要不要学?有多大用?一文帮你理清楚!

 

其实快递机器人的技术并不新鲜,好多年前就有了。不过之前都是小范围试用,今年受形势所迫,迅速投入量产,也终于走进了寻常百姓家。

 

实际上这几个月被逼出来的不仅是“外卖机器人”,还有辅助诊疗、智能消毒、体温检测、防控播报等等的各种机器人…就像当年“非典”推动了电子商务的高速发展一样,这场肆虐全球的新冠,已然悄悄为人工智能、机器人技术按下了“快进键”

 

我猜,很多在科幻电影看到的未来技术,也许就是这一届孩子长大后的日常。

 

那么话说回来,应对这个变化,孩子现在该做些什么?该学些什么?

 

今天的文章标题已经告诉你了——编程是个必备技能。因为无论是要实现、还是使用这些技术,都离不开编程。

 

这也是近两年很火的话题,朋友圈时不时能刷出各种培训消息,很多家长也在后台问到,“编程究竟是学什么?娃要不要学?”、“该怎么学,学哪个?”、“我对编程一窍不通,娃能学吗?”

 

我的观点是,无论孩子学什么,家长不求全懂,但一些本质的东西是要先了解清楚的,学习目的是什么?它培养了孩子什么能力?编程思维究竟是一种什么思维?对孩子有什么帮助?

 

把这些搞清楚,你才能为孩子选择合适的学习资源,也容易在过程中判断孩子的学习效果。

 

少儿编程究竟要不要学?有多大用?一文帮你理清楚!

 

今天就来和大家好好聊聊少儿编程。别的不敢说,作为一位本硕七年计算机专业,世界五百强公司里写过代码,带过软件团队,教育公号里最会写程序,IT行业里最会写教育文章的麻麻少儿编程究竟要不要学?有多大用?一文帮你理清楚!,我想这个话题我还是能从专业的角度给出一些见解的。

 

首先我得说明一点,学编程不等于一定要当码农。我大学同学毕业后头5年大多都还在IT行业,在写程序,不过10年后都七七八八地“跨界”去了,我就是其中之一。编程中积累的经验和能力让我们在其他行业也游走得尚好,因为它不光是一项技能,更是培养一种思维,一种思考问题的角度。

 

一位搞艺术的朋友曾跟我说过,学了画画之后看待世界的视角和之前是不一样的,往往会更注意一个东西的细节、质感,喜欢变换看事物的角度,试图去寻找它“透视”在不同平面上的样子。

 

每一个新领域都能给我们带来新的知识,装载着这些新知识的我们自然也会获得新的思维,新的能力,新的看待世界的角度。学编程也如此。

 

编程的本质是什么?用一句话来解释,编程就是和电脑对话,用电脑听得懂的语言,告诉它我想让它做的事。

 

这跟和人说话有什么不同呢?

 

比方说我想喝水,可以跟逃逃说“Hey逃逃,帮我倒杯水!”

 

同样的一句话如果要让电脑明白该怎么讲?我得先告诉它什么是“杯子”、什么是“水”、什么是“倒”,然后再告诉它怎么去倒,比如先左转75度,往前走两米,左臂下放50度…

 

OMG, 很刻板很麻烦很不舒服对不对?

 

是的,咱们人类的天性里充满了感性、随意、散漫、喜欢八卦、爱听故事。

 

但电脑不是,作为新时代的高科技产品,它理性、严谨、不讲故事讲数据,它要么听不懂我们的指令,一旦听懂了就会执行,而且每次都会执行。可不像逃逃那样,明明听懂了,但帮不帮我倒水主要看心情。

 

所以,要跟电脑沟通对话,我们也必须让自己变得理性、严谨起来,从电脑的角度去思考问题,这就是所谓的编程思维。

 

这种思维能带给孩子什么好处?下面我用一个大家都很熟悉的小游戏“贪吃蛇”作例子,把编程思维所培养的能力逐个掰一掰。“贪吃蛇”是我当年学会编程之后所写的第一个完整像样的程序,写完了自己玩得乐此不疲,所以印象特别深刻。

 

少儿编程究竟要不要学?有多大用?一文帮你理清楚!

贪吃蛇游戏规则:用上下左右键控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,不能碰到自己的身体,等到了一定的分数,就能过关,挑战难度更高的关卡。

 

 

01

拆——分解问题的能力

 

要写一个“贪吃蛇”游戏,哇,这是一个很大的问题,该怎么入手?如刚才所讲,得想办法让电脑把这件事情搞明白,有哪些步骤,每一步该干什么,哪步在先哪步在后…所以我们首先得把这个大问题给拆了。

 

 

拆解

 

在这个程序里,电脑主要处理两件大事:

 

1. 处理输入 – 收集用户操作信息

2. 输出响应 – 根据不同的输入,做出不同的响应

 

 

再拆解

 

1. 输入 – 用户的操作可以有按上、下、左、右键四种

2. 输出 – 相应地,贪吃蛇也要做往上、下、左、右走的动作

 

 

我们把第2点再拆解

 

贪吃蛇每走一步,可能有这几种情况:

 

1. 吃到苹果

2. 撞到墙

3. 撞到自己

4. 什么都没发生

 

 

我们把第一点“吃到苹果”抽出来,再再拆解

 

在这步里,电脑可能要这些事情:

蛇张开嘴巴

苹果被咬掉

播发吃苹果的声音

蛇闭上嘴巴

身体长长一截

 

看起来很简单的程序,拆解后步骤可真多呀,而且这还只是其中的一条分支。孩子学习编程的过程,就是不断地训练他把复杂、庞大的问题拆解、理顺的过程。

 

这种思维在学习、工作、生活中处处都用得着。在解决复杂问题时,问题的分解必不可少,因为只有分解成每一个可以操作、可处理的小问题时,才算是把“大问题”落了地,一个一个小问题搞定了,大问题也就解决了。

 

具备这种能力的人做事情是耐心的、有条不紊的。比如同样面对一道有挑战的数学题,分解能力好的孩子会列出清晰的解题步骤,搞定一步是一步,即使最后不一定能完全解答出来,也能清清楚楚地知道自己的进展;而有些孩子则不是,没有分解的耐心和能力,遇到难题时脑子一团乱麻。

 

02

整——发现并且整合“重复规律”的能力

 

先告诉大家一个秘密,程序员圈子普遍比较清高,常常为了表现自己与众不同,会用些听起来很高大上、但让外行很费解的术语,比如接下来我说的发现“重复规律”,99%的程序员GG会告诉你的是“要模块化”,摇头听不懂的话,他再假装体贴地解释,哎呀,就是善用“函数”,封装方法啦~

 

都是些什么鬼?

 

其实说白了,就是幼儿园孩子都能搞得懂的“找规律”,观察和找到那些重复发生的规律。比如“贪吃蛇吃苹果”所发生的一系列动作,是程序中多次会发生的,无论苹果在左上方还是右上方,无论蛇是从上面吃还是从下面吃,都是同样的一组动作,那么我们就可以把这组动作打包,给它取一个名字叫“吃苹果”。每次蛇遇到苹果时,就可以直接把“吃苹果”拿出来用,而不用重新把它所包含的一系列动作再想一遍,搞不好的话还会有错漏。

 

在编程的过程中,孩子得一直做这样的训练,发现一些可以重复的单元,把它整合起来,让计算机去重复它。

 

这种能力可以大大提高我们做事的效率。举个数学上最简单的例子,比如计算32×(37+4)+47×(37+4)+21×(37+4),它就相当于(32+47+21)×(37+4),其中的(37+4)就是一个重复的单元,可以整合。

 

观察那些做事麻利,效率特别高的人,就是具备了这个能力。很多孩子解题快,就是他善于发现和总结“重复规律”,脑袋里自备了一个装有很多类似于“吃苹果”那样的方法库,遇到时直接调用,不用再从头到尾想一遍,也不会错漏。

 

有段时间美国沃尔玛超市发现尿不湿和啤酒这两样商品经常会被一起销售,背后的原因是妈妈得在家里照看孩子,买尿不湿的通常是下班后的爸爸,这时爸爸很喜欢顺便再买几瓶啤酒犒劳自己。发现这个规律后沃尔玛就把这两样东西放在一起,结果不仅提高了尿不湿和啤酒的销量,还大大提高了整个超市的客流量,因为爸爸们发现逛沃尔玛比其他超市更方便。

 

创新不一定指做出个前所未有的新产品,对现有的运行方式进行优化改进,就是一种创新。而发现并整合“重复规律”的能力让我们更容易找到创新的机会。

 

 

03

析——逻辑思维能力

 

这大概是程序员最引以为豪的一种能力了。先看个笑话,

 

娃妈给程序员娃爸打电话:“下班顺路买10个包子带回来,如果看到卖西瓜的,就买一个。”

 

结果娃爸手捧一个包子进了门。

 

娃妈怒道:“你怎么就只买了一个包子?!” 

娃爸答曰:“因为看到了卖西瓜的。”

 

类似这种“黑” 程序员的段子有很多。不过我得再悄悄告诉你一个秘密,这些段子的创造者不是别人,正是程序员圈子本身,嘿嘿,他们只是换着法子来得瑟自己的思维有多么严谨。

 

前面说到,编程就是和理性严谨的电脑对话,所以编程者也必须较真起来。

 

逻辑思维中有个非常重要的原则叫做MECE(Mutually Exclusive and Collectively Exhaustive),意思就是“相互排斥且整体完备”,也就是“不重复,不遗漏”。比如下面右图是遵循了MECE原则的,左图就没有。

 

少儿编程究竟要不要学?有多大用?一文帮你理清楚!

 

在编程过程中,处处要考虑和遵循MECE原则。比如在贪吃蛇的程序里,蛇每往前走一步,可能会出现4种情况,

 

a. 吃到了苹果

b. 撞到墙

c. 撞到自己

d. 什么都没发生

 

这4种情况是互斥的,比方说吃到苹果的时候就不可能撞到墙,那么程序中就不能让苹果出现在墙上;而且,这4种情况覆盖了所有可能性,在写程序时如果只考虑了其中的2种或3种,就不“完备”了。此外,编程过程中还会涉及到很多处理“与”、“或”、“非”等布尔逻辑操作。比方说“蛇没有吃到苹果”与“蛇没有撞到墙”(!a && !b ),就等价于,“蛇撞到自己”或“什么都没发生”(c || d)。

 

这些思考对孩子来说都是非常好的逻辑训练。

 

 

04

改——调试纠错能力

 

最重要的事情最后讲。

 

当我把编程能带给孩子几项能力一一列出来的时候,发现这点是最重要,也是孩子最需要的。

 

任何事情都很难一次就完成得尽善尽美,程序运行起来发现不对有问题,这时就需要孩子去寻找出错的地方,并将它一点一点去改正。

 

程序的世界很单纯,只有0和1,对和错,没有模糊值。这跟写文章、画画什么的不一样,当读者、观众感觉一般时,可能是见仁见智,并不一定证明你的作品不好或者哪里有错,你也根本不知道该怎么改进。

 

但程序不一样,只要运行结果和期望不符合,就证明中间肯定有哪儿出错了,不过同时也意味着只要足够努力,就肯定能把这个错揪出来。就像你告诉一只猫,小黑屋里肯定有老鼠,它负责把老鼠抓出来,比它不知道小黑屋里究竟有没老鼠听起来要容易和有信心得多。

 

然而,实际上程序中很多bug都不是一下就能找到的,常常需要从头到尾把程序的运行顺序一步一步地跟走一遍,观察每一步的运行结果(专业术语叫“单步调试”)。这需要很多的耐心、观察力和专注力,对孩子的抗挫折能力也是一种磨练。

 

当调试经验丰富之后,孩子在写程序时还会懂得给那些“有可能会出错”的地方先做个记号,方便回头来检查纠错。他更关注于提高自己纠错的技能,而不是害怕、回避或者掩盖错误。孩子会越来越懂得,有错很正常,只要能把它揪出来,改正就好。

 

有些人总是在进步,因为他随时懂得回溯、调试、纠错,进而提升自己。

 

少儿编程究竟要不要学?有多大用?一文帮你理清楚!

 

一不小心写了很多,不知说清楚了没有。

 

以上这些能力,其实并不是编程特有的,但它们却是在编程这件事情上集体出现的。所以要是你问我,孩子有没必要学编程,我会很肯定地回答,有必要,因为它的确培养孩子的综合能力。

 

可几岁学、怎么学?市面上关于编程的产品很多,绘本、桌游、APP、网站、课程……该怎么选?我下次会再来一篇好好聊聊。

 

转自:https://mp.weixin.qq.com/s/CxVKFTbVZMjZxWuz3ANFtg

【每天五分钟学会C++】第02讲:输出cout(小学生也能学的C++入门视频教程)

录屏软件屏幕录像大师有水印,换了一个没水印的录屏软件 软件。

【每天五分钟学会C++】第02讲主要是讲输出,也是每个程序员的开门之作,那就是江湖上大名鼎鼎的 hello world!

算算可能写过十几种语言的hello world了,你说这帮大神有事没事就发明一种编程语言,真累死个人。

点击访问B站地址:https://www.bilibili.com/video/BV1hf4y127yq/

或者直接观看

【每天五分钟学会C++】第01讲:开发工具(小学生也能学的C++入门视频教程)

每天花一点点时间,比如五分钟,是不是能让一个小朋友或者零基础的人完成C++入门呢?

最近正好想尝试一下视频制作,于是就找了个录屏软件,开始做起来。

第一天还是有点不熟练,比如:录屏软件有水印,声音有点紧张,毕竟还是第一次献声,哈哈,

期待以后的改进版,

不知道给视频取什么标题,暂时先就叫:《每天五分钟,学会C++(小学生也能学的C++)》

先放在哔哩哔哩上看看有没有人看,老铁请点击下面链接观看

https://www.bilibili.com/video/BV1fz4y1X7Tz/