[尤川豪] 寫程式不需要天份,也不需要熱情

2015.09.21 by
尤川豪
從來沒有一個技能,曾經被神化到這個程度:「你不但要有天份,還要有熱情,才適合寫程式。」那些寫資訊工程師,好像「從小就立定志向,決定未來要寫程...

從來沒有一個技能,曾經被神化到這個程度:「你不但要有天份,還要有熱情,才適合寫程式。」那些寫資訊工程師,好像「從小就立定志向,決定未來要寫程式了」。如果你缺乏其一的話,要嘛你是個假貨,要嘛你走不遠,總之就是不適合。這種深植人心的刻板印象不但大錯特錯,同時還是有害的。隨便找幾個工程師都能證明這點。

Jacob Kaplan-Moss(Django創造者)在今年全球 PyCon 的主講一個平庸工程師的自白:這種關於「程式天才」的神話非常有害,一方面它把行業門檻設置得特別高,令很多人望而卻步,另一方面它也在折磨產業內的人,因為你如果不能 rocks ,就會變成 sucks ,所以不得不用一切時間來努力學習和工作,導致影響生活。…(略)… 我們應該改變這種態度,寫程式只是一些技能,並不需要太多天分,它是可以學習的,而且做一個平庸的工程師不丟人。

圖說明
(Jacob Kaplan-Moss 在 2010 年 DjangoCon.eu 的咖啡時間,Aidas Bendoraitis 分享於 Flickr,CC by 2.0)

而他本人甚至在 Twitter 的自介直接寫「不是真的程式設計師(not a real programmer)」,透漏著他對這種迷思的不耐煩。

在 Github 擁有八萬顆星的 Bootstrap 作者,前 Twitter、現任 Medium 工程師 Jacob Thornton 的一篇採訪也是這種迷思的反例;當他在 Jacob Thornton 痛恨電腦文章裡描述

「我討厭電腦的時候,並不完全在開玩笑;我本來要去唸社會學的」

他描述了他第一份工作的情況:「我拿到了一個遠超我能力的工作。每一天都可能被開除。所以我非常努力工作,想搞懂 JavaScript ,因為我不懂它到底在幹嘛。」我一生中最現實的一刻,整間公司的人圍在我身邊,要我做一個 XHR request。我根本沒做過,我只稍微聽過而已。於是我開始打字、重新整理瀏覽器,然後什麼都沒出來。我反覆做了幾次,知道自己完蛋了,他們發現我是假貨了。接著我突然發現自己忘記加「.send()」。我加了之後再次重新整理瀏覽器,畫面成功顯示。整個團隊感覺像在說「喔,酷。」,然後就各自回辦公桌了。我在那裡坐了15分鐘。心想,就這樣。我搞定了。我不會被開除了。這段描述一點也不像「程式天才」在職場的表現。

圖說明
(Jacob Thornton 在 2010 年 JSConf US,數位時代翻攝)

至於支持他一路走來的動機是什麼呢?他說:我是一個高度在乎同儕的人,我做前端的朋友總是會告訴我哪個地方做很醜或是在哪個瀏覽器上壞掉。感覺真的很棒。我真的只想跟朋友一起寫程式,一起工作。他本人的 Twitter 自介則是寫著「computer loser」,置頂推文是「公司裡第一爛的工程師,但是第三酷」。這種態度跟刻板印象完全相反。

PHP 之父 Rasmus Lerdorf 的言論常常引起廣泛爭議,

「我其實很討厭寫程式,不過我喜歡解決問題。」
「有些人熱愛寫程式。我不懂他們為何會這樣。」
「我不是一個真的工程師。我把東西弄一弄,弄到能跑之後就不管了。真的工程師會說「這段程式能跑,但記憶體沒管理好,我們來修好它。我只會說,一直重新開機不就好了。」

從他的言論,很難看出他對電腦本身有多少熱情。他也跟 Jacob Kaplan-Moss 以及 Jacob Thornton 一樣,懶得對寫程式的迷思多做解釋,乾脆直接說自己是 loser、假工程師了。

圖說明
(Rasmus Lerdorf 於 DrupalCon Copenhagen 2010,Michael Schmid 分享於 Flickr,CC by 2.0)

Rails之父 David Heinemeier Hansson 在接受 Big Think 訪問時提到:

「說來有點好笑。我以前寫PHP跟Java的時候,常常花時間去摸其他程式語言。到處摸看看其他程式語言…隨便什麼都好。寫 PHP 跟 Java 實在太悶了,我需要用這種方式讓自己暫時抽離。」
「我以前寫 PHP 跟 Java 的時候,完全不覺得自己之後會當程式設計師。」

這整段看起來都不像是一個「電腦天才」的自我介紹。最後讓他愛上的不是電腦本身,而是 Ruby 程式語言的優雅性。如果 Ruby 沒有被發明,DHH 現在也許會做完全不同的事情。

圖說明
(David Heinemeier Hansson 於 Railsconf Europe,Jesper Rønn-Jensen 分享於 Flickr,CC by 2.0)

這一類可以說明刻板印象大錯特錯的文章實在太多了,看看「關於工程師 59 條搞笑但卻真實無比的語錄

  • 一個人寫的爛軟體將會給另一個人帶來一份全職工作。
  • 傻瓜都能寫出電腦能理解的程式,優秀的工程師寫出的是人類能讀懂的程式。
  • 開發軟體和建造教堂非常相似——完工之後我們就開始祈禱。

如果工程師都很有天份跟熱情,這些笑話又怎會受歡迎呢。

再看看 Medium 上很受歡迎的「資深開發者給後輩的七個 Coding 學習心得」其中的幾個建議:

  • 也許常常有人說你是錯的
  • 也許常常會有人跟你說「你並不是個 Coder」
  • 不要在意外表,能力才是一切

無非就是想打破這類寫程式的迷思、無意義的資格論神話。

下次又有人學到一半,開始反省自己適不適合、夠不夠資格的時候,我只想跟他說:你就多找幾種方式學學看吧,不要抱持那種奇怪的資格論。很多時候其實只是搞錯方法搞錯心態而已。真的完全學不懂再放棄吧。寫程式不需要天份,也不需要熱情。

每日精選科技圈重要消息