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

孩子在学了Scratch或类似图形积木化的编程之后,家长们可能会考虑让孩子转向某一具体的计算机语言,开始学习真正的编码。比如选择学习Python、C++、Javascript、Swift等等。
Scratch之类的兴趣学习,通常重点在于计算思维的养成、锻炼,感受计算机解决问题的工作方式。而且由于结合了游戏制作、音乐、视频、图像等多媒体手段,形式上很好玩,吸引力强,孩子们会觉得非常有趣。那么,Scratch之后,我们该如何继续学习呢?
当前这一领域最典型、最热门的2种热门语言非Python和C++莫属。Python简洁强大,当前人工智能业界的宠儿。C++是至今仍在不断发展的老牌强力计算机语言,是当前各类信息竞赛指定的专用语言。从某些角度来看,C++语言可能显得更加专业一些,因为某些知识的理解和深入需要一定的专业理论基础。从孩子入门学习难度上来看,Python相对容易,C++稍难一些。
如果孩子就是爱好计算机,但是还不到五年级,个人觉得学习Python可能更加适合,因为这阶段的Python课程里会有关于Turtle或是PyGame库的课程,这些课程在形式上一定程度地延续了Scratch类的图形化内容,不过也是要使用代码编写的,孩子可能更容易接受。对于已经上五年级或更高年级,逻辑和抽象思维更佳的孩子,我推荐C++。这阶段的孩子在理解力、接受力都更强了。经常出现一点就通的状态,这就是他们在把平时分散的知识点进行不断地联接,随着这个点线面的不断扩大,他们解决问题的能力会越来越强;当然他们将面临的问题也越来越多,但他们会思考了,有方向的思考。这时我们家长要做的就是帮助孩子们“连接”这些点,增加其广度;培养孩子从形象思维到抽象思维的转变,加厚其深度。对于上述方面,编程学习是个非常好的手段。如果孩子能真正地好好地学懂C++,那他以后学习其他计算机语言都是分分钟看看文档的事儿。孩子要学好C++,他要学习的远远不止C++本身,还有很多有趣、实用的计算机理论及数学知识。
如果面向算法竞赛或是信息学奥赛,为择校或是高考加分。家长应该有明确而坚定的长期规划。我也想提醒家长朋友们,这个学习是个长期的过程,小学、初中及高中各阶段都有冲奖夺牌的机会,合理安排就很重要。对于算法竞赛类的学习过程来说,以C++为例,精通C++语法层面都只能算是基础,更多的是对问题的思考分析,追求解决问题的策略,还要满足限定的时间和空间约束,有着很强的综合能力要求。就像在我前面文章里提到的计算思维,你还要精通一定的算法及其演化、组合,这些又都是语言不相关的知识。信息学竞赛考查的是学生综合运用计算机语言,利用各种算法解决难题的能力,核心是算法设计和数学建模(数学语言描述实际问题、设计编码算法用计算机解决)。参与信息学竞赛的学习过程,能培养孩子的理解能力、算法创造力、数学应用能力、综合提高孩子对抽象问题的理解和分析能力等等。

直接面对空白的代码编辑器,可能会让孩子望而生畏,不知所措;但拥有完全属于自己的代码,彻底驯服计算机,又让好奇心强的孩子们摩拳擦掌,跃跃欲试。获取AK的终极目标,每道题目的全AC都会带给孩子极大的成就感,你可以感受到孩子内心发出的那种快乐。
然而,面对这一转变对于孩子来说是可能是平缓的,也可能是跨越的。具体要看孩子目前的知识储备状态,以及相关的教学安排、师资能力。最直观的一点,面对一行行实实在在的抽象代码和符号,肯定不如具体的图形化来得容易接受。不容易学,也不容易教。老师课堂教学内容设计和把控非常关键。
我个人不提倡盲目刷题,如果刻意刷题,想依赖刷题来提升成绩,往往长期结果不太令人满意。我主张孩子要去着重吃透各种概念、透彻理解各类算法;明明白白地知道算法、定理怎么来的,公式怎么推出来的,又是如何拓展演变的;真正做到这些了,孩子通常会大开思维,他的水平获得真正的、质的提升;也才是有效的学习能力培养。否则,孩子容易陷入思维局限,遇到不符合模板的题目,就无从下手;只会做过的,不能触类旁通、举一反三,这不是我们期望的,久而久之,浪费了时间不说,还可能会让孩子失去兴趣,甚至是自信;那就得不偿失了。不论什么学习,学习什么,我们都要重视学习方法,尊重学习成长规律,无数的经验告诉我们,好的学习方法,不仅事半功倍,而且收益终身。
欢迎朋友们加我微信(ullychan)交流。或者关注公众号消防员爸爸noicpp。