我們需要學習程式設計嗎?

發表於2012-05-19

來源:愛範兒

如今,計算機已經成為我們生活中的必需品,但是,我們真的有必要去學習程式設計嗎?

對於程式設計,相信許多人和我一樣,是一種敬而遠之的態度。就是說將其視為一項專業的技能,便如同律師、醫生、工程師一般,屬於專業人士的範圍。非專業人士不瞭解一行程式碼對於生活也毫無影響。不過我偶爾還是對程式設計有些興趣,特別是在 Codecademy 這樣方便的教學工具出現以後,很有興趣去寫行程式碼。究其原因,可能是因為程式設計本身是一種創造的過程,也是對思維能力的一種鍛鍊。

我們需要學習程式設計嗎?

最近,Codinghorror 網站出現一篇文章,叫做“不要學習程式設計”。作者非常反對“每個人都需要學習程式設計”的想法。最近,程式設計熱似乎感染到了紐約市長,他在 Twitter 上宣佈自己要學習程式設計。

我們需要學習程式設計嗎?

對此,Jeff Atwood 認為這是一個糟糕的姿態,他諷刺道:

如果 Bloomberg 先生真的“學習編碼”,我覺得我們得到的結果是:

10 PRINT “I AM MAYOR”

20 GOTO 10

他認為市長應該做好自己的本職工作,而那份工作和程式設計無關。程式設計並非一項必要的技能,認為每個人都需要程式設計,就像要求每個人都學習管道工一樣荒唐。這是將程式設計等同於必要的生活技巧,比如閱讀、寫作和數學。

我非常同意 Jeff Atwood 的看法。如今的教育試圖將過多的技能強加給人,而在實際生活個人能夠用到的技能卻很有限。不過,什麼是必要的技能,不同的人的看法顯然不會相同。Jeff Atwood 的論據同樣可以用來反駁自己,因為在我認為,在必要技能中,除了閱讀之外,寫作和數學似乎也不必過分強調,領導的講話稿常是祕書寫好的,而不懂數學並不妨礙你成為文學家。同樣,我也可以辯論說,程式設計和寫作一樣,都是必要的技能。

就在 Coding Error 的文章發表不久,Mike Loukides 就在 Oreilly 做出了這樣的迴應。他說程式設計已經成為文化的一部分,因此學習程式設計是有必要的。最近的一個例子就是 Google vs Oracle 案,相信許多人都有這樣的疑惑,決定案件結果的都是不懂程式設計的人,他們怎麼做出正確的判斷?

或許你沒有想到,法官 William Alsup 還真的學過程式設計,而且現在還學了 Java。當 Oracle 的律師宣稱 Google 侵權的  rangeCheck() 耗時很久,Alsup 說他寫過許多類似的程式碼。

我已經寫過上百遍 rangeCheck 這樣的程式碼了。我能做到,你也能做到。想想這件事,他們自己能很快的編寫這樣的程式碼,還會拷貝嗎,那是一個巧合。你不能說這會使得他們的程式碼更快進入市場。你是美國最好的律師之一,怎麼能做出這樣的推斷?

以這件事為例,Mike Loukides 認為,學習程式設計不是讓我們都去做程式設計師的工作,而且瞭解程式設計的原理。程式設計已經成為我們生活的世界的一部分。

我們有太多的法律人士認為網際網路是管道,對於檔案傳輸工具的合法使用一無所知,對於線上空間的隱私沒有絲毫概念。我們已經有太多的專利審查官將多年前的“現有技術”批准為專利。而且我們已經有太多的法官在聽過律師討論技術之後,在毫不理解的情況下做出了裁決。學些程式設計不能解決這些問題,但是程式設計能夠使我們和科技產生聯絡,這比單純的無知要好。

即使你從不專業去做程式設計,它仍是文化技能的一部分。Alsup 是個現代英雄。

這足以證明我們都需要學習程式設計?似乎仍過於牽強。現實生活中,可能隨時要求我們展示各種技能,事先籌備一切的想法有些荒唐。不過 Alsup 的事情再次驗證了一句俗語:技多不壓身。如果你有時間和興趣,不妨多瞭解和掌握些技能,或許隨時可能有用,比如程式設計這項技能。

 

題圖來自 DIYgenius

 

相關文章