程式設計師的十層樓(8)

cow977發表於2011-03-17

第8層 科學家

  科學家向來都是一個神聖的稱號,因此我把他放在了“大師”之上。要成為科學家,你的貢獻必須超越大師,不妨隨便舉一些例子。

  如果你象Dijkstra一樣設計了ALGOL語言,提出了程式設計的三種基本結構:順序、選擇、迴圈,那麼你可以爬到第8層樓來。順便說一下,即使拋開這個成果,Dijkstra憑他的PV操作和訊號量概念的提出,同樣可以進到這層樓。

  如果你象Don Knuth一樣,是資料結構與演算法這門學科的重要奠基者,你也可以進到這層樓來。當然,資料結構和演算法這門學科不是某個人開創的,是許多大師和科學家集體開創的。

  如果你象巴科斯一樣發明了Fortran語言,並提出了巴科斯正規化,對高階程式語言的發展起了重要作用,你也可以進到這層樓來。

  或者你象Ken Thompson、Dennis Ritchie一樣發明了Unix作業系統和功能強大、高效、靈活、表達力強的C語言,對作業系統理論和高階程式語言均作出重大貢獻,那麼你也可以進到這層樓來。

  或者你有Frederick P. Brooks一樣機會,可以去領導開發IBM的大型計算機System/360和OS/360作業系統,並在失敗後反思總結,寫出《人月神話》,對軟體工程作出里程碑式的貢獻,你也可以進到這層來。

  或者你提出了物件導向設計的基本思想,或者你設計了網際網路的TCP/IP協議,或者你象Steven A.Cook一樣奠定NP完全性的理論基礎,或者你象Frances Allen一樣專注於平行計算來實現編譯技術,在編譯最佳化理論和技術取得基礎性的成就,…,均可進入這層。

  當然,如果你發明了C++語言或者Java語言,你進不到這層來,因為你用到的主要思想都是這層樓中的科學家提出的,你自己並沒有沒有多少原創思想在裡面。

  看了上面列出的科學家的成就,你會發現,要成為“科學家”,通常要開創一門分支學科,或者是這個分支學科的奠基者,或者在某個分支學科裡作出里程碑式的重大貢獻。如果做不到這些的話,那麼你能象Andrew C. Yao(姚期智)一樣在對計算理論的多個方向如偽隨機數生成,密碼學與通訊複雜度等各個方向上作出重要貢獻,成為集大成者,也可以進入這層樓。

  成為“科學家”後,如果你有幸象Dijkstra一樣,出現在一個非常重視科學的國度。當你去世時,你家鄉滿城的人都會自動地去為你送葬。不過如果不幸生錯地方的話,能不挨“板磚”估計就算萬幸了。

  從上面隨便舉的一些例子中,你可能能猜到,西方科學家的數量是非常多的,於是你會想中國應該也有少量的科學家吧?我可以很負責任地告訴你一個不幸的結果,中國本土產生的科學家的數量為0。目前在國內,軟體領域的唯一的科學家就是上面提過的姚期智,還是國外請回來的,並不是本土產生的。

  可能你不同意我說的本土科學家數量為0的結論,因為你經常看到有許多公司裡都有所謂“首席XX科學家”的頭銜。我想說的是,這些所謂的“首席XX科學家”都是遠遠夠不到這層樓的級別的,有些人的水平估計也就是一個“牛人”或“大牛”的級別,好一點的最多也就一個“學者”的級別。尤其是那些被稱作“首席經X學家”的,基本上可以把稱號改為“首席坑大家”。

  雖然我國沒有人能爬到這層樓上來,但是西方國家仍然有許多人爬到了比這層更高的樓上。如果要問我們比西方落後多少?那麼可以簡單地回答為:“落後了三層樓”。下面就來看看我們做夢都沒有到過的更高一層樓的秘密。

 
 
轉自:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/81227/viewspace-689685/,如需轉載,請註明出處,否則將追究法律責任。

相關文章