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

cow977發表於2011-03-16

第5層 專家

  當大牛們真正動手做一個作業系統或者類似的其他軟體時,他們就會發現自己的基本功仍然有很多的不足。以記憶體管理為例,如果直接抄襲Linux或者其他開源作業系統的記憶體管理演算法,會被人看不起的,如果自動動手實現一個記憶體管理演算法,他會發現現在有關記憶體管理方法的演算法數量眾多,自己並沒有全部學過和實踐過,不知道到底該用那種記憶體管理演算法。

  看到這裡,可能有些人已經明白第5層樓的奧妙了,那就是需要做基礎研究,當然在計算機裡,最重要的就是”計算”二字,程式設計師要做基礎研究,主要的內容就是研究非數值”計算”。

  非數值計算可是一個非常龐大的領域,不僅時下熱門的”多核計算”與”雲端計算”屬於非數值計算範疇,就是軟體需求、設計、測試、除錯、評估、質量控制、軟體工程等本質上也屬於非數值計算的範疇,甚至晶片硬體設計也同樣牽涉到非數值計算。如果你還沒有真正領悟”計算”二字的含義,那麼你就沒有機會進到這層樓來。

  可能有人仍然沒有明白為什麼比爾·蓋茨被劃在了大牛層,沒有進到這層來。雖然比爾·蓋茨大學未畢業,學歷不夠,但是家有藏書2萬餘冊,進入軟體這個行業比絕大部分人都早,撇開他的商業才能不談,即使只看他的技術水平,也可以算得上是學富五車,頂上幾個普通的計算機軟體博士之和是沒有問題的,比起Linus Torvalds之類的”大牛”們應該技高一籌才對,怎麼還進不了這層樓呢?

  非常遺憾的是,從Windows作業系統的實現來看,其對計算的理解是很膚淺的,如果把Google對計算方面的理解比做大學生,比爾·蓋茨只能算做一個初中生,所以比爾·蓋茨永遠只能做個大牛人,成不了”專家”。

  看到這裡,也許國內的大牛們要高興起來了,原來比爾·蓋茨也只和我等在同一個層次,只要再升一層就可以超越比爾·蓋茨了。不過爬到這層可沒有從”牛人”升為”大牛”那麼簡單,人家比爾·蓋茨都家有2萬多冊書,讓你看個500~1000本以上的專業書籍並掌握好它應該要求不高吧。當然,這並不是主要的條件,更重要的是,需要到專業的學術站點去學習了,到ACM,IEEE,Elsevier,SpringerLink,SIAM等地方去下載論文應該成為你的定期功課,使用Google搜尋引擎中的學術搜尋更是應該成為你的日常必修課。此外,你還得經常關注是否有與你研究相關的開源專案冒出來,例如當聽到有TBB這樣針對多核的開源專案時,你應該第一時間到Google裡輸入”TBB”搜尋一下,將其原始碼下載下來好好研究一番,這樣也許你的一隻腳已經快邁進了這層樓的門檻。

  當你象我上面說的那樣去做了以後,隨著時間的推移,總會有某天,你發現,在很多小的領域裡,你已經學不到什麼新東西了,所有最新出來的研究成果你幾乎都知道。此時你會發現你比在做”牛人”和”大牛”時的水平不知高出了多少,但是你一點也”牛”不起來,因為你學的知識和思想都是別人提出來的,你自己並沒有多少自己的知識和思想分享給別人,所以你還得繼續往樓上爬才行。

  我不知道國內的”專家”到底有多少,不過有一點可以肯定的是,如果把那些專門蒙大家的”磚家”也算上的話,我們的磚家比西方的要多得多。

 
轉自:

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

相關文章