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

news/2024/5/4 13:12:52/文章来源:https://blog.csdn.net/weixin_39915649/article/details/127003777

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

长按关注《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学研大本营》,加入读者群,分享更多精彩

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_13315.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32时钟系统和TIMER配置(溢出中断/PWM)实例

目录: 1. STM32时钟系统 2. STM32的定时器典型配置之溢出中断 3. STM32的定时器典型配置之PWM输出 1. STM32时钟系统 (1)Clock tree 可以在官方手册(Stm32x-series-Reference-manual)的clock tree中可以对相应MCU的时钟系统有个大致了解…

数字信号处理——多速率信号处理(1)

目录 引言 1、抽取 MATLAB仿真代码 仿真结果 抽取滤波器 2、内插

《关于我摸鱼一天后搞定PyCharm这件事》Python环境配置

Anaconda部署 1.下载最新版匹配电脑的版本 我是 WIN-x64 下载Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 我是 Anaconda3-2022.05-Windows-x86_64 下载 社区版本Pycharm Download PyCharm: Python IDE for Professional Develo…

从零玩转jQuery(基础篇)

1.前言 (window.onload和jQuery的相关介绍) 分析一下,元素js的缺点: 1.不能添加多个入口函数(window.onload),如果添加了多个,后面的会把前面的给覆盖。 2.原生js的api名字都太长太难记。 3.原生js有的时候代码冗余。 …

Maven坐标查找方法及Maven-Search 插件的使用(保姆级教学)

目录坐标的概念获取坐标方法一获取坐标方法二坐标的概念 坐标组成是groupid,artifiactld,version。坐标概念来自数学。 坐标作用:确定资源的&#xff0c;是资源的唯一标识。在maven中&#xff0c;每个资源都有坐标。坐标值是唯一的。简称叫gav。 拿servlet依赖举例 <!--serv…

nacos 简介和使用

Nacos 是阿里巴巴开源项目&#xff0c;用于构建微服务应用的服务发现、配置管理和服务管理。 在微服务项目中不同模块之间服务调用时&#xff0c;实现服务注册与发现。 Nacos 使用&#xff1a; Nacos 是java开发的&#xff0c;依赖 Java 环境来运行 Nacos的下载 https://git…

cobbler部署

cobbler部署 #先关闭防火墙和selinux [root@localhost ~]# systemctl disable firewalld [root@localhost ~]# setenforce 0 //cobbler服务,selinux必须得是disabled状态,所以要重启 [root@localhost ~]# vim /etc/selinux/config SELINUX=disabled [root@localhost ~]# reb…

BUUCTF-社团考核

目录 1.[CISCN2019 华东南赛区]Web4 2.[GWCTF 2019]枯燥的抽奖 3.[NCTF2019]Fake XML cookbook 4.[SCTF2019]Flag Shop 5.[GWCTF 2019]mypassword 6.[BSidesCF 2019]Kookie 7.[WUSTCTF2020]朴实无华 8.[网鼎杯 2020 白虎组]PicDown 9.[CISCN 2019 初赛]Love Math 10.攻…

深入ArrayList()源码

深入ArrayList()源码 jdk1.8 java.util; 扩容机制 新数组都将替代旧数组&#xff0c;旧数组作为垃圾被回收 ArrayList() 会使用长度为零的数组 private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA {};public ArrayList() {this.elementData DEFAULTCAPACITY…

采用 ALSTM 模型的温度和降雨关联预测研究论文学习记录

为了准确和及时预测局部区域的降雨及温度&#xff0c;提出了一种基于 Attention 和 LSTM 组合模型( ALSTM) 的关联多值预测算法。该算法利用天气时间序列中 的前期数据&#xff0c;对下一小时的降雨量和温度进行关联预测&#xff0c;以此实现对天气要素的多值预测。该算法首先对…

一个项目带你走进接口自动化测试

文章目录前言一、项目环境搭建二、项目分析三、框架搭建1、解决登录问题、获取token2、熟悉项目的接口请求方式、二次封装requests请求3、缓解业务请求接口参数臃肿4、重新封装logging日志5、通用方法编写四、编写自动化脚本场景业务需求单接口业务需求五、生成测试报告六、写在…

CSDN线上竞赛编程第六期参赛心得

CSDN编程竞赛报名地址&#xff1a;https://edu.csdn.net/contest/detail/16 &#xff08;请不要删掉此地址&#xff09; CSDN线上竞赛编程第六期参赛心得前言/背景大赛简介参赛流程参赛经历解题思路1、题目名称&#xff1a;严查枪火2、题目名称&#xff1a;鬼画符门3、题目名称…

HDMI/DVI____TMDS编码

一.编码步骤:基本方法:取第一位数据为初值,接下来输入的每一位与前一导出的位(根据判断条件)进行异或XOR或者同或XNOR(最小化传输);最后选择性反转这9bit数据(DC平衡处理)。 ①DE为高电平时,对8位RGB数据编码,第9bit表示采用了XOR / XNOR ,第10bit表示是否翻转。 …

04代码

import datetime #定义一个列表 mot=["今天星期一:\n坚持下去不是因为我很坚强,而是因为我别无选择。","今天星期二:\n含泪播种的人一定能笑着收获。","今天星期三:\n作对的事情比把事情做对更重要。","今天星期四:\n命运给予我们的不是失…

【NLP】自然语言处理的序列建模

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

Teams Bot App 初探

上一篇文章深入讲了incoming webhook。这篇文章我们来看一个稍微复杂点的&#xff0c;正式点的 teams app&#xff1a;bot。 我们先来和之前一样&#xff0c;通过teams toolkit 的 sample gallery来创建一个 Teams bot app。 创建之后我们先来看一下目录结构和生成的文件。 一…

二叉树中求最大路径和

题目来自LeetCode中&#xff0c;链接为124. 二叉树中的最大路径和 一棵树的最大路径和可能存在于哪里&#xff1a; 单纯的存在于以左子树为根节点的子树中单纯的存在于以右子树为根节点的子树中根节点到达左子树B中某节点的路径根节点到达右子树C中某节点的路径左子树中某节…

Android日志分析02-am篇

Android日志分析02-am篇 在日常分析bug时&#xff0c;免不了和系统ActivityManagerService打交道&#xff0c;根据日志去查看各个Activity的生命周期&#xff0c;从而判断是否出现Activity生命周期异常。 先使用adb logcat和adb bugreport再pixel2的模拟器抓取一份从开机到打开…

代码随想录4——链表: 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点、面试题02.07链表相交、142.环形链表II

文章目录1.24两两交换链表中的节点1.1.题目1.2.思路1.3.代码实现1.3.1.对next指针的理解1.3.2.编程中要备份哪些节点的指针&#xff1f;1.3.3.代码实现2.19删除链表的倒数第N个节点2.1.题目2.2.思路3.面试题02.07链表相交3.1.题目3.2.解答4.142.环形链表II4.1.题目4.2.思路1.24…

JavaEE——No.1 多线程案例

JavaEE传送门JavaEE JavaEE——No.1 线程安全问题 JavaEE——No.2 线程安全问题 目录多线程案例1. 单例模式饿汉模式懒汉模式2. 阻塞队列阻塞队列的使用阻塞队列的实现多线程案例 1. 单例模式 单例模式是一种常见的设计模式. 设计模式: 软件开发时, 会遇到一些常见的 “问…