我是一名开发人员,但我不会教我的孩子编程

编程需要的不仅仅是儿童书籍中教授的简单干巴巴的语言。

长按关注《Python学研大本营》,加入读者群,分享更多精彩 

在最近的一次深夜公式跑中,我路过一大堆关于教孩子编程的书籍。我在周围看过这些书,但从来没有这么大的针对小学生的展示。这些书籍是大量资源的一部分——暑期编程夏令营、课后编程俱乐部、旨在教幼儿园儿童 JavaScript 基本知识的应用程序——旨在为孩子们提供面向未来的技能。

很容易理解为什么父母将编码强加给他们的孩子。有什么比培训他们如何构建软件更好的方法来让我们的孩子为软件统治的未来做好准备?如果一切都将被自动化,那么做自动化的人会更安全。如果学习编码是好的,那么早点学习会更好。但是,虽然这些产品可能会教孩子们特定的编码语言,但它们实际上与创建软件的工作几乎没有关系。

我的一位前同事在一个编码训练营接受了培训,其座右铭是“编码是新的素养”。这种情绪是所有编程书籍和游戏的核心。一本流行书中的描述说,尽早开始编码对于“让孩子们为未来做好准备至关重要”。这给人的印象是,不教孩子编码就等于不教他们阅读。

这当然是荒谬的。编码不是新的素养。虽然大多数父母都识字并知道给孩子读书,但大多数父母都不是程序员,也不知道程序员需要什么样的技能。为孩子们编写的编码书籍将编码呈现为一组具有“正确”解决方案的问题。如果您的孩子能够掌握语法,他们将能够快速轻松地制作东西。但这不是编程的工作方式。编程很乱。编程是创造力和决心的结合。作为一名开发人员不仅仅是语法,某些技能只能教给非常年轻的人。

在我职业生涯的早期,我编写了一些代码来配置和运行一组远程服务器。代码工作得很好。至少我是这么想的,直到大约 18 小时后,当我的手机在半夜叮当作响时,告诉我一组服务器出现故障。我摇摇晃晃地从床上爬到笔记本电脑上,再次运行代码来更换损坏的服务器。几个小时后,另一个小组失败了。

没有语法问题。如果有的话,服务器一开始就不会建成。问题要深得多。隔离和解决它需要几个星期和许多晚上的睡眠中断。

编码就是这样。尝试一些东西。看看它是否有效。再试一次。如果一个问题很简单,它会被自动化或至少通过一些开源代码来解决。剩下的就是创造独特事物的艰巨任务。没有一本书可以教你如何解决以前从未见过的问题。这就是为什么我不希望我的孩子学习语法。我希望他们学会解决问题,深入研究问题,发挥创造力。那我们怎么教呢?

有一天,我儿子担心他的一把椅子摇摇晃晃。我们看了看,他帮我找出了问题:其中一个螺丝松了。我找到了我们许多剩余的六角扳手中的一个,并向他展示了如何将其拧回。之后,他很好奇如果他以另一种方式拧紧会发生什么,他一直这样做直到螺丝出来。我们最终把椅子一直拆开,又把它重新组装了几次,通常是不匹配的部分,直到他满意地完成了这项工作。尝试一些东西。看看它怎么运作。再试一次。

当然,让某些东西工作起来只是构建软件的第一步。下一步是使代码清晰、可重用和整洁。有一次,在我职业生涯的早期,我写了一个特性,并把它交给了一位高级开发人员进行审查。他看了看我草率的间距、不匹配的线条和不稳定的命名约定,然后说:“再做一次。” 它正在工作。语法有效。还是错了。优秀的编码员不只是得到一些工作。他们希望它是好的。

那种品质感是很多开发者最难掌握的。设计良好的代码使用起来感觉很好,而丑陋的代码会让开发人员不由自主地畏缩。最好的开发人员学会将抽象逻辑与艺术家的敏感性融合在一起。学习相信美感与任何算法或编码模式一样是开发的一部分。

我和妻子最近和儿子一起做了糖饼干。每次我们混合一些配料时,我们都会停下来看看面团,谈论质地和颜色。顺利吗?我们把所有的部分混合均匀了吗?当我们把面团擀开时,我儿子摸了摸表面,看着我妻子向他展示如何让所有东西变得均匀和薄。不过,最困难的部分是剪出形状。像所有孩子一样,他本能地将切刀推到擀好的面团中间,每次我们都会尝试解释如何将形状彼此相邻放置,以最大限度地增加每一卷。

每一步——精确测量配料,测量混合面团的光滑度和稠度,精确切割以尽量减少浪费——都教会了他一些关于质量的知识。很难区分仅执行步骤(例如遵循食谱)和做好某事之间的区别。它只能通过感觉和经验传递。每次当你让孩子参与你重视的事情时,你就是在教他们如何把事情做好。您正在准备他们编写代码。

但你不仅仅是在教他们。你在教他们这个世界充满了有趣的东西等着你去发现。你正在向他们展示如何充满激情,并在他们所做的每一件事中寻找那种短暂的质量感。最好的部分是,即使他们没有成为程序员——大多数人不应该也不会——同样的技能几乎可以用在任何职业、每一种爱好、每一种生活中。当我们强迫孩子学习语法时,我们强化了这样一种观念,即如果某样东西不是一种公然可用的技能,它就没有价值。成人可以学习语法。只有孩子才能学会拥抱好奇心。

Joe Morgan编写了大量代码,并且是Simplifying JavaScript的作者。

参考文章: https://getpocket.com/explore/item/i-m-a-developer-i-won-t-teach-my-kids-to-code-and-neither-should-you

推荐书单

《Python数据可视化》

购买链接: https://item.jd.com/12670073.html

《Python数据可视化》详细阐述了与Python数据可视化相关的基本解决方案,主要包括数据可视化和数据探索的重要性、绘图知识、Matplotlib、利用Seaborn简化可视化操作、绘制地理空间数据、基于Bokeh的交互式操作等内容。此外,该书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

《Python数据可视化》适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。

《精通Tableau 2019》

购买链接:https://item.jd.com/12604811.html

《精通Tableau 2019》详细阐述了与Tableau2019.x相关的基本解决方案,主要包括Tableau数据操控、Tableau数据提取、TableauDesktop高级计算、Tableau桌面高级过滤机制、创建仪表板、利用Tableau讲述故事、Tableau可视化、Tableau高级可视化、Tableau大数据应用、Tableau预测分析、Tableau高级预测分析、部署TableauServer、Tableau故障诊断、利用TableauPrep分析数据、基于Tableau的ETL好的实践方案等内容。

此外,《精通Tableau 2019》还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。

《精通Tableau 2019》适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。

精彩回顾

可视化案例研究——以智利总统选举为例

【案例】如何使用Flask构建天气预报 

手把手教你创建简单的Python Flask

扫码关注《Python学研大本营》,加入读者群,分享更多精彩

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值