# 我们需要学习编程吗？

- 作者：积木
- 发布时间：2012-05-18 15:26
- 分类：特稿
- 原文：https://www.ifanr.com/89281

[![learn-to-code&#95;conew1](https://s3.ifanr.com/wp-content/uploads/2012/05/learn-to-code_conew1_thumb.jpg)](https://s3.ifanr.com/wp-content/uploads/2012/05/learn-to-code_conew1.jpg)

如今，计算机已经成为我们生活中的必需品，但是，我们真的有必要去学习编程吗？

对于编程，相信许多人和我一样，是一种敬而远之的态度。就是说将其视为一项专业的技能，便如同律师、医生、工程师一般，属于专业人士的范围。非专业人士不了解一行代码对于生活也毫无影响。不过我偶尔还是对编程有些兴趣，特别是在 Codecademy 这样方便的教学工具出现以后，很有兴趣去写行代码。究其原因，可能是因为编程本身是一种创造的过程，也是对思维能力的一种锻炼。

最近，[Codinghorror 网站](http://www.codinghorror.com/blog/2012/05/please-dont-learn-to-code.html)出现一篇文章，叫做“不要学习编程”。作者非常反对“每个人都需要学习编程”的想法。最近，编程热似乎感染到了纽约市长，他在 Twitter 上宣布自己要学习编程。

[![6a0120a85dcdae970b016766803772970b-800wi](https://s3.ifanr.com/wp-content/uploads/2012/05/6a0120a85dcdae970b016766803772970b-800wi_thumb.png)](https://s3.ifanr.com/wp-content/uploads/2012/05/6a0120a85dcdae970b016766803772970b-800wi.png)

对此，Jeff Atwood 认为这是一个糟糕的姿态，他讽刺道：

> 如果 Bloomberg 先生真的“学习编码”，我觉得我们得到的结果是：
> 
> ```
> 10 PRINT "I AM MAYOR"
> 20 GOTO 10
> ```

他认为市长应该做好自己的本职工作，而那份工作和编程无关。编程并非一项必要的技能，认为每个人都需要编程，就像要求每个人都学习管道工一样荒唐。这是将编程等同于必要的生活技巧，比如阅读、写作和数学。

我非常同意 Jeff Atwood 的看法。如今的教育试图将过多的技能强加给人，而在实际生活个人能够用到的技能却很有限。不过，什么是必要的技能，不同的人的看法显然不会相同。Jeff Atwood 的论据同样可以用来反驳自己，因为在我认为，在必要技能中，除了阅读之外，写作和数学似乎也不必过分强调，领导的讲话稿常是秘书写好的，而不懂数学并不妨碍你成为文学家。同样，我也可以辩论说，编程和写作一样，都是必要的技能。

就在 Coding Error 的文章发表不久，Mike Loukides 就[在 Oreilly](http://radar.oreilly.com/2012/05/judge-alsup-codes.html) 做出了这样的回应。他说编程已经成为文化的一部分，因此学习编程是有必要的。最近的一个例子就是 Google vs Oracle 案，相信许多人都有这样的疑惑，决定案件结果的都是不懂编程的人，他们怎么做出正确的判断？

或许你没有想到，法官 William Alsup 还真的学过编程，而且现在还学了 Java。当 Oracle 的律师宣称 Google 侵权的 rangeCheck() 耗时很久，Alsup 说他写过许多类似的代码。

> 我已经写过上百遍 rangeCheck 这样的代码了。我能做到，你也能做到。想想这件事，他们自己能很快的编写这样的代码，还会拷贝吗，那是一个巧合。你不能说这会使得他们的代码更快进入市场。你是美国最好的律师之一，怎么能做出这样的推断？

以这件事为例，Mike Loukides 认为，学习编程不是让我们都去做程序员的工作，而且了解编程的原理。编程已经成为我们生活的世界的一部分。

> 我们有太多的法律人士认为互联网是管道，对于文件传输工具的合法使用一无所知，对于在线空间的隐私没有丝毫概念。我们已经有太多的专利审查官将多年前的“现有技术”批准为专利。而且我们已经有太多的法官在听过律师讨论技术之后，在毫不理解的情况下做出了裁决。学些编程不能解决这些问题，但是编程能够使我们和科技产生联系，这比单纯的无知要好。
> 
> 即使你从不专业去做编程，它仍是文化技能的一部分。Alsup 是个现代英雄。

这足以证明我们都需要学习编程？似乎仍过于牵强。现实生活中，可能随时要求我们展示各种技能，事先筹备一切的想法有些荒唐。不过 Alsup 的事情再次验证了一句俗语：技多不压身。如果你有时间和兴趣，不妨多了解和掌握些技能，或许随时可能有用，比如编程这项技能。

题图来自 [DIYgenius](http://www.diygenius.com/10-innovative-ways-you-can-learn-to-code-online/)
