電腦效能應用與安全研究室 Performance, Applications and Security Lab


我們的研究範圍很廣,從嵌入式系統、手機應用、一直到雲端計算、商務應用、資訊安全都有做。
我們的合作研究夥伴很多,包括聯發科、IBM、中研院、資策會,還有和台大、清大、交大的教授合組研發團隊
,包括高階應用處理器架構研究、虛擬化技術、異質計算、系統軟體等重要技術的研究與創新,我們很關切台灣人才與產業的未來。

2015年9月20日 星期日

寫程式到底要不要天份和熱情?

看到這篇標題為「寫程式不需要天份,也不需要熱情」(http://blog.turn.tw/?p=2683)的文章,覺得還頗有趣的。我很同意作者要破除「深植人心的刻板印象」的心意,想先談破除迷思這個部份,至於寫程式的部份,則有待討論,文末再談。

有時會看到這類經由聳動標題鼓勵讀者思考的文章,有的是作者刻意,有的是媒體加料的。我想最重要的是內容要言之有物,讀者要能思辨。我就常常藉這些機會思辨,用寫文章來澄清思緒,改變自己對事情的刻板印象。

如果我們把這篇文章的標題改為「寫文章不需要天份,也不需要熱情」,似乎也可以論證。馬上想到,一大堆記者天天寫文章,有天份和熱情嗎?(最近有人諷刺記者,說小時不讀書,長大變記者)。

寫一篇四平八穩的文章,不見得需要天份,倒是比較需要努力,但是才氣縱橫的文章,則是沒天份不行。熱情的作家比比皆是,但有影響力的名家不多。而我們從小背國父、蔣公的文章,請問他們有寫作天份,有天天想寫作的熱情嗎?名家和文章的影響力,與很多其他的因素相關,包括政治和機運,在此不一一列舉,所以這問題沒有標準答案,而答案要看你想寫何種文章而定。

我們還可以把題目換成「造東西」,但「造房子」「造汽車」「造飛機」「造火箭」同樣都是造東西,那個需要天份和熱情?講清楚之後,答案可能大不同。如果我們籠統地說「寫程式」,不問清楚是寫什麼程式,那要怎麼談呢?

因此,要思辨這類問題,關鍵往往在於深入追究文字的定義與內涵。一般人總是習慣接受主流的籠統概念,但卻不見得抓得住其具體內容和範疇,所以拿一個籠統概念套上另一個籠統概念。

傳統教育比較不鼓勵思辨,而且特別喜歡看大師如何扼要地回答「大哉問」。很多人特別愛摘錄大師嘉言錄,但不見得知道其微言大義。很多大師自己好像也不願多費唇舌講清楚,只好讓後人自己去揣測「道可道、非常道」的意思了。

我個人提倡在中小學教程式寫作,其中許多好處之一,就是「訓練學生清楚正確表達想法」。目前的作文訓練,很多只是教學生像大師般在短短的篇幅中籠統地說大道理,不夠清楚,也不見得正確。而數學和理化的訓練,則是機械式的解題,解答的式子能有幾行?算不上什麼表達想法的訓練。

承接以上的脈絡,我們來談「寫程式需不需要天份和熱情」這個命題時,首先需要更進一步講清楚「寫程式」的目標,才有辦法深談這件事。例如我簡單將寫程式的目標,分為以下三類分別做討論:

(1)寫程式來解決特定非電腦領域的應用問題,需要的是解決問題的天份和熱情。這類工作只要程式的邏輯正確,能力得以解問題、創新應用,那麼程式寫得好不好,不是重點。如果程式或演算法寫不夠好,找(2)的人來改;系統不夠強,找(3)的人來一起解決。

(2)寫程式來發展電腦領域內的軟體,這種人,常常是在所謂純軟體公司工作,一天到晚與電腦接觸,時時要面對不斷累積、越來越複雜的電腦軟體,常常要學習新的軟體語言、介面、架構,如果沒有天份,那麼可能難以理解複雜的部份,如果沒有熱情,恐怕不易堅持下去。

(3)寫程式來研究和發展電腦系統,這種人,例如在Google/Facebook/IBM/Intel/Apple/Oracle的系統研發部門,最重要的是搞清楚各類與電腦系統相關的技術,改進現有的技術,而他們用來利用電腦來管理、分析和設計新的電腦系統的東西,都是程式,所以他們需要懂得寫程式,但未必是程式高手。

這樣討論就清楚些了,不是嗎?如果大家都把話講清楚,雞同鴨講的事情應該會減少些。

我個人很不喜歡「以寫程式能力來判斷是否為強者」以及「為了寫程式而寫程式」的作法。過度強調這些,的確是造成社會刻板印象的根源之一。因為學習寫程式的人有很多在做(1)和(3)的工作,需要的遠遠不只寫程式的能力,所以不應該特別突顯(2)的狀況,或是以為只有(2)才是王道。

然而,做任何學習和工作最好要具備起碼的天份和熱情,只是所需的專業和程度多寡不同而已。所以說「寫程式不需要天份,也不需要熱情」這句話是有瑕疵的,拿來破除迷思可以,但請不要籠統地抓住這句話到處去宣揚。

總之,想學寫程式,多一項能力,也多了邏輯思考和清楚表達的訓練,是一件好事。至於學了之後要做什麼,那就有太多的選項,最好的方法,就是先入門來學,才能確切分辨以上所講的事。

沒有留言:

張貼留言