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

以下为译文:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

原文:https://slate.com/human-interest/2018/12/against-teaching-kids-to-code-creativity-problem-solving.html

作者:JOE MORGAN,他编写了很多代码,还是《Simplifying JavaScript》一书的作者。

译者: 苏本如,责编:郭芮

推荐阅读:

  • 老码农冒死揭开行业黑幕:如何编写无法维护的代码

  • 免费报名 | WPS专家教你文本分类在企业中的应用实践

  • 讲述:一个月薪12000的北京程序员的真实生活

  • 程序员依然是这个时代,贫寒学子翻身的不二选择

  • 最懂区块链的十大女神,值得你关注 | 年度盘点

点击“阅读原文”,打开 APP 阅读更顺畅 

一个程序员父亲的呼吁:不要教你的孩子从小学编程!相关推荐

  1. 一个程序员的成长的六个阶段

    第一阶段 此阶段主要是能熟练地使用某种语言.这就相当于练武中的套路和架式这些表面的东西. 第二阶段 此阶段能精通基于某种平台的接口(例如我们现在常用的Win 32的API函数)以及所对应语言的自身的库 ...

  2. 如果你喜欢一个程序员小伙

    程序员向来是善于幽默自嘲的群体,但从某种程度上影响了咱程序员在广大女同胞心中的印象啊-- 于是写下此篇(有从别处看到的3句加进来的), 就算是为咱程序员做个广告--要是觉得有点过的程序员们,就把此文当 ...

  3. 如果你喜欢上了一个程序员小伙 献给所有程序员女友(来自ITeye博客的文章 作者:talent2012)...

    程序员向来是善于幽默自嘲的群体,但从某种程度上影响了咱程序员在广大女同胞心中的印象啊-- 于是写下此篇(有从别处看到的3句加进来的), 就算是为咱程序员做个广告--要是觉得有点过的程序员们,就把此文当 ...

  4. [转]如果你喜欢上了一个程序员小伙

    如果你喜欢上了一个程序员小伙,就不用再害怕电脑中病毒QQ被盗,因为他至少尝试过10款以上杀毒软件,他知道用那款占资源最少防毒效果最好的保护你的电脑. 如果你喜欢上了一个程序员小伙,就不用担心他会外遇, ...

  5. 如果你喜欢上了一个程序员小伙-献给所有的程序员女友

    原文地址:http://blog.renren.com/blog/315493459/787728435 程序员向来是善于幽默自嘲的群体,但从某种程度上影响了咱程序员在广大女同胞心中的印象啊-- 于是 ...

  6. 如果你喜欢上了一个程序员小伙,献给所有的程序员女友

    原文链接: http://blog.csdn.net/xiaole0313/article/details/47727741 如果你喜欢上了一个程序员小伙,献给所有的程序员女友 -- 由 吧主 分享 ...

  7. 转载:林锐:大学十年(一个程序员的路程)(全)

    大学十年(一个程序员的路程)(一) 林锐,1999年岁末 写此文使我很为难,一是担心读者误以为我轻浮得现在就开始写自传,二是担心朋友们误以为我得了绝症而早早留下遗作. 不论是落俗套还是不落俗套地评价, ...

  8. repost 编程之路--一个程序员的艰辛经历

    如果对自身的发展迷茫,可以看看这篇文章,这里真实地记载了一个程序员走过的路. 这些日子我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公开,希望能够为国内IT的发展尽自己一份微薄的力量.最近 ...

  9. 大学十年(一个程序员的路程

    大学十年(一个程序员的路程)(林锐博士)<1----9> 我要对年轻的朋友们说两句肺腑之言: 一.主动去创造环境,否则你无法设计人生. 二.生活和工作要充满激情,否则你无法体会到淋漓尽致的 ...

  10. 【人物】一个程序员决定写代码到60岁

    重要也更深远的意义或许在于,阳振坤的存在创造了一种新的生态.他颠覆了时下困扰这个行业的「35岁危机」:一个程序员必须在35岁之前跻身进入管理层,否则将无法以技术身份立足,年长的技术人员意味着贬值.淘汰 ...

最新文章

  1. java 异常类_Java异常处理
  2. Function Component 与 Class Component 有何不同?
  3. 下列哪个不是目前python里的内置模块-不吹不擂,你想要的Python面试都在这里了【315+道题】...
  4. C++工作笔记-使用namespace构建常量头文件
  5. WinForm中日期控件开窗
  6. js检测是否安装java_js判断当前浏览器是否是源生app的webview
  7. AI2想从常识测试开始让AI理解物理世界,数据集已公布
  8. D3.js学习(一)
  9. Oracle简易界面工具 (Oracle 10g, Oracle 11g)
  10. IBM小型机维护手册
  11. Java笔记之入门(一)
  12. 在线答题助手c语言源码,很早之前发的逆水寒答题助手,开源!!自己可以修改成任何答题器源码!~~...
  13. 微信支付 签名 java_Java后台微信支付签名算法(MD5)
  14. 《灵飞经》②东岛门人 第四章 星隐真人
  15. 华为机试真题 C++ 实现【处理器问题】【2022.11 Q4 新题】
  16. 魔兽世界诞生记(下)
  17. 机器人学导论(一)——空间描述和变换
  18. 【云周刊】第130期:阿里研究院发布新网商五大预测,2020年将诞生第一个机器人网商?
  19. 【分享】Xmind会默认安装在C盘,如何将Xmind安装在指定文件夹
  20. Java程序中操作Word表格

热门文章

  1. Python中的图像处理(第十一章)Python图像锐化及边缘检测(2)
  2. ASCⅡ码与字符的相互转化
  3. 发动机压缩比怎么计算公式_精准的发动机压缩比计算方法与流程
  4. python的numpy安装_python的numpy安装方法大全
  5. C语言常见面试题汇总
  6. MT4外汇操盘跟单软件
  7. 如何借助OpManager解决存储监控问题?
  8. JS项目(制作随机选号页面)
  9. maven常用打包命令
  10. IDM的Google商店插件