知识屋:更实用的电脑技术知识网站
所在位置:首页 > 教育  > 数学

孩子学习c++需要1对1吗?

发表时间:2022-03-24来源:网络

没想到遇到一题适合我的冷门问题。看了一下大部分答案都是定性的结论,没有分析过程。我来尝试结合「编程」和「教育」的角度分析一下,也为大家普及到底怎么看待现在非常火热的少儿编程。

在分析之前需要严正提醒一下,每个孩子的情况是完全不同的,在面对一个具体的场景和个人时,不会存在一个万能答案,所以家长也不要执着寻求别人给一个定性的答案。对于1对1编程教学,我相信无论是支持还是不支持的,都有充分多而且正确的理由,作为家长更重要的是解构分析问题的本质,再由自己做决定。这件事的本质当然就是「学编程」。

现在我们开始分析,首先是本文的主要结构:

一、理解「学编程」是什么

作为家长既然希望孩子在编程上学有所成,自己起码对编程是需要基本的认知才能做出适当引导。

我不认可很多老师把学生的学习任务转移成家长的任务,但我同样不认可家长完全把教导的责任完全推给老师。退一步说,如果你连一个老师的水平都无从判断,又怎么帮孩子找到更好地教学老师?

所以家长不需要代替孩子去学习,但一定需要了解孩子正在学的这件事,到底是什么。

大部分人说的「编程」其实是一个非常宽泛的概念,但从学习模块来划分,可以模糊简化成几步:

学编程语言学编程思想练习和实践

在拆解成3个模块后,大部分不懂编程的家长就可以快速地简化理解「学习编程」这件事。

为了再进一步帮助更多家长理解,我大胆地将「学习编程」这件事比喻成:「用英语做数学题。」

这样就非常容易理解了。

二、为什么「学习编程」可以比喻成「用英语做数学题」?

1.「用英语做数学题」最基础的第一步是什么?当然是要学习英语。因为我们要读懂题干,如果连题目都读不懂,就完成谈不上后面的解题思考了。另外,答题的时候同样是要用到英语,所以学习语言是第一步。

同理,编程语言有很多种,例如常见的C++,Phyton, Java, Swift等等,学习这些语言的语法是最基础的基础,是为了看得懂和能表达服务的。所以这一步,我们实际在做的是「学习语言」。

这里也解答了很多家长的疑问,为什么编程语言要叫“语言”。

2. 「用英语做数学题」第二步当然就是用学习数学知识和解题方法了,这是考查思维能力了,但可以再简化分解成两步

(1)能解出正确答案。

(2)以更快更优美的方法。

编程也是这样,首先你要学习算法知识和思想,也是要对指定问题能提出解决方案,而且要学习提高算法效率和简洁性。[1]

3. 「用英语做数学题」第三步我们这些经历过高考的家长都非常清楚,就是适当的练习,让自己更熟练并提升解题的「直觉」。编程也完全一样,这个道理简单到我不用再分析了。

从以上分析就可以让编程小白家长初步理解,自己学编程的孩子到底面临哪几项学习任务和困难。

三、 那么到底要怎么「学习编程」?

我们复习一下刚才说的编程学习的3个模块:

学编程语言学编程思想练习和实践

现在你已经可以用「用英语做数学题。」来完全理解它们了。

接下来的事就很简单了。但首先我必须声明,你可能觉得我接下来会提出鸡汤式的万能方法,而我遗憾的告诉你:不会。

因为每个孩子的情况都是不同的,我特别反对那些万能的育儿方法。家长要结合自己孩子的学习能力、特长和现阶段的掌握情况来自己分析和抉择。但我可以教你分析的方法。

首先看第1步「学习编程语言」,简化模型就是「学英语」。

要不要老师单对单来教?答案是可能要,可能不要。

请原谅我不能为了提高读者的满意度,而编造一个本来不存在的确定答案,世界本来就是多样性及复杂的。

如果你孩子的学习语言能力特别强,那么很多人通过看英语动画片也能学会英语。但是大部分的孩子学习语言都是枯燥而且需要耐性的。而且「语言」这个东西,很多时候并不一定有非常强的理由「为什么要这样说」,要仅仅是方便和习惯罢了。

所以有老师的好处就是,更高效地把一些语法规律和常见错误告诉孩子。这样学起来当然更高效,但同样需要孩子自己耐性地培养语感,最终转化成自己的大脑中语言体系的一部分。

所以,是否需要老师,完全是看孩子自身的情况而定,而最了解这一点的当然就是孩子的家长。

同时,对于一个已经学习编程一段时间的孩子来说,可能早已经跳过了这个阶段(毕竟编程语言不是真的语言,其实语法并不多)。如果是已经熟练掌握那就完全可以不考虑这个阶段的老师需求。


2. 第2步是「学编程思想」,简化模型就是「学数学知识和解题方法」

不知道大家有没有听过「六度空间理论」,引述百度百科上的定义:

一个数学领域的猜想,名为Six Degrees of Separation,理论指出:你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过6个中间人你就能够认识任何一个陌生人。这就是六度分割理论,也叫小世界理论。

「六度空间理论」揭示了一个规律:这个世界的信息是一层推导一层而来的。

「编程」还有数学、物理等理科都遵循类似的规律,很多老师主张的题海战术不会从根上解决问题,真正要学好这些科目的奥秘就在于:不是要让孩子学多少知识,而是要学透那些为数不多的基本定理和推论,让孩子碰到问题时,知道如果通过手上已掌握的资源,一步一步地推导寻找答案

有了这样的认知后,就可以把这一步的学习任务简化分解成两个任务:

(1)学透基本定理和推论(2)培养底层能力

分别分析:

(1)学透基本定理和推论

针对「学透基本定理和推论」这个任务,对于编程来说就是那些最基本的编程思想,例如「数据结构和算法」、「数学基础」(当然,编程所谓的数学基础其实并不基础,到了后期要用到很多大学的数学知识)等,如果在这方面自学能力非常好的学生,当然可以自学。但也有这方面自学能力没那么强的学生,需要老师指点。

正因为可能要老师,可能不要老师,才能突显家长的关键作用。因为,只有你才是最了解你的孩子。


(2)培养底层能力

针对「培养底层能力」这个任务,其实是最为复杂的。关于这个问题,我多次在答题和文章中不断重复强调,因为我觉得这是最重要的。现在再陈述一次:

「什么是底层能力?就是那些在各个领域都通用的最基础的能力,这些能力包括但不仅限于自学能力、想象力、情商、领导力、谈判能力、判断力、见识、语言和文字表达能力等。这些能力都是最基础,却又是能带你走得最远的,通过这些能力的组合可以形成各种个人发展需要的能力,可以说是人生真正的算法。」

这些能力培养,其实最好的老师就是家长,因为这些能力都不是一年半载就可以获得的,全部都是需要一个非常漫长的时间,最好的学习点就是在孩子年幼时就开始坚持培养,最后成为自动化的底层思维。而外面的培训班,很少有老师可以长时间跟踪和培养一个小孩,也正因为这样,非常难通过他们来改变孩子的底层能力。

(3) 至于学习编程的第三步「练习和实践」

这个道理就更简单了,就是通过适当的练习,让自己更熟练并提升解题的「直觉」。这个阶段有老师是挺好的,因为老师由于职业经验,所以在遍历题目方面相比学生有着巨大优势。但是要提防一些水平差的老师,只是为孩子灌题,而不是针对孩子的知识地图缺漏去针对性地练习。

在这个阶段,好的老师应该像健身房私人教练,应该根据不同人的能力和状况,提出个性化的练习方案,从而提升孩子的解题和知识体系。


好了,这就是我对孩子学习编程的分析。这篇回答,写得比较详细。但其实我真正希望表达的是自己一个教育理论,家长到底在孩子成才发展道路上应该扮演什么角色,我在很多场合一再强调,「我不认可很多老师把学生的学习任务转移成家长的任务,但我同样不认可家长只出钱,完全把教导的责任完全推给老师。」

我认为家长应该充当桥梁的作用,在你的孩子和成长目标之间搭建有效的桥梁,要达成这样的目标,实际上也要求家长拥有我一再强调的「底层能力」。


我是高风,专注儿童教育和成才发展,世界500强企业培训师。欢迎关注和咨询。

其他精选答案:

参考

^但要注意一点,编程其实是一个非常广泛的词语,我现在陈述的是一般在学生时代流行的编程定义,事实上现在在国内很多程序员做的前端工作,有些并不需要用到太多深奥的算法。
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜