写程序不需要天份,也不需要热情

2016-06-23 09:44


从来没有一个技能,曾经被神化到这个程度:

“你不但要有天份,还要有热情,才适合写程序。”

那些写程序的人,好像“从小就立定志向,决定未来要写程序了”。缺乏其一的话,你要嘛是个假货,要嘛走不远,总之就是不适合。

这种深植人心的刻板印象不但大错特错,同时还是有害的。

随便找几个工程师都能证明这点。

Jacob Kaplan-MossDjango 创造者)

Jacob Kaplan-Moss 的这份简报提到:

一个平庸工程师的自白

这种关于“程序天才”的神话非常有害,一方面它把行业门槛设置得特别高,令很多人望而却步,另一方面它也在折磨产业内的人,因为你如果不能 rocks ,就会变成 sucks ,所以不得不用一切时间来努力学习和工作,导致影响生活。(略)我们应该改变这种态度,写程序只是一些技能,并不需要太多天分,它是可以学习的,而且做一个平庸的工程师不丢人,

他本人在 Twitter 的自我介绍直接写“不是真的程序设计师not a real programmer”,透漏着他对这种迷思的不耐烦。

Jacob ThorntonBootstrap 作者)

在 Github 拥有八万颗星的 Bootstrap 作者,前 Twitter、现任 Medium 工程师 Jacob Thornton 的一篇采访也是这种迷思的反例:

Jacob Thornton 痛恨电脑Jacob Thornton Hates Computers

当他说“我痛恨电脑”的时候,并不完全在开玩笑。(略)他说“我本来要去念社会学的”

接着描述了他第一份工作的情况:

我拿到了一个远超我能力的工作。每一天都可能被开除。所以我非常努力工作,想搞懂 JavaScript,因为我不懂它到底在干嘛。

我一生中最现实的一刻到了。整间公司的人围在我身边,要我做一个 XHR request。我根本没做过,我只稍微听过而已。于是我开始打字、重新整理浏览器,然后什么都没出来。我反覆做了几次,知道自己完蛋了,他们发现我是假货了。接着我突然发现自己忘记加“.send()”。我加了之后再次重新整理浏览器,画面成功显示。整个团队感觉像在说“喔,酷。”然后就各自回办公桌了。

我在那里坐了15分钟。心想,就这样。我搞定了。我不会被开除了。

这段描述一点也不像“程序天才”在职场的表现。

至于支持他一路走来的动机是什么呢?他说:

我是一个高度在乎同侪的人,我做前端的朋友总是会告诉我哪个地方做很丑或是在哪个浏览器上坏掉。感觉真的很棒。我真的只想跟朋友一起写程序,一起工作。

他本人的 Twitter 自介写“computer loser”,

置顶推文是“公司里第一烂的工程师,但是第三酷”。

这种态度跟刻板印象完全相反。

Rasmus LerdorfPHP 之父)

Rasmus Lerdorf 的言论常常引起广泛争议:

  • 我其实很讨厌写程序,不过我喜欢解决问题。
  • 有些人热爱写程序。我不懂他们为何会这样。
  • 我不是一个真的工程师。我把东西弄一弄,弄到能跑之后就不管了。真的工程师会说“这段程序能跑,但内存没管理好,我们来修好它”。我只会说,一直重新开机不就好了。
  • 从他的言论,很难看出他对电脑本身有多少热情。

他也跟 Jacob Kaplan-Moss 以及 Jacob Thornton 一样,懒得对写程序的迷思多做解释,

干脆直接说自己是 loser、假工程师了。

David Heinemeier HanssonRails 之父)

DHH 在接受 Big Think 访问时提到:

说来有点好笑。我以前写 PHP 跟 Java 的时候,常常花时间去摸其他程序语言。到处摸看看其他程序语言随便什么都好。写 PHP 跟 Java 实在太闷了,我需要用这种方式让自己暂时抽离。

我以前写 PHP 跟 Java 的时候,完全不觉得自己之后会当程序设计师。

整段看起来都不像是一个“电脑天才”的自我介绍。

最后让他爱上的不是电脑本身,而是 Ruby 程序语言的优雅性。如果 Ruby 没有被发明,DHH 现在也许会做完全不同的事情。

这一类可以说明刻板印象大错特错的文章实在太多了,

看看工程师们最爱的几个玩笑:关于工程师 59 条搞笑但却真实无比的语录

  • 一个人写的烂软件将会给另一个人带来一份全职工作。
  • 傻瓜都能写出电脑能理解的程序,优秀的工程师写出的是人类能读懂的程序。
  • 开发软件和建造教堂非常相似——完工之后我们就开始祈祷。

如果工程师都很有天份跟热情,这些笑话又怎会受欢迎呢。

再看看 Medium 上很受欢迎的学习系列文章:资深开发者给后辈的七个 Coding 学习心得

其中的几个建议

  • 也许常常有人说你是错的
  • 也许常常会有人跟你说“你并不是个 Coder
  • 不要在意外表,能力才是一切

无非就是想打破这类写程序的迷思、无意义的资格论神话。下次又有人学到一半,开始反省自己适不适合、够不够资格的时候,我只想跟他说:你就多找几种方式学学看吧,不要抱持那种奇怪的资格论。很多时候其实只是搞错方法、搞错心态而已。真的完全学不懂再放弃吧。

写程序不需要天份,也不需要热情。