0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

“不会编程就是新文盲”?没有书本会教你解决以前没人碰到过的问题

电子工程师 来源:lq 2018-12-16 11:19 次阅读

毋庸置疑,未来的一切都会是自动化的,那么一份从事自动化软件开发的工作要稳妥得多——这一点,相信是很多程序员父母的考量。也因此,目前的市面上充斥着各色各样的幼少儿编程书籍、编程夏令营、课外编程俱乐部等等。然而,这些虽然可以教会孩子们特定的编程语言,但是实际上它们与软件开发工作没有多大关系,反而会扼杀孩子们的好奇心——本文的作者JOE MORGAN就发表了自己的看法。

以下为译文:

在最近一次的例行午夜小跑时,我看到一堆关于教孩子们写代码的书。

教大家写代码的书籍随处可见,但从来没有见过这么多直接针对小学生的。这些编程书籍只是用来培训孩子们“面向未来的技能”等庞大资源的一部分,还有编程夏令营、课外编程俱乐部,旨在教给幼儿园小朋友们JavaScript基础知识的小程序等等。

很容易理解父母为什么要求孩子学习编程——还有什么比教会孩子写代码更好的方法来让我们的孩子为未来的自动化社会做好准备呢?如果未来的一切都是自动化的,那么一份从事自动化软件开发的工作要保险得多。如果学习编程是好的,那么早点学习就更好了。然而,这些书籍虽然可以教会孩子们特定的编程语言,但是实际上它们与软件开发工作没有多大关系。

“不会编程就是新文盲”?

我的一位前同事曾经在编程训练营接受训练,而这个训练营的口号就是“不会编程就是新文盲”。这种观点是所有编程书籍和游戏的核心。有一本畅销书说尽早学会编程“对孩子的将来必不可少”。这等于告诉我们,不教孩子编程就等于不教他们阅读。

当然这种观点是很荒谬的,不会编程不等于文盲。虽然大多数父母都有文化和读写能力,但是大多数父母都不是程序员,也不知道程序员需要什么样的技能。针对孩子们的编程书籍给出的都是一些问题的“标准”答案。如果你的孩子能掌握编程语言,他们就能快速轻松地写出这些代码。然而编程不仅仅是写代码,编程是复杂的,需要同时具备创造性和明确性。作为一名程序员仅仅懂得编程语言是不够的,某些技能只能在非常年轻时学习。

好的程序员不仅仅是让代码工作,他们希望写出好代码。

没有书本会教你解决以前没人碰到过的问题

在我的职业生涯早期,我写了一些代码配置在一组远程服务器上运行。一开始代码似乎运行得很好,至少我是这样认为的。直到18个小时后,电话在半夜响起,告诉我一些服务器出了故障。我从床上爬起来,拿起我的笔记本电脑,在故障服务器上再次运行代码。然而几小时后,另外一些服务器又报故障。

问题不是出在代码语法上。如果是语法问题,首先服务器上编译就不会成功。故障是由更深层的问题引起的,隔离和解决这个问题花了我几个星期,经常半夜里被叫醒。

编程就是这样的,先试一试,看看代码能否工作,再试一次,如此反复。简单的问题应该会有现成的解决方案或者至少用开源代码来解决,剩下的就是一些繁杂的而且独特的问题。没有书本教你如何解决以前无人碰到过的问题,这就是为什么我不想让我的孩子学习代码语法。我希望他们学习如何解决问题,深入研究问题,学会创新。那我们该怎么教呢?

纯粹地写代码不可取,质量、创造性和代码美感同样值得学习

有一天,我儿子担心他的椅子摇摇晃晃。我们一起看了看后他找到了问题在哪里,原来椅子的一个螺丝松了。我找出一把用过的六角扳手,告诉他如何拧紧。他很好奇如果他向相反方向拧螺丝,会发生什么。他这样试了直到把螺丝拧出来。后来我们把椅子拆开了,然后试着装回来,我们一起装了好几次,有几次装错位了,直到最后他满意地把椅子装好。就像编程一样,试一试,看看它是如何工作的,再试一次。

当然,让代码能够工作只是软件开发的第一步。下一步是使代码清晰、可重用和整洁。在我的职业生涯早期,有一次我完成了一个功能的编码工作,并把它交给一位资深程序员检查。他看了一眼我的代码,看到间距不一致,行也对不齐而且命名不规范,直接说一句“重做”就打回来了。尽管我的代码能够工作而且语法也对,但这仍然是错误的。好的程序员不仅仅是让代码工作,他们希望写出好代码。

对质量的把握是很多程序员觉得最难的事情。设计良好的代码使用起来感觉很好,而乱七八糟的代码会使程序员敬而远之。最好的程序员会将艺术家的敏感融入抽象逻辑中,他们相信代码的美感对编程来说,和所有的算法或编码模式一样重要。

最近,我和妻子带着儿子做曲奇饼干。每次我们加入一种成分,我们都会停下来检查一下面团,讨论一下面团的手感和颜色。它够软吗?所有成分都和匀了吗?当我们把面团摊开时,儿子摸了摸表面,看着我妻子教他如何把一切都弄得又匀又薄。然而,最难的部分是切出饼干形状。像所有的孩子一样,他本能地将饼干模子放到面团中间开始切,每次我们都试图告诉他如何将饼干模子在面团上依次切出饼干形状,以便让每个面团做出最多的饼干。

每一个步骤——精确测量每种成分,检查面团的柔软度和是否和匀,精确放置饼干模子以减少浪费——都是在教他关于质量的知识。仅仅教他做饼干的步骤(比如按照一个饼干食谱)很难让他学会分辨质量的好坏并做出好饼干,而这只能通过感觉和经验传递。每次你让孩子参与到你所重视的事情中来,你就是在教他们如何把事情做好,你也是在为他们以后编程做准备。

但在过程中你教他们的不仅仅如此,你让他们知道这世界充满了有趣的事情等待他们去发现,你向他们展示如何充满激情地在他们所做的每件事中寻找那种瞬间的质量感。最棒的是,即使他们不能成为程序员——当然这是大多数人不应该也不愿看到的——同样的技能几乎可以在任何职业、每种爱好、每天的生活中使用。然而当我们强迫小孩仅仅学习代码语法时,我们就给他们灌输这样一种观念:纯粹地写代码才是有用的,而那些关于质量、创造性和代码美感的知识不值得学习。

成年人可以直接去学习编码,孩子们则需要发掘他们的好奇心。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程语言
    +关注

    关注

    10

    文章

    1945

    浏览量

    34784
  • 代码
    +关注

    关注

    30

    文章

    4793

    浏览量

    68701

原文标题:一个程序员父亲的呼吁:不要教你的孩子从小学编程!

文章出处:【微信号:rgznai100,微信公众号:rgznai100】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Modbus TCP编程与实验

    本课程并没有支持Modbus TCP协议的传感器,所以使用将会编写2个程序。
    的头像 发表于 01-03 09:27 382次阅读
    Modbus TCP<b class='flag-5'>编程</b>与实验

    ADS1232输入的信号不会超过1.25V,但是信号是正负都会有,为什么?

    ,还基本是正确的,如果是负信号,那读取出来的数据就得按一定的比例进行放大,转换出来的电压值才会正确。 有没有碰到过这个问题的。
    发表于 12-23 08:02

    PCB焊接后焊接位置附近油墨起泡问题

    碰到了一个焊接后阻焊油墨起泡的问题。位置在焊接位置和焊接位置附近,而且主要就集中在焊接位置附近线路上。喷锡、IR炉和热冲击都没有起泡,但是焊接的时候就有问题。一直没分析出原因,大家有碰到过类似的情况么,是什么原因呢?
    发表于 11-14 11:14

    德州仪器日本会津工厂投产GaN功率半导体

    近日,德州仪器(TI)宣布了一个重要的里程碑事件:其基于氮化镓(GaN)的功率半导体已在日本会津工厂正式投产。这一举措标志着德州仪器在GaN功率半导体领域自有制造产能的大幅提升,产能增至原来的四倍。
    的头像 发表于 10-30 17:30 465次阅读

    求助,关于使用TPA3116D2时碰到的问题求解

    请教下使用TPA3116D2时碰到的问题。 PVCC=24V,在无输入的情况下,万用表测到左右声道的OUTP/N的直流值都不是PVCC/2=12V,而是只有4V。 测到输入端直流值只有2V,而不是3V。且FAULT一直是高电平,没有错误。 请问这种情况可能的原因有哪些?
    发表于 10-25 06:26

    爱普生产品-低抖动温补可编程晶振

    爱普生发布最新可编程晶体SG-8200/8201CJ,封装为2.0 × 1.6 (mm) 。还有SG-8201CJA 符合汽车应用AEC-Q100。何为可编程就是输出频率可以根据客户需求编辑
    发表于 08-09 13:55 0次下载

    创建Aurix项目失败怎么解决?

    我尝试创建一个新的 Aurix 项目,但点击底部的 &quot;完成 &quot;后,没有创建新文件,工作区仍然是空的。 我在论坛上搜索了这个问题,发现很多人都遇到过这个问题,但仍然
    发表于 07-23 07:49

    esp-idf里的udp_server做数据接收测试时碰到了数据包频繁丢失的情况怎么解决?

    各位好: 我在使用官方给的esp-idf里的udp_server做数据接收测试时碰到了数据包频繁丢失的情况,我用手机APP每隔45ms给esp32发一帧数据,并且在发送的数据里加入了数据帧号,通过打印数据帧号发现确实有大量数据帧没有收到,所以求问一下各位有
    发表于 06-25 07:56

    STM32L151 Jlink能正常烧写程序,但stm32就是不能正常工作是为什么?

    新做了块板子,用的是STM32L151,用J-Link能正常连接,烧录程序。但MCU就是不工作。用示波器量了晶振的波形,没有波形,应该是晶振根本没有起振。单片机上的3.3V电压供应正常,晶振初步判断是好的。不知有
    发表于 04-22 07:14

    昂鼎导轨式开关电源电源LP11K0D-24DA

    没有碰到过“昂鼎导轨式开关电源电源LP11K0D-24DA”,它的工作原理有没有人研究过,有没有它的电路图!!
    发表于 04-18 15:55

    STM32CubeIDE+FreeRtos+LWIP初始化不通过怎么解决?

    MX_LAIP_Init就过不去。调试代码,发现HAL_Delay();函数出现错误。上网查了下,也有人碰到过,重构解决。然后还是过不去,调试发现创建任务时又出现了问题,卡在添加新链表上,不知道原因。大家这么用的时候,有没有碰到过
    发表于 04-15 07:42

    为什么我的IAR for msp 7.12.1的Debugger选项只有FET和simulator仿真,没有JLINK选项?

    如题,为什么我的IAR for msp 7.12.1的Debugger选项只有FET和simulator仿真,没有JLINK选项,已经重新下载过了,还是不行,上网找也没人出现我这种情况的,有没有老哥
    发表于 03-15 07:34

    Tasking会编译未被调用到的代码吗?如何使得tasking不编译它们?

    Tasking 会编译 未被调用到的代码吗,如何使得tasking 不编译它们
    发表于 02-18 06:15

    如何降低MCU系统功耗?

    大家在做MCU系统开发的时候,是否也碰到过降低MCU系统功耗的需求?
    的头像 发表于 01-18 09:54 1862次阅读
    如何降低MCU系统功耗?

    三相设备电流不平衡怎么解决?

    镀锌管内。应该电缆问题。但具体原因不清楚。请教下有没有碰到过的师傅。指点一下,谢谢 设备应该没有问题,刚出厂测试好。没有变频负载。都是三相设备,就
    发表于 01-09 07:34