我們需要學習編程嗎?
如今,計算機已經成為我們生活中的必需品,但是,我們真的有必要去學習編程嗎?
對于編程,相信許多人和我一樣,是一種敬而遠之的態度。就是說將其視為一項專業的技能,便如同律師、醫生、工程師一般,屬于專業人士的范圍。非專業人士不了解一行代碼對于生活也毫無影響。不過我偶爾還是對編程有些興趣,特別是在 Codecademy 這樣方便的教學工具出現以后,很有興趣去寫行代碼。究其原因,可能是因為編程本身是一種創造的過程,也是對思維能力的一種鍛煉。
最近,Codinghorror 網站出現一篇文章,叫做“不要學習編程”。作者非常反對“每個人都需要學習編程”的想法。最近,編程熱似乎感染到了紐約市長,他在 推ter 上宣布自己要學習編程。
對此,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