Thursday, December 3, 2009

何謂電腦高手?

何謂電腦高手?

Description

何謂電腦高手? 最近逛了Language版,又看到了一個從很久以前就提出來的老問題-- 很會寫程式是否就是代表電腦很厲害?如果你常常逛Language這個版,你一定會覺得奇怪,為什麼這個問題會一再的被提出來。我想或許大家只認識什麼是電腦,卻沒有對資訊工程這門學問有足夠的認識吧。

的確目前可以看到很多所謂的電腦程式設計高手,甚至有的還是國中生就已經會寫電腦病毒了。程式功力之高,的確令人佩服。他們能算是厲害嗎?當然,他們是厲害的。但是,就我個人的觀點而言,他們有點像是是那種玩家級的厲害。玩家指的是對電腦某些系統或是軟體很熟悉,熟悉到連原來的設計人都沒有他們熟悉。由於他們的熟悉,所以他們可以很輕易的修改,軟體或是系統,將一些原本由設計者加入在系統中的一些 限制加以除去。也就是所謂的破解軟體或是系統。

可是,我個人始終認為所謂的資訊工程,應該是有創造力的人才是最厲害的。有新的想法,能夠把電腦帶進新的領域,這種人才是真正對電腦有所貢獻的人,也是我個人最佩服的人。像是原先撰寫Mosaic Browser 後來創立Netscape的人。Browser很難寫嗎?只要程式學的不是很爛的人,多半都寫的出來。但是,就是沒有想到而已。從這邊我們可以看到好點子才是足以掀起風潮的關鍵,程式功力只是輔助而已。

所以看到 Language版在討論前面說的問題,我就覺得很好笑。說實在的去寫別人已經寫出來的東西,是沒有什麼可以驕傲的地方的。能夠想到別人所沒有想到的主意,作別人沒有做過的東西,才是厲害的人。或許,你會覺得很懷疑只是想到別人沒有想到的東西就可以看做很厲害。是不是讓人有一種投機取巧的感覺?有一天我突然想到一個別人都沒有想到的idea,那我也很厲害囉?有一點,我們要澄清的是,像好點子或是靈感這種東西,絕對不是憑空出現的。他們都是從無數的經驗累積中,被焠鍊出來。否則,那麼有那麼多人被從天上掉下來的東西砸過頭,為什麼只有牛頓會發現萬有引力呢?

除了idea之外,還有一點也是我認為是真正厲害的人應該要具備的。在真正程式設計中,軟體不是寫出來就可以了。真正好的軟體,生命週期要夠長。也就是說,他的設計以及coding必須要能夠不斷的承續下去。以前看過一篇報導,在美國的電腦公司中,軟體的專案失敗的案例高達 85%,其中還沒有把超過時間,超過預算的部份算進去。真正的大型程式是一種團隊合作。個人的程式設計反而不是這麼重要,能不能正確的分析以及規劃一個系統才是最重要的。如果在規劃或是設計階段就出現了問題,那麼程式設計做的再好也 是枉然。

實際上,我也覺得那些在Language版的人,多半是學生。沒有真正的去過大公司做軟體。因為他們的想法跟以前的我一樣。認為程式設計師是很厲害的,是很值得尊敬的。但是在台灣的公司,程式設計師的地位大概只比倒茶的小妹好一點。聽說在國外的程式設計師地位比較崇高。但是我相信,那是因為他們是真正的 程式"設計"師。不是程式撰寫人員。所以希望各位打算走電腦這條路的人,能夠在磨練程式功力的時候,也好好的想想,所謂的軟體工程是什麼?真正的大型軟體發展應該要注意什麼樣的事情。甚至還要想想整個業界未來的發展方向。

No comments: