当前位置: 首页 > 科技观察

给孩子写编程书系列:如果给孩子写编程书

时间:2023-03-21 15:14:03 科技观察

最近开始考虑明年的一些个人计划,不会强迫自己完成一些目标,只是对未来感兴趣在一段时间内列一个清单,然后挑一些来尝试。其中一个正在写一本书。和一些出版社的编辑商量过出书的事,但对书的题目比较纠结。我不太愿意写一本纯技术的书,虽然看起来比较容易和安全(有市场)——基本上选择一个热门领域或技术,然后参考其他类似的书,结合自己写的例子和相关经验重写,但这对我来说有点像炒饭,意义不大。我知道如果没有动力,即使不是不可能,我也很难完成这本书。而如果让我按照内心的意愿来选择,我宁愿尝试着写一本儿童编程的书。儿子今年六岁,在区内一所示范幼儿园的大班读书。除了上学,他还报了一个思维训练的培训班。虽然他每天都在按要求完成课程和作业,但看得出他学习得并不愉快。这样做的原因无非是为了让孩子上更好的小学。我同事的孩子今年上三年级。和很多同龄的孩子一样,他也参加了奥数班。虽然不太了解她的孩子,但总能看到同事坐在那里埋头苦干。解决那些奥林匹克问题。我想,如果这些问题对我们成年人来说都这么难解决,那么对孩子的成长真的有那么大的帮助吗?有没有更好的方法来训练孩子的思维,帮助他们更好地应对未来呢?如果能抛开一切功利的应试要求,我想学习编程或许是一个不错的选择。虽然有方向,但要教孩子学好编程并不容易。我们需要通过少儿编程教育的现状来看待普遍存在的问题:教材过时:很多学校还在使用那些过时的编程教材,比如还在教孩子Pacal(一种过时的编程语言),这是大约20年前我用来学习编程的语言。有人说,教编程的真正目的是教给孩子一种新的思维方式,而不管使用哪种编程语言。前半句我是同意的,但是关于编程语言,我觉得如果能教孩子编程语言以后会更有用,让他们习惯使用这些更现代的编程语言从一开始,我们为什么不这样做呢?教学方式不当:给孩子教授编程的,大多是学校老师。老师当然有他们的优势,比如更了解孩子,更能把控教学。但是,大多数老师都没有太多的编程经验,他们向孩子们灌输一种编程语言的语法、语义和算法,更像是在教数学和物理。大部分都是无趣的算法题,恰恰忽略了编程最重要的乐趣和创造力、思维能力的培养。结果,孩子们像完成作业一样完成那些编程题,根本体验不到编程的乐趣。这也直接打击了孩子们的学习积极性,学习编程成为了孩子们的又一爱好。负担。新潮培训班:随着编程教学越来越受到家长的重视,社会上也涌现出不少少儿编程培训机构。当然,好坏参半。不管那些培训课程的资质如何,教师的教学能力如何,就拿现在广泛使用的编程语言Scratch来说吧。就像近几年流行的乐高培训。真的很难说能教给孩子什么。编程是一项深度思考的练习,需要长期的实践才能逐渐掌握,而像现在的父母不跟风自己的孩子去学习编程,是不会得到想要的结果的。缺乏审美教育:我认识很多程序员,他们并不是编程初学者,但往往阻碍他们写出优秀程序、做出更好产品的,并不是大多数人理解编程所需要的逻辑思维能力,而是对美的感知。你不知道什么是美,你做出来的东西怎么可能是美的呢?这不仅仅是指我们平时听到的UI(用户界面)、UX(用户体验)等设计理念和技术,更在于美的概念。感知和意识的本质。而这种能力本来应该是从小就培养出来的,可惜的是,中国的美育缺失非常严重。编程教学作为一门生产创造课,本可以将美的知识和实践融入其中,但大多数教材和老师都没有做到。通过一本书来解决上述问题似乎是不可能的,但值得一试。即使作为对现有编程教学环境的一个小小的补充,也会让我觉得很有意义。一本面向所有编程初学者的入门书籍不同于一节数百的儿童编程课。我始终认为,最好的教孩子编程的方法应该是父母和孩子一起学习编程。孩子的想象力和创造力简直是学习的完美结合,和家长一起不断学习和实践,远比每周上一节编程课更有效。我可能不会在这本书中加入太多适合低龄儿童的插图,但我希望能包含尽可能多的内容,以编程为主,涉及美术、设计、编程、思考、作品发布等,让孩子们能够真正通过学习做出有意义的作品。在我看来,这本书应该适合所有愿意和孩子一起学习编程的家长和想自学编程的初学者。传授技能,而非知识传授知识与传授技能的最大区别在于其目的。对于孩子来说,学习知识往往是被动的,而化学、物理等知识的真正应用往往需要进入大学相关专业。而在中小学,孩子在学习过程中获得的动力往往来自于比较,比如考试成绩、家长的表扬,或者老师提出问题比其他学生早算出答案。但是比较通常是有压力的,而且只对尖子生更有效。但学手艺是为了不断做出更好的作品。你是在和过去的自己做比较,只要你不断地学习和实践,你一定能得到正向的激励,因为随着技能的提升,你一定能做出更好的作品。总有比过去更好的东西,它适用于所有学习者。我要写的书当然会包含某种编程语言的语法和语义的基础知识,但不会包含那些复杂的数据结构或算法。我们只会用最简洁的方式介绍,一切都将围绕获得更好的工艺,做出更好的作品来写。一种面向未来的现代语言也许是儿童和编程新手的第一种编程语言。该语言应该易于学习、现代且面向未来。易学性:考虑到不同年龄段孩子的接受能力,该编程语言应简洁、一致、清晰。这体现在语言语法、数据结构、控制逻辑、可用组件,甚至IDE(集成开发环境)和教学资源等方面。它应该易于学习并且更容易构建丰富的应用程序。现代:编程语言有很多种,有些比我们还古老,几乎每一种语言背后都有一个悠久的故事。至于为什么要发明这种编程语言,它的主要目的是什么,它有什么特点呢?这些问题往往需要一整天的时间才能弄清楚。今天,很多新的语言不断涌现,比如Swift、R、Go,也有很多语言逐渐被淘汰,比如VB、Pacal。现代语言是指它具有那些经过长期证明是优秀的语言特征,并且被广泛使用。面向未来:一门面向未来的编程语言应该是开放的(例如:开源),这意味着它可以在更多程序员的帮助下实现持续发展,被更多人使用和认可。另外,一门编程语言的基因也可以决定它的未来,比如:面向过程、面向对象、声明式编程、函数式编程等等,正是它们决定了编程语言的特性、编程思想和适用场景。一种编程语言和未来的发展方向。例如,虽然现在还有很多iOS应用是用ObjectiveC开发的,但当我们了解到Swift将成为“第一个具有工业品质的系统编程语言!”看到那些优秀的语言特性后,我们应该意识到,iOS开发者不去追求Swift是非常愚蠢的。基于这些考虑,我比较了自己心目中可用于教学的编程语言,决定在Python或Swift中选择一门语言来完成本书。使用所有好的资源许多编程书籍都包含代码、示例、工具等。看起来这样一本书很完整,但是我发现这些附带的资源往往不好用或者价值不大。网上有太多优秀的学习资源,但是很多人不知道或者不善于使用。而且我希望这本书可以更加开放。如果网上已经有更好的内容,那我就不用再赘述了,只是帮助大家更有效地发现和使用它们。比如,假设我的书最终使用Swift语言进行教学,那么我肯定会告诉你在iPad上使用PalygroundAPP来学习。当然,我会在书中告诉你如何更有效地使用它,这将大大提高我们的学习体验。学习效率。兼顾艺术、设计和创作,光靠编程是无法得到那些吸引人的东西的。人,尤其是儿童,是视觉动物。如果他们做出的东西不漂亮,他们很容易失望,失去学习的兴趣。希望本书能对编程教学做出一些延伸和拓展,比如在例子中引导孩子们正确理解和使用颜色,合理布局让内容更清晰,巧妙运用动效让作品更生动有趣,等等,通过这些,让孩子在学习编程的同时掌握最基本的设计知识,激发他们对美的认识。关于书的形式,希望能有不同的版本。我可能会做一个网站来展示这本书,包括那些教学视频,示例代码,展示孩子们通过学习做出的作品。也希望有纸质书和电子书版本,满足不同读者的需求。以上观点只是我此刻能想到的,更多的东西只能在实践中获得。幸运的是,我已经有了自己的学生,我的儿子伊恩。我会持续更新我的教学内容,进度,孩子们在这个话题上的学习反馈,接受大家的意见。如果你对教孩子编程也有自己的想法,请留言,这将帮助我更好地完成这次挑战。【本文为专栏作家“陈义和”原创文章。如需转载请联系作者本人(微信♂:techmask】点此查看作者更多好文