全民编程时代,你是否想过编码的最终目的何在?或许是为了更方便地实现一些事情,或许是为了提高效率,然而与其一步一步自学编程,本文作者表示,不如直接利用已有的工具来实现自动化。

作者 | Erik Dietrich

译者 | 弯月,责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

以下为译文:

还有人记得几年前纽约市长决定开始学习编程吗?不仅仅是他一个人,那可真是一段全民皆学编程的全盛时代。我记得有报道称明星球员Chris Bosh鼓励自己的孩子学编程以造福人类。人们突然间迸发出一种不可思议的情绪,认为所有人都应该放弃编程之外的任何追求,转而学习Ruby或其他编程知识。如果2012年的时候Andy Warhol还活着的话,他肯定会说:“在未来,每个人都会写15分钟的代码。”

Jeff Atwood写了一篇有趣的文章来反驳这种时代思潮,题目为“千万不要学习编程”(http://blog.codinghorror.com/please-dont-learn-to-code/)。这篇文章涵盖了很多基础的观点,同时还提出了一些有趣的观点,但总体论点无外乎是,“不要把写代码当成目标,你的目标应该是学习如何解决问题”。我认为这是一个非常优秀的哲学观点,但我想补充一点细节。

以前,我曾写过一篇文章来表述我认为培养解决问题的能力的重要性,我的这篇文章标题叫做“解决问题的人”(https://www.daedtech.com/job-titles-be-like-the-wolf)。所以,请不要以为我不同意他的观点,我也认为许多程序员过于沉迷于代码。我认为这不是一个非常普通的问题。然而,与此同时,我认为纽约市长、Chris Bosh和其他人都没有真正解决这个问题。具体来说,这个世界越来越趋向技术化,这意味着很多追求已被自动化淘汰,而其他方面的追求也需要越来越高的技术水平。我的未婚妻是专业的文字编辑,如果她能够精通HTML和CSS,就可以更轻松地完成自己的工作。

因此,我与Jeff一样认为人们学习编程,是因为他们觉得编程可以赚到很多钱,或者因为他们想成为编写很多代码的人,但我认为我们不能简单地说:“除非你是认真的而且愿意花费数年时间磨练自己的编程技术,否则就不要碰编程。”快速发展的科技格局吸引了越来越多的人义无反顾地加入到科技达人的大军中。

关于这个主题,我想提出一个不同的建议。我认为并非每个人都需要学习编程技术。我认为每个人都需要学习并理解如何实现自动化。即便不是亲历亲为,至少能够懂得如何实现自动化,并讨论是否值得付出这类的努力。

生活中的自动化

下面我来举例说明。晚上,我与一位朋友一起制作了一些PPT的课程资料。我们制作的幻灯片主要是图片和一些附加说明的文字(字体很大)。我们将图片粘贴到幻灯片中,调整一下大小,然后用Mac的触控板将图片居中。这时,他说:“PPT中应该有一些快捷键,只需点击就可以将图片从垂直和水平方向上自动居中。”

这就是那一刻有关自动化的构想。PPT中的居中是一种无脑、繁琐又耗时的工作,是一个很好的自动化对象。想象一下,你需要通过拖拽和细微的操作调整图片,希望看到那条表明图片居中的线出现。但是,这条线找起来如此麻烦,所以你需要不断尝试,并在心中默念:小心,快到了!慢点!完了!错过了。打起精神,再来一次!

当然,找到自动化的对象后,我们的工作还没有结束。我提倡的人才(精通自动化的人才)需要做如下评估,最后再确定自动化。

PPT是否提供了这样的功能,还是说只是我们对此一无所知?

经过一番快速的谷歌搜索后,我们发现PPT好像并没有这样的功能。如果有这样的功能,那么肯定有博文说只需两步就能搞定:“第一步,按下这个神奇的按钮;第二步:没有第二步。”但是,也不能排除PPT确实有这种功能的可能性。

我们应该深入研究吗?

现在不行。我们的幻灯片就快完成了。但退一步想,确实值得深入研究。

从长远来看,我们应该深入研究吗?

很难说。我不确定一生中有多少时间浪费在这个问题上。可能确实浪费了一些时间,但我并不是PPT的热心用户,因此可能要过很多年才能帮我省出几个小时。而谁知道解决这个问题需要花费多少时间呢?

从长远来看,为了人类我们应该深入研究吗?

嗯……那肯定应该吧。单我一个人在使用PPT数年后,就会因为这个问题浪费几个小时,那么整个人类可能只需几微秒就会在这个问题上浪费几个小时。就在此时此刻,很多人就在PPT上与这个问题苦战。

如果我们做出了解决方案,可以卖钱吗?

嗯,我很怀疑。但是,也许也会有一些微不足道的收入。或者,我们也可以做出解决方案,然后捐献出去,赚一个好名声。

那么好,接下来该怎么做?

我们可以在合适的时候,例如在机场大厅等飞机的时候,挑一个小时出来研究这个问题。这是一个很不错的临时任务,看看我们能否在有限的情况下解决这个问题。能否在空白的幻灯片上按下“ctrl-E”快捷键就可以实现水平居中?如果可以,那么我们能否找到一种方法来垂直居中,然后将两个快捷键结合起来?如果可以,那么只需一点配置即可解决这个问题。我们都知道我们成功了,因为只需单击一个快捷键,就可以在空白的幻灯片上将某个图片从水平和垂直方向上居中。如果这个小测试通过了,那么我们就可以写一篇博客文章,晒出我们的成果,然后继续其他场景的研究。

外行的解决方案

我想在此指出一些问题,虽然表述起来有点曲折。首先,我们需要找出这个艰巨的任务,以及一个自动化的备选方案。找出图像居中时的确切坐标是一项极其适合计算机的工作。之后出现的一系列问题包括有可能已有现成的解决方案的可能性,那么就没有必要想出一个新的解决方案;或者,想出一个新解决方案耗费了太多时间,与其带来的收益相比得不偿失。在软件开发领域,这个阶段的工作有各种名称,例如“需求发现”、“需求分析”和“Sprint 0”等等。

之后,我们可以制定一个暂时的行动计划以及一些风险缓解措施。我们需要付出一些努力来看清我们能做什么,我们需要限制这个阶段付出的努力,以免一发不可收拾。接下来,我们需要制定一个具体的策略,将后面的大量工作分解成能够提供一定增量价值的小任务。软件开发公司称之为敏捷方法(或精益方法)。最后,尽管我们还没有编写实际的代码,但我们清楚实现的方法,而且还对最后的成功有清晰、可验证的描述。在企业中,这称为“验收测试驱动开发”(Acceptance Test Driven Development,即ATDD)。

但是,请不要忘记用术语及时地和程序员展开讨论。更为重要的一点是,成功的软件开发项目(包括代码、IDE编译器等)只是成功的自动化项目的特例。所有工作都可以自动化,甚至是一些非常简单的工作,而无需实际编写任何代码。从这个角度来看,Jeff的观点绝对正确。程序员喜欢写代码,但是编写代码并不是解决问题时的首要目标。

从整个人类历史的长河来看,重复工作就是一种“有痛苦才有收获”的方法。低下头,融入并完成繁琐的工作是有价值的。但是在整个人类历史的大部分时间里,我们都没有计算机。事实证明,计算机确实非常擅长执行重复性的琐碎任务,这种任务需要精确性,却不需要判断力。计算机的这种能力远胜于我们,因此让计算机来完成这样的任务更有意义。

我们不能简单地认为将来每项工作的完成都需要依赖复杂专业的计算机应用程序。但是,鉴于计算机的普遍性,我们完全可以认为,将来面对每项工作时,我们都需要分辨出哪些任务更适合人类,而哪些任务则更适合计算机。我们至少要学会分辨哪部分工作浪费了时间。接下来,就需要发挥你的创造力,利用你掌握的工具(例如搜索解决方案、利用应用程序等)来实现自动化。更进一步,你还可以挽起袖子学习一些编程的知识,以帮助你继续前进。因为,尽管纽约市长无需编写任何代码,但如果该市的IT部门出现问题,他能够参与其中并不是一件坏事。

原文:https://daedtech.com/dont-learn-to-code-learn-to-automate/

本文为 CSDN 翻译,转载请注明来源出处。

学编程不如学自动化?相关推荐

  1. 轻松学编程--轻松学Oracle数据库(附光盘)

    查看书籍详细信息: 轻松学编程--轻松学Oracle数据库(附光盘) 编辑推荐 <轻松学Oracle数据库>本书中引用了大量的动手实践案例来讲解Oracle数据库中的各种知识,使读者能够更 ...

  2. 别为了学编程而学编程

    "所有人都应该学习编程"(Everyone should learn programming)--这个"病毒"已经广为扩展,达到了失控的地步,以致于纽约市长竟然 ...

  3. 轻松学c语言编程.pdf等,轻松学编程 轻松学C语言编程pdf

    轻松学编程 轻松学C语言编程 内容简介 <轻松学编程:轻松学C语言编程>从初学者的角度出发,以通俗易懂的语言.丰富多彩的实例,详细介绍了使用C语言进行程序开发应该掌握的各方面知识.全书共1 ...

  4. 学编程好比学游泳——欠炼

    一个大学同学,毕业后在北京培训了几个月,刚好到该找工作的时候他却生病了,就这样回家呆了将近半个月,前几天他从家里回来在北京面试,后来问他面试的情况怎么样.他却语重心长的说:半个月都没有碰代码了,利用两 ...

  5. 学编程和学机器人有什么区别

    学编程和学机器人有什么区别?小孩的学习从古至今都是家长们相当关心和重视的一件事情,很多的家长在培养孩子的学习方面也可以说是相当的耐心的.就拿现在很多的家长想要孩子去学习机器人编程的课程来说,有的家长对 ...

  6. 孩子该不该学编程?学编程有用吗?

    孩子该不该学编程?学编程有用吗? 随着信息时代的到来,人工智能.大数据等技术的蓬勃发展,编程已经成为21世纪必不可少的技能.在未来,如果不懂得编程,就会像以前不会上网.打字.开车一样,成为新一代的&q ...

  7. python android开发月薪_学编程,学java还是大数据、android?平均月薪23k以上告诉你方向...

    学编程,学java还是大数据.android?有不少同学在纠结中,最近有不少初学者来问到,学习大数据,学习spark,公司主要使用那些语言编写,每听到这一个问题,起码还是很不错的,证明你已经开始学习大 ...

  8. 5个不收费的自学网站:学英语、学编程、学电脑办公统统有

    就业竞争这么大,俗话说技多不压身,多学点技能总错不了. 今天小编就来跟大家分享5个免费的自学网站,赶紧安排起来! 1.优达学城 一个自学编程的网站,又名Udacity.你可以在上面学到各种WEB前端开 ...

  9. 大叔学编程,学的还是易语言

    大叔学编程,不容易,只能易语言 学习易语言的初衷就是冲着它是中文编程,容易理解和学习,嘿嘿,勿喷哈! 前后花了几个小时,看过几个简单的易语言视频教程,跟着视频自学,敲代码,完成视频交代的课后作业. 对 ...

最新文章

  1. [译] 在 iOS 上使用 Carthage 建立依赖
  2. noa格式转java_用IDEA查看反编译 - osc_1loi8uc4的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. 如何设置并使用 Synology NAS 共享的多功能打印机
  4. zigbee 万能遥控器 裸机发送和协议栈发送
  5. JAVA中properties基本用法
  6. [CSS3]制作50个超棒动画效果教程
  7. 初学RubyOnRails的推荐书籍
  8. prometheus Metric类型
  9. 计算机c盘垃圾,清理电脑C盘垃圾的小妙招
  10. python 必应搜索教程
  11. 局域网联机_七日杀v17.2(B27)版/支持局域网联机/多项修改器/初始存档/局域网联机教程...
  12. 5G+工业互联网应用场景大集锦!
  13. Linux 7通过防火墙安全策略修补安全漏洞
  14. 苹果党福利!手机数据备份恢复使用攻略
  15. 粒子群优化算法和python代码_Python编程实现粒子群算法(PSO)详解
  16. HTML制作个人网页制作(简单静态HTML个人博客网页作品)
  17. win7FTP服务器配置以及访问
  18. 使用安装 .NET 脚本或提取二进制文件在 Linux 上安装
  19. 2018天体赛决赛 L1-6 福到了 (15 分)
  20. 万能Ghost系统制作教程

热门文章

  1. 新手必看!电脑文件管理八条小技巧
  2. select下拉框带模糊查询_SQL 之 简单查询
  3. 力扣--242有效的字母异位词
  4. jieba结巴分词--关键词抽取_初学者 | 知否?知否?一文学会Jieba使用方法
  5. 记录——《C Primer Plus (第五版)》第十章编程练习第三题
  6. C++并发中的条件变量 std::condition_variable
  7. linux卸载aprutil,Linux下安装Apr及其Apr-util的基本步骤
  8. 目前我们所说的个人商用计算机属于,计算机组成原理试题库(大专生用,共20份,有答案)...
  9. 从入门到入土:基于Python|ACK|FIN|Null|Xmas|windows|扫描|端口扫描|scapy库编写|icmp协议探测主机|对开放端口和非开放端口完成半连接扫描|全连接扫描|
  10. ACCESS使用VBA编辑器,ACCESS崩溃后的处理