2010年3月17日 星期三

[轉貼]你是專業程式設計師嗎?(下)



除了態度之外,就是你如何去發揮、結合其它領域的專業知識。我以前教授青輔會電腦第二專長訓練班,來上課的學生都不是資工電腦相關本科系的(所以學電腦才是第二專長嘛),他們想學好程式設計,但大部份的人心中都有個疑惑:「我寫程式贏得過本科系的人嗎?」我鼓勵他們說:「單比寫程式,也許你們不一定贏得了,但你們在其它領域的專業知識,則是他們欠缺的!」我常說, 學資工其實是最沒有用的,因為除了電腦之外,其它領域什麼也不會 。寫一個股票系統不需要太高深的程式設計技巧,可是其中的分析、統計確需要專業的相關知識。就拿我來說好了,也許我很會寫程式,但我沒辦法寫出一個股票系統,因為我在那個領域裡完全不懂。這就是我想要表達的本科系無用論,所以本科系的人不需要太驕傲,而非本科系的人也不需要太悲觀,各自發揮你們在各個領域的專長,並深化你想要的domain know how,你就可以成為一位出色且專業的程式設計師

那我該怎麼做才能達到在程式領域及某個特定的領域兼具的專業呢?程式領域的專業你可以用不斷的練習來達成,例如到討論區中幫別的解決問題或是研究別人的解法,也可以到TopCoder (http://www.topcoder.com)這樣的網站上去挑戰磨練你的技巧,像Google Code Jam就是你驗收成果的好時機。至於其它領域的專業呢?透過學校上課或是工作專案裡來學習,這方面倒是沒有什麼固定快速的學習方式。

創新

有人叫我大師、達人、高手(但照 前面的定義 來看,我還真不怎麼專業。)從開始學習BASIC語言(有行號的那種),一路走來Quick BASIC、Visual Basic、ASP到Java,算一算已經快二十年了,能夠支持我這樣一路走來最主要的動力是「熱情」,這點跟上次來台灣的兩位大師的觀點一樣: 對寫程式的熱愛、對技術的熱情 。

要保持熱情並不容易,因為有很多外在的因素會迫使你放棄,例如經濟的壓力,在台灣,技術人員的薪水高不到哪去;無日無夜無條件的加班,對體力上可說是很大的考驗。台灣在硬體方面是世界首屈一指的,不論是代工組裝的品質、ODM、OEM ,甚至外型設計也屢獲大獎。可是為什麼在軟體的創新研發上,能在國際上叫得出名字的就只有那幾家?我們程式設計的功力比較差嗎?並不會啊!創新的能力我想是最主要的因素。

創造力或許是天生的,但學校教育的培養也相當重要。無奈的是,不論教改前或教改後,教育的目標還是沒有變:考上好的大學、好的研究所,你就能出人頭地。「把書讀好就對了,其它什麼事都不用管。」這一直是台灣許多父母的觀念,不好好念書幾乎就和不孝劃上等號了。從小「補、補、補」的教育,讓我們的創造力逐漸消失。反觀影響電腦界最深遠的兩個人--Microsoft的Bill Gates跟Apple的Steve Jobs--就是個最好的例子,他們都沒念完大學。你看過他們相關的傳記就知道,他們年輕時幹過多少在台灣社會下不被允許或不可能做的事。讀書固然重要,但重點在於能否激發創意的實現,否則就變成了死讀書、讀死書、然後讀書死。

如果你還是學生又想當專業的程式設計師,那恭喜你,你還有許多時間可以好好的改變你自己。如果你已經是個程式設計師,改變雖然需要勇氣和承擔很大的風險,但不改變你就永遠只是個程式設計師,要變專業成為頂尖的話,改變乃是不得不然的路。

沒有留言:

張貼留言